Gerenciamento de despesas do Kubernetes para situações reais.

Qual será o valor necessário para utilizar o Kubernetes? Essa questão ficou mais simples de responder no Azure Kubernetes Service devido à inclusão do OpenCost.

A escolha da Microsoft de priorizar o Kubernetes como um serviço essencial no Azure está trazendo benefícios não apenas para a própria empresa, mas também para toda a comunidade que utiliza o Kubernetes. Isso ocorre devido ao investimento da Microsoft em recursos e fundos para além de seus próprios projetos, apoiando e colaborando com o desenvolvimento de ferramentas e funcionalidades do Kubernetes.
Por vezes, o investimento é empregado para impulsionar melhorias no ambiente de uso dos usuários, enquanto em outras ocasiões é direcionado para assegurar uma execução mais econômica de nossas aplicações nativas na nuvem, com um impacto ambiental reduzido.
Texto parafraseado: Não. Também na InfoWorld: eliminar servidores físicos individuais para que a computação em nuvem possa assumir seu papel.
A Microsoft tem investido em ferramentas de gerenciamento de custos relacionadas ao Kubernetes, um orquestrador que ajusta o uso de computação sob demanda. Isso gera incerteza em relação aos custos de execução do Kubernetes, especialmente em ambientes de nuvem pública com diferentes tipos de servidores virtuais e regras de cobrança, e variações nas demandas de memória, rede e armazenamento. Apesar da capacidade de escalonamento das aplicações conforme definido, é importante considerar o impacto financeiro resultante dessas ações.
Incorporando FinOps no Kubernetes
Como engenheiros, geralmente não costumamos nos preocupar muito com os custos. Isso porque, na maioria das vezes, a responsabilidade pelo que construímos e operamos é de outra pessoa. No entanto, a mesma mentalidade pode ser aplicada às áreas de operações e segurança, especialmente com a introdução do DevOps e do DevSecOps. Com a utilização de serviços em nuvem, podemos empregar as mesmas técnicas que usamos para monitorar o desempenho de nossas aplicações a fim de monitorar os custos, aproveitando a crescente importância do FinOps. Essa nova disciplina nos proporciona uma visão mais clara de como os custos estão relacionados ao nosso código, bem como novas estratégias para assegurar que esses custos sejam atribuídos aos departamentos adequados. Por meio da ferramenta FinOps, conseguimos associar diretamente o código às contas, ao invés de agrupar tudo como uma despesa operacional de TI.
A ferramenta de código aberto OpenCost é destacada aqui, sendo patrocinada pela Cloud Native Computing Foundation, que é responsável pelo Kubernetes. O OpenCost é utilizado para monitorar e distribuir os custos das aplicações Kubernetes, auxiliando na gestão financeira. Contribuidores do OpenCost vêm de diversos setores do ecossistema Kubernetes, incluindo provedores de monitoramento como New Relic e Grafana Labs, e grandes provedores de nuvem como AWS, Google Cloud e Azure. A Microsoft também oferece suporte ao OpenCost no Azure Kubernetes Service.
O OpenCost permite que você analise sua instalação Kubernetes para identificar quais contêineres, pods, implantações, etc., estão gerando mais custos. Ao oferecer alocação de custos em tempo real, essa ferramenta possibilita ir além da simples otimização do desempenho da aplicação, permitindo encontrar um equilíbrio entre desempenho ideal para os usuários e custos controlados. Embora leve tempo para acertar, esse processo de equilíbrio é mais um aspecto importante a ser considerado na otimização de suas aplicações.
Colaborando com o OpenCost no Azure Kubernetes Service.
Enquanto estiver em funcionamento, Custo receberá suporte de produção para AKS a partir de maio de 2023. Durante a Kubecon EU, foi disponibilizada uma construção especial para auxiliá-lo a iniciar. Após a instalação, será necessário realizar algumas configurações, como definir as permissões adequadas para trabalhar com o Azure.
O OpenCost utiliza a API do Azure Consumption Price Sheet para obter informações de preços em tempo real para a sua conta, levando em consideração descontos como instâncias reservadas. Para configurar isso, é necessário adicionar um papel do Azure à sua conta, permitindo que o OpenCost tenha acesso aos detalhes de faturamento por meio do seu ID de conta. Após criar o papel do Azure, é importante salvar a chave e o segredo para utilizar com o OpenCost. A configuração do OpenCost para acessar esses dados pode ser feita através de YAML ou Helm, dependendo de como a instalação foi configurada. Caso tenha um acordo de preços personalizado com o Azure, será necessário o ID de oferta existente para acessar os preços por meio da API.
Sempre disponível, o OpenCost pode fornecer informações ao Prometheus, permitindo a criação de um banco de dados de séries temporais que armazena tanto os dados do Kubernetes quanto os dados de preços do OpenCost. Com isso, é possível integrar as informações financeiras à plataforma de observabilidade, facilitando a identificação de condições de alto custo e tratando-as como falhas. Além disso, existe um plugin kubectl que possibilita a consulta de dados do OpenCost em relação aos serviços, o que permite iniciar operações de script com base em custos passados.
Gerenciando Kubernetes por meio da análise de dados de custo.
Com informações atualizadas em tempo real por meio da API do OpenCost, há possibilidade de implementar modelos de gestão automatizada com foco em custos. Em caso de aumento dos custos, sugere-se utilizar esses dados como entrada para o KEDA, um autoscaler Kubernetes, e considerar um custo elevado como um evento que pode resultar na redução do dimensionamento de um cluster. Também existem alternativas para provedores como o Azure, que podem empregar o OpenCost como uma forma de disponibilizar preços dinâmicos aos usuários.
Por que a Microsoft está adotando a implementação de ferramentas que auxiliam seus clientes a economizar mais, em vez de gastar mais? A empresa pode não ter muita escolha, considerando que a AWS e o Google Cloud também estão envolvidos no projeto OpenCost. No entanto, essa mudança está alinhada com a recente declaração do CEO Satya Nadella de que a Microsoft está ajudando seus clientes a obter mais valor de seus investimentos em tecnologia. Ao permitir que os clientes alinhem seus gastos com o uso do Kubernetes, há uma oportunidade de otimizar de forma dinâmica a utilização da infraestrutura do Azure.
A Microsoft poderia aprimorar a fidelização de clientes, proporcionando a eles a chance de conquistar negócios futuros, ao mesmo tempo em que mantém seus gastos de capital sob controle. Operar grandes centros de dados na nuvem é dispendioso e expandir a capacidade é ainda mais oneroso. Portanto, é vantajoso para a Microsoft e seus clientes adotarem um modelo operacional que permita gastar a quantidade adequada para atender às necessidades de ambos.
O Azure terá maior transparência com o novo modelo de cobrança aberta, o que possibilitará uma melhor compreensão do uso de recursos por parte da Microsoft e dos clientes. Isso também permitirá ao Azure planejar expansões futuras de forma mais estratégica. Com o compromisso de longo prazo da Microsoft com o suporte ao Kubernetes, fica evidente que o desenvolvimento na nuvem é uma tendência duradoura e agora está sujeito aos mesmos padrões de controle que outras plataformas empresariais. Estamos deixando de apenas experimentar para efetivamente construir negócios e serviços, os quais precisam operar de maneira confiável para se tornarem rentáveis tanto para nós quanto para o Azure.
O caminho à frente para o Kubernetes no Azure promete ser monótono, o que era de se esperar. Afinal, o Kubernetes é uma base sólida, e a monotonia é um reflexo da sua maturidade e aceitação no mundo corporativo. O aspecto empolgante ao avançarmos para um futuro impulsionado pelo Kubernetes é a forma como iremos utilizar essa base e as possibilidades que iremos desenvolver sobre ela.