Comparação de custos do Kubernetes Gerido (2020)

Nota do tradutor.: O engenheiro DevOps americano Sid Palas, utilizando o recente anúncio do Google Cloud como pano de fundo, fez uma comparação dos custos do serviço Managed Kubernetes (em diferentes configurações) dos principais provedores de nuvem do mundo. Um adicional positivo de seu trabalho foi a publicação de um Jupyter Notebook correspondente, permitindo (com conhecimentos mínimos em Python) ajustar os cálculos para atender às suas necessidades.

TL;DR: Azure e Digital Ocean não cobram pelo uso de recursos computacionais na camada de controle (control plane), o que os torna uma escolha adequada para implantar vários pequenos clusters. Para iniciar uma pequena quantidade de clusters grandes, o GKE é a melhor opção. Além disso, é possível reduzir significativamente os custos usando nós preemptivos/anunciados de baixo custo ou "assumindo" o uso contínuo dos mesmos nós (isso se aplica a todas as plataformas).

Comparação de custos do Kubernetes Gerido (2020)
Tamanho do cluster (número de workers)

Visão geral

O recente anúncio do Google Cloud sobre a cobrança de 10 centavos por hora de cada cluster no GKE me motivou a analisar os preços das principais ofertas na área de Kubernetes gerenciado.

Comparação de custos do Kubernetes Gerido (2020)
Esse anúncio desapontou bastante alguns...

Os protagonistas do artigo são:

Detalhamento de custos

Os custos totais de uso do Kubernetes em cada uma dessas plataformas são compostos pelos seguintes componentes:

  • Cobra do gerenciamento do cluster;
  • Balanceamento de carga (para Ingress);
  • Recursos computacionais (vCPU e memória) dos workers;
  • Tráfego de Egress;
  • Armazenamento persistente;
  • Processamento de dados pelo balanceador de carga.

Além disso, os provedores de nuvem oferecem descontos significativos se o cliente quiser/puder usar nós preemptivos, spot ou nós de baixa prioridade (low-priority) OU se comprometer a usar os mesmos nós por 1 a 3 anos.

É importante ressaltar que, embora o custo seja uma boa base para comparação e avaliação dos fornecedores de serviços, outros fatores também devem ser considerados:

  • Uptime (Acordo de Nível de Serviço);
  • O ecossistema de nuvem circundante;
  • Versões disponíveis do K8s;
  • Qualidade da documentação/ferramentas.

No entanto, esses fatores estão além do escopo deste artigo/pesquisa. Na anotação de fevereiro no blog da StackRox Fatores não relacionados a preços para EKS, AKS e GKE são discutidos em detalhes.

Bloco de Notas Jupyter

Para facilitar a busca pela solução mais vantajosa, eu desenvolvi o bloco de notas Jupyter, utilizando plotly + ipywidgets. Ele permite comparar as ofertas dos provedores para diferentes tamanhos de cluster e conjuntos de serviços.

Você pode experimentar a versão ao vivo do bloco de notas em Binder:

Comparação de custos do Kubernetes Gerido (2020)
managed-kubernetes-price-exploration.ipynb em mybinder.org

Por favor, me avise se os cálculos ou as taxas de origem estiverem incorretos (isso pode ser feito através de uma issue ou pull request no GitHub — aqui está o repositório).

Como resultado, obtemos um serviço de "monitoramento como serviço", automatizado na linha de produção de integração contínua. O desenvolvedor ou testador precisa apenas definir a lista de métricas em um arquivo JSON, e tudo o mais acontece automaticamente. Obtemos um controle de qualidade transparente dos lançamentos: todas as notificações sobre desempenho, consumo de recursos ou regressões arquitetônicas.

Infelizmente, há muitos detalhes para fornecer recomendações mais específicas além das incluídas no parágrafo TL;DR no início. No entanto, algumas conclusões podem ser feitas:

  • Ao contrário do GKE e EKS, AKS e Digital Ocean não cobram pelos recursos da camada de gerenciamento. AKS e DO são mais vantajosos se a arquitetura inclui muitos pequenos clusters (por exemplo, um cluster para cada desenvolvedor ou cada cliente).
  • Recursos computacionais um pouco menos caros do GKE tornam-no mais vantajoso à medida que o tamanho dos clusters aumenta*.
  • O uso de nós desativáveis ou a vinculação a longo prazo a nós podem reduzir os custos em mais de 50%. Nota: a Digital Ocean não oferece esses descontos.
  • A taxa de tráfego de saída no Google é mais alta, no entanto, o fator determinante no cálculo é o custo dos recursos computacionais (a menos que seu cluster seja uma fonte significativa de tráfego de saída).
  • Escolher tipos de máquinas com base nas necessidades das cargas de trabalho em CPU e memória permitirá evitar custos desnecessários por recursos não utilizados.
  • A Digital Ocean cobra menos por vCPU e mais por memória em comparação com outras plataformas — isso pode ser um fator decisivo para alguns tipos de cargas de trabalho computacionais.

* Nota: a análise utiliza dados para nós computacionais de uso geral (general-purpose). Estes são instâncias n1 do GCP Compute Engine, m5 do AWS ec2, máquinas virtuais D2v3 do Azure e droplets do DO com CPU dedicadas. Por sua vez, pesquisas podem ser conduzidas entre outros tipos de máquinas virtuais (burstable, entry-level). À primeira vista, o custo das máquinas virtuais depende linearmente do número de vCPU e da quantidade de memória, no entanto, não tenho certeza de que essa suposição se manterá válida para relações memória/CPU altamente não padronizadas.

No artigo O Guia Definitivo de Custos do Kubernetes: AWS vs GCP vs Azure vs Digital Ocean, publicada em 2018, foi utilizado um cluster de referência com 100 núcleos vCPU e 400 GB de memória. Para comparação, de acordo com minhas estimativas, um cluster semelhante em cada uma dessas plataformas (para instâncias on-demand) custaria o seguinte:

  • AKS: 51465 USD/ano
  • EKS: 43138 USD/ano
  • GKE: 30870 USD/ano
  • DO: 36131 USD/ano

Espero que o artigo, juntamente com o caderno, ajudem você a avaliar as principais ofertas de Kubernetes gerenciado e/ou economizar em infraestrutura de nuvem, aproveitando descontos e outras oportunidades.

P.S. do tradutor

Confira também em nosso blog:

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster