Whitepaper 'FinOps e gerenciamento de custos para Kubernetes'
Por favor, considere dar ao OptScale um Estrela no GitHub, é código aberto 100%. Aumentaria sua visibilidade para outros e aceleraria o desenvolvimento de produtos. Obrigado!
Webinar 'FinOps e otimização de custos de nuvem para cargas de trabalho de ML/AI.' Cadastre-se aqui →
Ebook 'De FinOps a estratégias comprovadas de gerenciamento e otimização de custos de nuvem'
OptScale — FinOps
Visão geral do FinOps
Otimização de custos:
AWS
Microsoft Azure
Google Cloud
Nuvem Alibaba
Kubernetes
OptScale — MLOps
Perfil de ML/IA
Otimização de ML/IA
Criação de perfil de Big Data
PREÇOS OPTSCALE
Acura – migração para nuvem
Visão geral
Nova plataforma de banco de dados
Migração para:
AWS
Microsoft Azure
Google Cloud
Nuvem Alibaba
VMware
Pilha aberta
KVM
Nuvem pública
Migração de:
Na premissa
Acura – DR e backup na nuvem
Visão geral
Migração para:
AWS
Microsoft Azure
Google Cloud
Nuvem Alibaba
VMware
Pilha aberta
KVM
Papel branco

FinOps e gerenciamento de custos para Kubernetes

Este whitepaper aborda os principais desafios de gerenciamento de infraestrutura do Kubernetes, fornece dicas técnicas e práticas recomendadas para fornecer visibilidade ao ambiente K8s, otimizar custos, superar problemas de configuração incorreta, melhorar o desempenho do Kubernetes e calcular economia de unidade para clusters Kubernetes.

  • Por que as empresas precisam rastrear e analisar os custos do Kubernetes
  • Como trazer visibilidade aos custos de nuvem do Kubernetes
  • Como otimizar custos de TI em uma infraestrutura Kubernetes
  • Quais são os principais desafios de gerenciamento e otimização de custos da nuvem
  • Problemas de desempenho do Kubernetes e formas de correção 
  • Insights muito mais profundos sobre gerenciamento de custos para o ambiente Kubernetes. 
 
 
*Ao enviar você concorda com Hystax política de Privacidade. Se preferir não receber os materiais da Hystax, pode sempre cancelar a subscrição.

Obrigado pelo seu pedido!

Seu download começará em alguns segundos

Nick Smirnov, CEO and Co-Founder

Nick Smirnov,
Entusiasta de FinOps e CEO da Hystax

Sobre o autor

Nick Smirnov é um entusiasta de FinOps e transformação digital com mais de 10 anos de experiência trabalhando com nuvens públicas e no desenvolvimento de software corporativo. Nick é apaixonado pela adoção da nuvem e está ajudando as empresas a navegar pelo gerenciamento de custos da nuvem com mais eficiência.

Introdução

As vantagens da infraestrutura do Kubernetes, como portabilidade e escalabilidade, sua base de código aberto e a capacidade de aumentar a produtividade do desenvolvedor, tornaram as tecnologias de contêiner uma escolha popular para muitas empresas, e o Kubernetes se tornou o padrão para executar aplicativos baseados em contêiner nas nuvens. Mais do que 80% das empresas hoje operam contêineres na produção e 78% deles usam serviços Kubernetes.

Como a infraestrutura em contêiner está obtendo ampla adoção e as tecnologias Kubernetes estão ganhando força, está se tornando crucial entender como obter uma imagem clara dos gastos com recursos K8s, aplicar oportunidades de otimização de custos e aprimorar Desempenho do Kubernetes. 

A realidade mostra que não basta apenas usar o Kubernetes para obter o melhor valor das nuvens públicas. De acordo com um recente relatório StackRox, cerca de 70% das empresas detectaram configuração incorreta em seu ambiente Kubernetes.

Uma estrutura conteinerizada cria dificuldades significativas com a transparência, alocação e desempenho da nuvem que causam desafios no gerenciamento e otimização de recursos.

O whitepaper aborda os principais desafios de gerenciamento do desempenho do Kubernetes, descreve recomendações e dicas técnicas para alcançar a transparência dos clusters K8s e superar problemas de otimização e gerenciamento de custos. 

Ele ajudará você a construir uma estratégia de gerenciamento sólida para o ambiente Kubernetes, dar um salto gigante na melhoria do desempenho do aplicativo e reduzir seu custo de infraestrutura.

Por que as empresas precisam rastrear e analisar os custos do Kubernetes

Existem duas abordagens principais para a virtualização: máquinas virtuais (VMs) e contêineres virtuais, cada um com suas próprias vantagens e desvantagens. No primeiro caso, cada máquina usa seu sistema operacional convidado, o que oferece a oportunidade de criar ambientes de computação heterogêneos em um servidor físico. Os containers virtuais, por sua vez, ao invés de um SO possuem apenas um ambiente de usuário, o que possibilita a criação apenas de ambientes computacionais homogêneos.

No entanto, como as máquinas virtuais incluem um sistema operacional, elas podem ter vários gigabytes de tamanho – o que limita substancialmente sua utilidade no mundo ágil de hoje. Outra desvantagem das máquinas virtuais é que leva muito mais tempo para carregar o sistema operacional e seus aplicativos.

Track and analyze K8s costs

Os contêineres são mais leves e geralmente medidos em megabytes; e, o que é mais importante, eles são mais fáceis de dimensionar e implantar aplicativos. Isso cria um ecossistema de infraestrutura totalmente novo, o que significa novos desafios e complexidades. As empresas de TI, grandes corporações e start-ups, implantam milhares de instâncias de contêiner todos os dias e, portanto, precisam gerenciar essa quantidade esmagadora de alguma forma.

O Kubernetes, uma plataforma de orquestração de contêineres para implantação, dimensionamento e gerenciamento de aplicativos em contêineres, foi projetado como uma solução para esse problema. Com o tempo, o K8s tornou-se essencialmente a plataforma padrão do setor e o principal projeto da Cloud Native Computing Foundation, apoiado por líderes de mercado: Google, Amazon, Microsoft, IBM, Alibaba Cloud e muitos outros.

Devido às suas vantagens, o Kubernetes ganha popularidade, mas ao mesmo tempo traz dificuldades significativas para o rastreamento de custos da nuvem e gerenciamento financeiro.

Desafios de analisar os custos do Kubernetes

Challenges-of-analyzing-Kubernetes-costs

Antes da adoção generalizada da tecnologia de conteinerização, a alocação de recursos em nuvem e a otimização do uso da nuvem eram muito mais fáceis. Bastava neste caso a atribuição de recursos específicos a um projeto ou departamento específico. Não será difícil para uma equipe de FinOps – se eles fizerem parte de sua equipe de TI – criar um detalhamento de custos de nuvem e montar uma estratégia de otimização de custos de nuvem. Se você gostaria de saber mais sobre o papel do FinOps e quais os benefícios potenciais que ele pode oferecer aos negócios, consulte um e-book "De FinOps a estratégias comprovadas de gerenciamento e otimização de custos de nuvem".

Infelizmente, essa abordagem é absolutamente inaplicável para ferramentas de conteinerização em geral e Kubernetes em particular. Qual é a razão pela qual os custos do Kubernetes são tão difíceis de definir e analisar?

A dificuldade em rastrear os custos do Kubernetes decorre de sua arquitetura. No núcleo do Kubernetes, existe um cluster que consiste em várias máquinas virtuais (ou físicas) – nós. Nesses nós, os contêineres são implantados e iniciados – na verdade, eles contêm vários aplicativos.

Agora, digamos que vários departamentos da sua empresa estejam trabalhando em vários aplicativos executados dentro de contêineres e, por acaso, compartilhem clusters Kubernetes comuns. É quase impossível determinar qual dos aplicativos iniciados usa qual parte dos recursos de quais clusters, porque cada um dos aplicativos é iniciado em vários contêineres ao mesmo tempo. Embora calcular o custo de um contêiner seja possível e não muito difícil por si só, ainda requer infraestrutura e tempo, e a complexidade cresce proporcionalmente ao número de contêineres usados.

Até agora, consideramos a situação dentro do quadro de uma nuvem. Mas e se sua empresa, como a maioria das organizações de TI modernas de hoje, usar o multicloud. Nesse caso, o monitoramento de custos aumentará muitas vezes – cada uma das nuvens dentro dessa multicloud pode ter um provedor de serviços diferente, assumindo apenas uma parte da carga de trabalho total porque o Kubernetes pode trabalhar com AWS, Microsoft Azure, Google Cloud Platform, Alibaba Nuvem e muitos outros.

Além disso, a intensidade de recursos de cada um de seus aplicativos pode mudar ao longo do tempo, o que impõe dificuldades adicionais no cálculo de custos. Assim, o fácil de usar Ferramentas VPA (Vertical Pod Autoscaler) e HPA (Horizontal Pod Autoscaler), que, respectivamente, ajustam automaticamente o limite do número de solicitações para um único contêiner e o número de contêineres usados, tornam-se variáveis adicionais difíceis de fatorar ao tentar rastrear e gerenciar os custos atuais do Kubernetes e, é claro, prever custos futuros .

Outro problema é que a vida útil de um contêiner é de apenas um dia e as funções sendo executadas no Kubernetes – até minutos ou até segundos. Novamente, essa dinâmica é definitivamente uma vantagem do ponto de vista de um engenheiro de TI, mas se torna uma dor de cabeça quando se trata de controle e gerenciamento de custos.

Como rastrear e gerenciar os custos do Kubernetes

