Avaliação de Plataformas em Nuvem: Microsoft Azure vs Amazon AWS vs Google Cloud vs Oracle Cloud

Me envolvi em um projeto hospedado na nuvem e depois de uma péssima experiência com um datacenter tradicional (demora de 10 dias para provisionar uma VM, multas absurdas de cancelamento, contrato leonino), acabei sugerindo ao cliente hospedar em um ambiente de nuvem de verdade, com capacidades de expandir e diminuir sob demanda e rapidamente.

Para atender a demanda, revisitei os fornecedores de computação em nuvem para avaliar como estão as ofertas e serviços.

Vou contar nesse artigo minha experiência na contratação e provisionamento das duas plataformas que considero os principais players do mercado: Microsoft Azure, Amazon AWS EC2, com uma avaliação extra do Google Cloud e Oracle Cloud em alguns aspectos.

Os Concorrentes

Como já temos serviços gerenciados dentro da Blue e o cliente já estava executando em máquinas virtuais comuns dentro do Datacenter, minha opção era encontrar uma oferta de IaaS (Infrastructure as a Service) equivalente, eu já imaginava que poderia ter ganhos em custos, flexibilidade e opções, mas não esperava tanta diferença.

  • Amazon AWS: pioneira na oferta, lançou seus serviços de nuvem em 2006, começou com serviços específicos de armazenamento e depois evoluiu para o Elastic Cloud Computing (ou EC2), que é sua oferta de máquinas virtuais baseada no virtualizador Xen. Possui o maior marketplace e maior oferta de serviços entre todos.
  • Microsoft Azure: lançada em 2010, talvez seja a oferta mais simples entre elas, a principal oferta são máquinas virtuais completas sobre plataforma Intel. Possui alguns serviços diferenciados e amplo marketplace, mas quase tudo se resume em instanciar uma máquina virtual com o serviço, sendo que alguns casos não se tem acesso ao sistema operacional.
  • Google Cloud: lançada em 2008, somente em 2013 passou a ter a oferta da Google Compute Engine, que armazena máquinas virtuais, é a menor delas, embora tenha o Google por trás, eles não possuem uma rede de parceiros extensa, e nesse caso chegar atrasado e não ter uma rede de canais pronta significa quase ficar sem participação do mercado.
  • Oracle Cloud: lançada em 2015, a Oracle é a lanterninha do grupo. Teve crescimento significativo no ano, mas isso não representa muito para as receitas da Oracle. Com uma estratégia de vender através de parceiros e valores agressivos, talvez vejamos um rápido crescimento da Oracle nos próximos anos.

Os Datacenters

Com exceção do Google, todos os outros três players possuem datacenter no Brasil, isso é importante por conta da latência de rede e facilidade para fazer a primeira cópia de dados para migração, embora esse serviço precise ser consultado se está disponível em cada um deles. Veja a localização dos Datacenters:

  • Datacenters Amazon AWS – bem distribuídos mundialmente, a Amazon possui a maior quantidade, com 42 áreas disponíveis
  • Datacenters Azure – mesmo tendo lançado depois, possui a segunda maior quantidade de datacenters disponível com 30 áreas, imagino que é por conta da oferta pré-existente de Office 365 e a extensa rede de parceiros que conseguiu crescer tão rápido
  • Datacenters Google Cloud – possui a menor quantidade de datacenters entre os quatro analizados, apenas 6 áreas
  • A Oracle não divulga seus Datacenters, achei artigos dizendo que são mais de 24, incluindo Brasil, mas nada específico. Em uma das telas de login aparece uma listagem com 16 opções de datacenters, talvez seja o número mais correto do que o divulgado na mídia

Vale a pena testar a latência para os mesmos, para determinar se sua aplicação terá boa performance para os usuários:

Manter instâncias da aplicação em múltiplos datacenters também pode ser uma estratégia de alta disponibilidade e de performance.

Preço

Na Amazon tive um pouco de dificuldade de encontrar os valores e depois de relacionar os valores com as ofertas de máquinas virtuais, até que localizei a calculadora online. A Oracle é um pouco confusa ao mostrar os preços. Google e Azure foram bem tranquilos.

Existe a pegadinha do preço ser em dólar, o que pode fazer a fatura variar mensalmente de acordo com o câmbio, também os tributos devem ser recolhidos pelo tomador do serviço, exceto quando contratado pelos parceiros e distribuidores.

Os valores variam bastante de acordo com a localidade, sendo os Datacenters nos EUA os mais baratos para hardware e uso de banda.

Sugiro utilizar as calculadoras para simular o custo, pois qualquer comparativo que eu colocar aqui vai ficar desatualizado rapidamente, seguem os links de acesso:

