Nesta aula, vamos explorar o universo dos provedores de nuvem, focando nos três maiores: Amazon Web Services (AWS), Microsoft Azure e Google Cloud Platform (GCP). Você aprenderá o que cada um oferece, como compará-los e como pensar em estratégias que envolvem múltiplas nuvens. Este conhecimento é fundamental para profissionais de DevOps, pois a escolha e o gerenciamento de infraestrutura em nuvem são parte central do dia a dia.

Entender as diferenças entre os provedores não é apenas uma questão de listar serviços, mas de compreender filosofias, modelos de cobrança, ecossistemas e casos de uso. Vamos mergulhar nos detalhes para que você possa tomar decisões informadas em seus projetos.

AWS, Azure, GCP (panorama)

A AWS é a pioneira e líder de mercado, lançada em 2006. Ela oferece uma vasta gama de serviços, mais de 200, e possui a maior maturidade em termos de recursos e comunidade. A Azure, da Microsoft, se destaca pela integração com o ecossistema Microsoft (Windows, Active Directory, Office 365), sendo muito adotada por empresas que já utilizam essas tecnologias. O GCP, do Google, é conhecido por sua inovação em dados, machine learning e containers, além de preços competitivos e desempenho de rede.

Cada provedor tem sua própria console, CLI, SDKs e modelos de permissão. A AWS usa IAM (Identity and Access Management), a Azure usa Azure AD (agora Microsoft Entra ID) e o GCP usa IAM com papéis (roles). Esses detalhes afetam a curva de aprendizado e a operação diária.

Exemplo de código para listar instâncias em cada nuvem (CLI):

# AWS EC2 (via AWS CLI)
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name]' --output table

# Azure VM (via Azure CLI)
az vm list --output table

# GCP Compute Engine (via gcloud)
gcloud compute instances list

Serviços essenciais

Embora cada provedor tenha suas particularidades, há um conjunto de serviços essenciais que todo profissional de DevOps deve conhecer. São eles: computação (VMs), armazenamento de objetos, bancos de dados, redes (VPC) e balanceamento de carga. Vamos comparar os equivalentes:

  • Computação: AWS EC2, Azure Virtual Machines, GCP Compute Engine.
  • Armazenamento de objetos: AWS S3, Azure Blob Storage, GCP Cloud Storage.
  • Banco de dados gerenciado: AWS RDS, Azure SQL Database, GCP Cloud SQL.
  • Rede/VPC: AWS VPC, Azure Virtual Network (VNet), GCP VPC.
  • Balanceador de carga: AWS ELB, Azure Load Balancer, GCP Cloud Load Balancing.

Além desses, cada provedor tem serviços exclusivos ou mais maduros: AWS Lambda (serverless), Azure Functions, GCP Cloud Functions. Em machine learning, o GCP se destaca com o Vertex AI, mas a AWS e a Azure também têm ofertas robustas.

Exemplo de criação de um bucket S3 na AWS e um bucket no GCP:

# Criar bucket S3 na AWS
aws s3api create-bucket --bucket meu-bucket-devops --region us-east-1

# Criar bucket no GCP (gsutil)
gsutil mb gs://meu-bucket-devops/

Escolhendo

A escolha de um provedor de nuvem deve ser baseada em critérios objetivos, como custo, conformidade, latência, serviços disponíveis e conhecimento da equipe. Não existe a 'melhor' nuvem; existe a mais adequada para cada contexto.

Para tomar uma decisão, considere:

  • Custo: Compare as calculadoras de preço (AWS Pricing Calculator, Azure Pricing Calculator, GCP Pricing Calculator).
  • Regiões e zonas: Verifique se o provedor tem data centers na região onde seus usuários estão.
  • Serviços gerenciados: Se você precisa de serviços específicos (como SageMaker da AWS), a escolha pode ser influenciada.
  • Integração com ferramentas existentes: Se sua empresa usa Microsoft, Azure pode ser natural; se usa Google Workspace, GCP.
  • Comunidade e suporte: Avalie a disponibilidade de documentação, tutoriais e suporte técnico.

Exemplo de estimativa de custo mensal para uma VM simples usando a AWS CLI (apenas ilustrativo):

# Exemplo de consulta de preço (não real)
aws pricing get-products --service-code AmazonEC2 --filters "Name=instanceType,Values=t3.micro" --region us-east-1

Multi-cloud

Multi-cloud é a estratégia de utilizar dois ou mais provedores de nuvem simultaneamente, seja para evitar dependência de um único fornecedor, seja para aproveitar o melhor de cada um. Isso traz benefícios como resiliência, negociação de preços e flexibilidade, mas também aumenta a complexidade operacional.

Para implementar multi-cloud, você precisa de ferramentas que abstraiam a infraestrutura, como Terraform, que permite gerenciar recursos em múltiplos provedores com uma única linguagem de configuração. Também é importante padronizar processos de deploy e monitoramento.

Exemplo de configuração Terraform para provisionar uma VM na AWS e no GCP:

# main.tf (Terraform)
provider "aws" {
  region = "us-east-1"
}

provider "google" {
  project = "meu-projeto"
  region  = "us-central1"
}

resource "aws_instance" "exemplo" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

resource "google_compute_instance" "exemplo" {
  name         = "exemplo"
  machine_type = "e2-micro"
  zone         = "us-central1-a"
}

Boas práticas

Ao trabalhar com provedores de nuvem, adote boas práticas como: usar infraestrutura como código (IaC), aplicar o princípio do menor privilégio em permissões, configurar alertas de custo e usar serviços gerenciados sempre que possível. Além disso, mantenha-se atualizado com as certificações e novidades de cada provedor.

Outra prática importante é a documentação: registre as decisões de arquitetura e os motivos da escolha do provedor. Isso ajuda a equipe e facilita futuras migrações.

Referências

Exercícios

  1. Cite três serviços equivalentes entre AWS, Azure e GCP para computação, armazenamento e banco de dados.

✓ Resposta: Computação: EC2 (AWS), Virtual Machines (Azure), Compute Engine (GCP). Armazenamento: S3 (AWS), Blob Storage (Azure), Cloud Storage (GCP). Banco de dados: RDS (AWS), SQL Database (Azure), Cloud SQL (GCP).
  • Qual provedor é mais indicado para uma empresa que já utiliza intensivamente o ecossistema Microsoft (Windows, Active Directory)? Justifique.
  • ✓ Resposta: O Azure é mais indicado, pois possui integração nativa com Active Directory (Microsoft Entra ID), suporte a Windows Server, e integração com Office 365, facilitando a adoção e o gerenciamento.
  • Explique o que é multi-cloud e cite uma vantagem e uma desvantagem dessa estratégia.
  • ✓ Resposta: Multi-cloud é o uso de dois ou mais provedores de nuvem em uma mesma arquitetura. Vantagem: evita dependência de um único fornecedor (vendor lock-in). Desvantagem: maior complexidade operacional e necessidade de gerenciar múltiplas ferramentas.
  • Escreva um comando AWS CLI para listar todas as instâncias EC2 em execução.
  • ✓ Resposta:
    aws ec2 describe-instances --filters Name=instance-state-name,Values=running --query 'Reservations[*].Instances[*].InstanceId' --output text
  • Qual é a principal vantagem do GCP em relação a AWS e Azure em termos de inovação? Dê um exemplo de serviço.
  • ✓ Resposta: O GCP se destaca em dados e machine learning, com serviços como o BigQuery (análise de dados) e o Vertex AI (plataforma de ML).