Fazendo Cloud direito

By | April 27, 2020

Dando sequência aos posts relacionados à mudança de sysadmin tradicional para o cenário moderno de DevOps vou dar minha opinião® à respeito de Cloud.

Como tudo começa

O passo inicial de toda empresa migrando para Cloud parece ser simplesmente subir algumas máquinas virtuais no provedor de preferência e instalar alguma coisa nelas.

Faz todo sentido: Dá pra entender como fazer as configurações básicas, se familiarizar com o ambiente, fazer provas de conceito e testes de como migrar as coisas numa primeira fase.

O problema é que muita gente pára ai. Toda a “migração para a nuvem” que a empresa – ou o time de TI – faz é migrar os servidores ao invés de rodar em máquinas (físicas ou virtuais) localmente para um provedor de Cloud.

Deixe eu dar a má notícia se você fez isso: Você não migrou para Cloud. Você está fazendo um co-location bem caro.

Adotando a filosia de Cloud

Tem muitas coisas que dá pra fazer num ambiente Cloud que vão exigir uma certa mudança de paradigmas e mudanças tanto em aplicações como em processos. Mas aqui vão três coisas que podem ser mudadas razoavelmente fácil e que trazem melhoras imediatas.

DNS

Esse pra mim nem precisa ter migrado pra Cloud. Exceto se você trabalha para um provedor de Internet não existe razão para rodar o seu próprio DNS. Sério. Livre-se dessa bucha o mais rápido possível.

Mas se você migrou para Cloud, ainda mais motivo. Acredite em mim que nunca em um milhão de anos você vai ter uma infra similar à dos grandes provedores de Cloud. Então que ideia ridícula seria ter tudo na nuvem dependendo do seu servidor de DNS meia-boca estar em pé.

Migre seu DNS para um provedor externo. De novo: sério.

Mídia

Quando você vai para as nuvens você só realmente começa a ver os benefícios – e a economia – se você adotar a filosofia por completo. Nada de fazer as coisas pela metade. Isso significa olhar toda a gama de produtos oferecidos e ver como adaptar sua infra e aplicações para utilizar deles ao máximo.

Um exemplo bem simples: Fiquei sabendo de um caso onde a empresa “migrou” para Cloud. O que basicamente significou subir um bocado de servidores web e colocar atrás de um loadbalancer.

Esses servidores web eram de alto tráfego e repletos de mídia. Não sei como funcionava para manter a mídia sincronizada, mas todos eles tinha réplicas do que precisava ser servido.

Algum dos developers bobeou e fez upload de uma imagem gigantesca na página principal de algo que estava atraindo muito tráfego. Lógico, os servidores arrebentaram sem aguentar o tráfego e a conta no final do mês com certeza foi salgada já que transmissão de dados conta $$.

A melhor forma de ter evitado isso teria sido realmente adotar Cloud corretamente. Todos os provedores de Cloud tem algum tipo de Object Storage e se você vai servir mídia, essa é a forma que deve utilizar. Nada de hospedar imagens e vídeos localmente na suas máquinas virtuais. Alguns provedores até deixam você entregar essas imagens via CDN.

Isso tira complemente a carga de servir essa mídia das suas instâncias de servidores. E é mais barato. Fora que é facilmente implementável que na hora de subir, por exemplo uma foto, dinamicamente já mudar o tamanho e qualidade para algo aceitável.

Banco de Dados

Conversando com alguém que estava nos primeiros passos de migração para Cloud o sujeito me disse algo do tipo: “Testamos provedores X, Y e Z. Mas sem condições de usar X. Nosso MySQL rodando nas máquinas virtuais lá ficam muito lentos”.

Tentei não deixar muito na cara que eu estava abismado com a decisão de rodar banco de dados dentro de instâncias! Todos os provedores de cloud grandes oferecem o serviço de Banco de Dados gerenciados! É isso que você deve usar. A performance e segurança são muito superiores ao que você conseguiria rodando numa instância genérica.

Indo a fundo

Depois dessas três coisas já implementadas você vai ficar mais à vontade de pesquisar outras coisas. Olhei as ofertas de serveless, Kubernetes, serviços de mensagem, análise de logs e outros.

O eco-sistema é rico e é possível implementar coisas por um custo muito mais baixo quando você utiliza os recursos corretamente.

Empresas pequenas talvez consigam utilizar muitas coisas de graça – ou quase de graça – já que muitos serviços tem um limite abaixo do qual não é cobrado.

Empresas grandes vão conseguir escalar as aplicações e manter a performance sem nenhum esforço adicional.

E só pra repetir o que disse no começo – É a minha opinião. Mas gostaria de ouvir a sua também. Comentários ou ping no Twitter são bem-vindos.

No tag for this post.