Das calculadoras, a Amazon é a mais difícil de entender e de utilizar, a interface da calculadora tem muitas opções e alguns botões não tão óbvios. A Azure é a mais simples de utilizar.

Sobre a Oracle, eles tem por objetivo vender através da rede de parceiros já existente, normalmente você comprará créditos para efetuar a configuração e executá-la por um período (1 ano ou mais), esse valor pode ser parcelado e será usado sob demanda. A vantagem é travar a taxa de câmbio, ter os impostos inclusos e ter uma fatura mensal fixa, preferível por muitas empresas. A desvantagem é que fica com a estrutura um pouco mais rígida.

Preços de máquinas virtuais

Os valores variam bastante de acordo com a região. Um exemplo, a menor máquina virtual da Amazon (t2.nano) é com 1 processador e 512Mb de memória, custa US$ 4.32 hospedado nos EUA e US$ 7.40 hospedado no Brasil.

A Azure possui a menor máquina com 1 processador, 0,75Gb de RAM e 20GB de disco, sai por US$ 13.39 mensais nos EUA e US$ 16.37 hospedada no Brasil. Embora maior valor inicial, o mesmo não cresce tanto nas VMs maiores.

No Google, a menor VM tem 1 processador com 0,6Gb de RAM, o disco pode ser personalizado, com 10Gb sai por US$ 4.49 mensais hospedado nos EUA.

A Oracle, enquanto escrevo esse artigo, só tem ofertas a partir de 1 CPU reservada com 7,5Gb de memória, está no roadmap deles ter máquinas menores com até 25% de CPU reservada com 1,8Gb RAM (ou seja, máquinas que compartilham a infraestrura), as atuais (OC3) são vendidas por US$ 75 (ou R$ 260,00) cada.

Preços de Internet

Uma coisa que muda versus as ofertas nacionais é que fora do Brasil normalmente a Internet é tarifada por tráfego e não por banda, isso significa altas taxas de download e upload, mas uma conta variável de banda.

Aqui de novo os valores internacionais e nacionais variam bastante, um datacenter no Leste dos EUA chega a custar metade de São Paulo.

Amazon e Azure tem os valores de banda na calculadora. A Amazon pede para preencher o tráfego de entrada na calculadora, mas no final não cobra por isso. Como a oferta deles é mais completa, tem mais opções na calculadora também, você precisa preencher apenas o “Data Transfer Out”.

A Oracle não cobra pelo primeiro Gigabyte transferido no mês.

A pegadinha do tráfego por banda é quando você quiser migrar da nuvem, aceitando tráfego de entrada sem tarifar, algumas aplicações podem ser desenvolvidas para receber dados sem limites, mas quando precisar migrar para outro lugar, todo o tráfego de saída será tarifado.

Preços de Suporte

A oferta padrão dos fornecedores oferece suporte apenas para cobrança e ao Dashboard, não aos serviços.

Amazon e Azure possuem um primeiro nível de suporte por US$ 29, chamado Developer em ambos, oferecem suporte básico em horário comercial.

O nível dois de suporte oferece suporte limitado aos sistemas operacionais, na Amazon sai por US$ 100, na Azure por US$ 300.

O nível 3 sai por US$ 1000 na Azure, e existe um quarto nível com gestor de contas que na Amazon sai por US$ 15000 mensais e na Azure o preço é informado apenas sob consulta.

A Oracle e a Google não possuem essa oferta.

Em todos os casos, a contratação por um parceiro pode incluir essa oferta servida pelo parceiro.

Ativação & Testes

Todos os quatro fornecedores possuem contas grátis para testes com formatos diferentes, é possível experimentar, instanciar máquinas virtuais e serviços básicos.

Ativei uma conta grátis em cada um dos fornecedores e instanciei uma máquina virtual, nenhuma apresentou dificuldades extras. No Google, como eu estava logado com minha conta no mesmo navegador, foi mais simples. Na Azure, eu também estava logado na minha conta do Office 365 e na verdade apresentou problemas, precisei reiniciar o processo.

A Azure, Amazon e Google solicitaram o cadastro de um cartão de crédito internacional, Azure, Amazon e Oracle solicitaram ativação ligando ou enviando SMS para um número de celular.

A Oracle pede criação de uma conta Oracle, que pode ser um pouco chato de fazer. A Oracle disse que enviou um e-mail de ativação, mas o e-mail nunca chegou, consegui fazer logon mesmo assim, os serviços de teste foram instanciados apenas algumas horas depois, como não recebi o e-mail, fiquei sabendo dois dias depois.

Segurança

Não é o caso de aplicar uma norma de segurança em nuvem assim que chegar, mas a Amazon e o Google me deram a melhor experiência nesse sentido.