Como já dissemos, é muito difícil rastrear e gerenciar os custos do Kubernetes, mas ainda existem várias técnicas que podem ajudá-lo a analisar os custos do Kubernetes e, eventualmente, controlá-los.

1. Rotulagem adequada de recursos

Muito provavelmente, você está familiarizado com a marcação de recursos de nuvem. Quando se trata de Kubernetes, os chamados rótulos são usados em vez de tags. Se você e seus engenheiros cuidarem da rotulagem dos recursos utilizados, isso facilitará muito sua busca e identificação no futuro.

How to manage k8s costs

É importante ser inteligente sobre esse processo para que você possa posteriormente dividir seus recursos por vários parâmetros relevantes. A implementação bem-sucedida dessa estratégia exigirá a participação ativa de todos os membros da equipe de TI; caso contrário, essa ideia inicialmente boa pode levar a ainda mais confusão.

2. Visualização por meio do Prometheus

Sistemas de monitoramento de código aberto como o Prometheus podem ser uma grande ajuda na visualização de seus custos. E a visualização competente, por sua vez, é um salto gigantesco no caminho para uma análise competente.

3. Uso adequado do escalonamento automático

O dimensionamento automático é um recurso matador do Kubernetes e, com a ajuda dele, é possível gerenciar facilmente as cargas de trabalho. Já mencionamos dois deles – Autoescalador vertical de pods e autoescalador horizontal de pods, mas na verdade existem mais dois disponíveis: Kubernetes Event-Driven Autoscaler e Cluster Autoscaler, onde o primeiro gerencia o dimensionamento de qualquer contêiner no Kubernetes com base no número de eventos a serem processados, enquanto o último lida com o dimensionamento automático no cluster e nível do nó. Dito isso, é um grande desafio fazê-los funcionar juntos adequadamente — não apenas você deve seguir as várias práticas recomendadas, mas também ajustar as configurações com base em seus cenários.

4. Escolhendo as instâncias de nuvem certas

O custo do Kubernetes depende diretamente de quão bem as instâncias de nuvem são selecionadas. É importante garantir que o consumo de recursos dos pods do Kubernetes corresponda à quantidade de memória alocada e aos recursos de computação da instância, independentemente de qual provedor de nuvem é usado.

5. Gerenciamento proativo de recursos

Recursos subutilizados e não utilizados são um dos primeiros itens a procurar por perdas diretas e espaço para otimização. Conforme mencionado anteriormente, os especialistas em TI preferem o desempenho à otimização de recursos, portanto, tendem a usar recursos em excesso. Apesar da perspectiva tentadora de abandonar imediatamente todas as capacidades ociosas, isso deve ser feito com sabedoria, para não excluir nada que se revele importante – o próximo ponto decorre disso.

6. Contratar um gerente de FinOps

O FinOps pode ajudar a resolver vários problemas ao mesmo tempo. Em primeiro lugar, passará mais responsabilidade aos especialistas técnicos pelo desempenho financeiro da empresa como um todo, e seus gastos com recursos de nuvem em particular. Em segundo lugar, pode se tornar o elo perdido que pode monitorar e gerenciar os custos do Kubernetes diariamente para que o escalonamento dos recursos utilizados ocorra quando for realmente necessário.

Como trazer visibilidade aos custos de nuvem do Kubernetes

How to bring visibility to k8s costs

Como cada vez mais organizações estão expandindo o uso de orquestradores de contêineres e o Kubernetes está se tornando uma escolha popular para muitas empresas, é importante entender como fornecer total transparência nos recursos do K8s para atingir metas de otimização de custos e melhorias de desempenho.

As vantagens das tecnologias de contêiner, como portabilidade e escalabilidade, e sua base de código aberto tornaram o Kubernetes o padrão para executar aplicativos baseados em contêiner nas nuvens.

Felizmente, as plataformas de nuvem fornecem suporte e ajudam empresas de qualquer tamanho a adotar a tecnologia Kubernetes. Aqui está uma lista de serviços fornecidos pelas principais plataformas de nuvem: 

  • Amazon Elastic Kubernetes Service (Amazon EKS) na AWS
  • Google Kubernetes Engine (GKE) no Google Cloud
  • Microsoft Azure: Serviço Azure Kubernetes (AKS)
  • IBM Cloud: Serviço IBM Cloud Kubernetes
  • Oracle Cloud Infrastructure: Oracle Container Engine para Kubernetes
  • Alibaba Cloud: serviço de contêiner para Kubernetes (ACK)

Apesar das vantagens do Kubernetes, uma estrutura conteinerizada cria desafios com transparência de custos na nuvem, alocação que causam dificuldades significativas na gestão e otimização de recursos.

Um gerenciamento de nuvem eficaz precisa de visibilidade de custos; é crucial identificar unidades organizacionais como aplicativos, serviços de nuvem, pools de ativos, unidades de negócios, equipes, engenheiros individuais e mapeá-los nos custos da nuvem.

Baixe a versão completa para ler