A nuvem como sistema operacional
Minha visão da nuvem é fundamentalmente diferente da maioria das pessoas ao meu redor. Elas a veem como uma oportunidade de construir uma infraestrutura melhor. Eu não. Eu vejo a nuvem como o sistema operacional que vai rodar serviços e aplicações para mim.
Diferentes formas de ver a nuvem
Quando você é desenvolvedor, não pensa em infraestrutura. Você quer fazer o deploy da sua aplicação, vê-la escalar e continuar no ar. Você precisa de pipelines, roteamento, conectividade entre serviços internos, bancos de dados gerenciados e guardrails de segurança, não de servidores.
Quando você é engenheiro de infraestrutura, a nuvem parece um lugar melhor para hospedar seus servidores: sem cabos, sem discos rígidos, sem ciclo de vida de hardware. É uma extensão natural do que você já conhece.
Então, qual dos dois é você?
O papel da infraestrutura está mudando
Aqui vai a verdade incômoda: os desenvolvedores não precisam mais do time de infraestrutura para provisionar VMs. Eles precisam que o time de infraestrutura saia do caminho e forneça as abstrações que tornam rápido e seguro construir.
Isso não significa que os engenheiros de infraestrutura estão obsoletos. Significa que o trabalho deles mudou. A nuvem fornece as primitivas: computação, rede, armazenamento, identidade. Os times de infraestrutura devem construir plataformas em cima delas, e não gerenciar as máquinas por baixo.
Os engenheiros de infra que ainda exigem servidores para entregar seus serviços são os que estão sendo substituídos. Os que pensam em pipelines, guardrails e experiência do desenvolvedor? Nunca foram tão valiosos.
A nuvem como um SO: o que isso significa de verdade
Um sistema operacional abstrai o hardware. Você escreve código para Linux sem se preocupar com endereços de memória ou registradores da CPU. O SO cuida disso.
A nuvem faz a mesma coisa num nível mais alto. O AWS Lambda abstrai a computação: você escreve uma função, a nuvem a executa. O Cloud SQL abstrai bancos de dados: você conecta, consulta, pronto. O IAM abstrai permissões. O API Gateway abstrai o roteamento. Você constrói em cima disso sem provisionar um único servidor.
Essa é a mudança. A nuvem não é um datacenter melhor. É uma plataforma sobre a qual você constrói, exatamente como um SO.
Um exemplo prático
Digamos que você precise rodar dois servidores DNS, um em Linux e outro em Windows. Você:
- Usaria o software de DNS que vem com cada sistema operacional, com suporte do fabricante, e manteria duas ferramentas diferentes?
- Instalaria um software de terceiros que roda nos dois sistemas?
- Instalaria uma VM Linux em cima dos dois sistemas, para rodar a mesma coisa nos dois servidores?
Rodar infraestrutura na nuvem do jeito do datacenter é escolher a opção 2 ou 3: uma camada sua em cima do provedor, igual em todo lugar, como o Kubernetes. Usar a nuvem como sistema operacional é a opção 1: os serviços nativos do provedor, com o suporte dele por trás.
E quando você mistura servidores e sistemas operacionais para usar o melhor de cada um (Linux para aplicações, Windows para cargas específicas, um Mac para o trabalho do dia a dia), você está usando ferramentas diferentes para necessidades diferentes. Aplique o mesmo raciocínio à nuvem e você tem multicloud de verdade.
Resumindo
Não use a nuvem como um datacenter em que você replica sua infraestrutura on-premises. Use-a como o sistema operacional que roda as aplicações dos seus desenvolvedores, e deixe os serviços gerenciados cuidarem de todo o resto.