Assim que provisionei uma máquina virtual Linux na Amazon, foi sugerido criar uma regra de Firewall bloqueando a porta 22 (usada para administração remota via SSH). Na Azure e na Oracle as máquinas subiram com IP público e a porta SSH aberta. No Google foi sugerido criar uma regra de firewall liberando as portas HTTP e HTTPS, mas o SSH ficou aberto por padrão.

Na Amazon também foi obrigatório criar uma chave de acesso ao SSH e não uma senha, assim eu precisei fazer download de um arquivo para depois acessar com o comando:

ssh 127.0.0.1 -i arquivo_com_a_chave.pem

Na Azure tinha a opção de criar a senha ou colocar uma chave já existente, até tentei usar a chave que já tinha em meu computador, mas precisava converter para o formato deles, acabei abandonando a opção.

No Google precisei subir a chave que eu tinha em meu computador para logar na VM, foi criado um usuário baseado na chave que enviei.

Outro ponto interessante na Amazon é que encontrei para contratar serviços de WAF (Web Application Firewall) e de proteção DDoS da própria Amazon. No Azure encontrei soluções de parceiros para fazer isso. Qual é mais seguro? Essa avaliação não caberia nesse artigo 🙂

Uma diferença que percebi, como boa prática sempre atualizo os servidores assim que instalo, no Google a máquina virtual estava bem atualizada e só faltavam alguns pacotes lançados no dia, nos demais faltavam bastante pacotes, mesmo assim a atualização foi bem rápida em todos eles.

Importação/Exportação

A Amazon oferece ferramentas para importação/exportação de máquinas virtuais através da linha de comando.

A Azure tem o serviço de importação e exportação usando PowerShell, além da ferramenta Azure Site Recovery capaz de migrar cargas já existentes em ambientes virtuais para a nuvem da Azure.

A Google também tem uma extensa documentação para importação de máquinas virtuais e também para exportar, ambos precisam ser feitos via linha de comando.

A Oracle ainda não conta com ferramentas próprias.

Outras ofertas

Na Oracle é possível alocar servidores físicos Intel e Sparc, o que pode ser um diferencial para alguns clientes.

Na Amazon é possível alocar servidores físicos Intel, servidores com GPU dedicada, entre outras ofertas.

Todos tem serviços específicos com integração e tudo mais, como Backup na Nuvem, armazenamento, CDN, mas avançar nessa direção significa amarrar a solução com o fornecedor e fogem do escopo da solução IaaS que é o foco desse artigo.

Sobre serviços e soluções de terceiros, existem os Marketplaces. A Amazon tem o maior deles, sendo a mais antiga e referência, era de se esperar. Na Azure gostei de provisionar serviços de terceiros, foi muito simples por exemplo subir um site em WordPress. No Google tinha poucas ofertas de sistemas operacionais, e na Azure tinha a maior quantidade de opções de Windows (bom, na verdade eu já esperava por isso).

Curiosidades

No Google, a cada interação no Dashboard de controle eles já sugerem os comandos de API para automatizar aquele comando, é interessante ao pensar em projetos que podem escalar ou diminuir sob demanda.

Na Azure para redimensionar a máquina virtual, tem que ir na opção “Tamanho”, não é muito óbvio, mas ok. Fiz besteira enquanto descobria isso, mandei trocar o tamanho e ele rebootou a VM sem nenhum aviso, eu estava no meio de um upgrade e perdi a VM.

Na Azure e na Amazon o SSH demorou para conectar, editei o arquivo /etc/ssh/sshd_options e ajustei a opção abaixo, reiniciando o serviço na sequência:

GSSAPIAuthentication no

Conclusões

Já escrevi anteriormente uma crítica forte sobre hospedar serviços na nuvem, ainda continuo com as ressalvas, todo o projeto deve ser pensado para uso em nuvem. Faz todo sentido para aplicativos acessados por pessoas distribuídas em múltiplas unidades, principalmente aplicativos Web, pode não fazer sentido para várias outras cargas de trabalho. Esteja preparado para faturas variáveis e programe a resiliência das aplicações conforme o projeto.

Também deve ser levado em consideração os tributos não inclusos, isso pode fazer algumas ofertas ficarem com valores semelhantes aos praticados pelos provedores/datacenters locais.

Relatório

O IT Central Station divulgou um relatório com uma análise sobre Microsoft Azure e Amazon AWS (“User Reviews of
Microsoft Azure and Amazon AWS – A Peek Into What Real Users Think”). Para ter acesso é só realizar o download abaixo:

Clique aqui para fazer o download do Relatório »

Leia também:

Oito grandes problemas com a computação na nuvem

O que é computação em nuvem e quais os principais tipos?

Qual provedor de Computação em Nuvem vai fazer chover primeiro? Office 364 ou AmazOff? Uma crítica sobre Computação em Nuvem

Nova norma ABNT estabelece critérios para Segurança em Serviços em Nuvem

Read More