![Guia do arquiteto: uma arquitetura moderna de referência para data lake](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711567206_Guia-do-arquiteto-uma-arquitetura-moderna-de-referencia-para-data-150x150.jpg)
Guia do arquiteto: uma arquitetura moderna de referência para data lake
27 de março de 2024![Evolua Dockerfiles manuais e modelados com automação](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711567223_Evolua-Dockerfiles-manuais-e-modelados-com-automacao-150x150.png)
Evolua Dockerfiles manuais e modelados com automação
27 de março de 2024O nativo da nuvem rapidamente se tornou o caminho preferido para a transformação digital, mas isso não ocorre sem complexidade e custos adicionais. Ao contrário da infraestrutura baseada em máquinas virtuais (VM), os ambientes nativos da nuvem com Kubernetes estão sempre mudando; abrangem milhares de contêineres e microsserviços, que emitem maiores quantidades de dados e possuem mais interdependências.
Para enfrentar esses desafios, as equipes de engenharia podem usar plataformas de observabilidade nativas da nuvem com gerenciamento de Kubernetes e camadas de orquestração para atingir metas de negócios digitais com mais rapidez, proteger receitas e apoiar a inovação.
Se sua organização deseja executar uma observabilidade nativa da nuvem e uma solução Kubernetes gerenciada, aqui estão 10 práticas recomendadas a serem seguidas para a observabilidade do Kubernetes.
10 etapas práticas para observabilidade do Kubernetes
Seguir estas 10 etapas simples pode ajudá-lo a obter ou retomar o controle de seus dados de observabilidade:
1. Defina seus objetivos
Primeiro, estabeleça a visão da sua iniciativa de transformação digital e estabeleça metas para alcançá-la. Se for um aplicativo, por exemplo, que permite que uma força de trabalho híbrida se conecte com os clientes, quais deveriam ser seus objetivos de nível de serviço (SLOs)?
Por outro lado, qual é o tempo médio para remediar (MTTR) ou quanto tempo de inatividade a organização pode suportar? Que tipo de aumento de recursos deve ser permitido e quanto financiamento pode ser investido devem ser definidos desde o início. Trabalhando de trás para frente a partir daqui, você pode determinar qual deve ser o tempo médio de detecção (MTTD) para atingir seus objetivos.
2. Selecione as melhores soluções de observabilidade
Como acontece com todo projeto de transformação digital, sua equipe precisa da melhor solução ou combinação de soluções possível, o que dependerá do(s) seu(s) caso(s) de uso e objetivos. Não existe uma maneira de monitorar o Kubernetes ou ser nativo da nuvem. Depende do seu pessoal, da sua organização, dos seus objetivos de negócios e da sua pilha de tecnologia existente.
Os tipos de ferramentas a serem consideradas ao escolher a solução de observabilidade ideal para sua organização são:
- Ferramentas de métricas de código aberto: Prometheus é o padrão de fato para métricas do Kubernetes. Por ter limitações de escalabilidade, as pessoas geralmente optam por adicionar um banco de dados de série temporal como Thanos, Cortex ou M3DB para armazenamento de longo prazo.
- Ferramentas de registro de código aberto: Em ambientes nativos da nuvem, muitas pessoas procuram ferramentas de agregação de log, como o projeto Fluentd da Cloud Native Computing Foundation (CNCF), que atua como um coletor de dados e pode enviar dados para muitos back-ends diferentes.
- Ferramentas de rastreamento de código aberto: Jaeger começou como uma das ferramentas de rastreamento de código aberto mais populares. Desde então, foi eclipsado pelo OpenTelemetry, atualmente o segundo projeto mais ativo no CNCF, que é o padrão de fato para rastreamento de dados.
- Ferramentas de otimização de custos de código aberto: Essas ferramentas relatam informações de custo sobre seu cluster e recursos para que você possa agir. Os mais populares nesta categoria são Kubecost e OpenCost.
- Ferramentas de código não aberto:Existem muitos fornecedores disponíveis que oferecem ferramentas de observabilidade. A questão mais importante aqui é avaliar o uso de padrões abertos para codificação, transporte, ingestão e consulta de dados de observabilidade. Procure integração de projetos baseados em CNCF nesses fornecedores de observabilidade, como o compromisso da Chronosphere em aderir aos padrões da comunidade.
Depois de determinar as soluções necessárias, é hora de decidir como tirar proveito delas. O código aberto é uma característica crítica de qualquer coletor de ecossistema nativo da nuvem, especialmente quando você confia no Kubernetes.
Estas são algumas das principais maneiras de implantar e acessar a observabilidade:
- Código aberto, autogerenciamento (também conhecido como DIY):Este é o ponto de entrada para a maioria das organizações porque elas desejam manter o controle de seus dados e da inovação de observabilidade sem cronogramas e aprisionamento de fornecedores. A observabilidade interna é uma boa escolha se o ambiente não precisar crescer rapidamente ou enormemente. No entanto, você deve ter recursos, experiência e escala para executar, hospedar, operar, hospedar e monitorar a solução em uma zona de disponibilidade diferente daquela que executa seus aplicativos para produção.
- Solução SaaS proprietária:A saúde e o bem-estar de sua organização de DevOps e engenharia de confiabilidade de site (SRE) costumam ser um fator principal na escolha de SaaS. Se você tiver um fornecedor de observabilidade de software como serviço (SaaS) existente em seu ambiente não-contêinerizado, poderá estendê-lo para monitorar o Kubernetes também, mas há várias armadilhas com as quais você precisa estar atento: altos custos de licenciamento devido a preços criados para ambientes centrados em VM, painéis lentos, alertas atrasados devido à abundância de dados e falta de visibilidade das principais métricas em seu cluster Kubernetes.
- Soluções SaaS compatíveis com código aberto:Esse “caminho de ouro” facilita a implementação, oferecendo todos os benefícios da visibilidade total e escalonável de sua pilha, juntamente com controle de dados e sem dependência de fornecedor. Soluções totalmente compatíveis com Prometheus e OpenTelemetry podem oferecer o melhor dos dois mundos. Como resultado, sua organização colhe os frutos não apenas da solução de código aberto, mas também da comunidade, do ecossistema e dos tutoriais. Um serviço de código aberto também fornece uma saída para a auto-hospedagem, caso os objetivos mudem.
A etapa final na escolha de uma solução é escolher uma ferramenta de provedor de nuvem. Para uma única nuvem, usar a análise e o monitoramento do provedor de nuvem é inteligente porque você ganha uma vantagem de preço e visibilidade a partir da integração profunda com a infraestrutura de nuvem existente. Quer você use uma única nuvem ou várias nuvens, você é responsável pela experiência do cliente.
3. Instrumente seu código
Você precisa instrumentar seu código para aproveitar ao máximo as ferramentas que está usando e para ativar o rastreamento distribuído (consulte o nº 7). Na prática, instrumentar seu código significa coletar dados e enviá-los para onde você quiser – sem necessidade de dependência de fornecedor, como monitoramento de desempenho de aplicativos (APM) ou provedores de monitoramento de infraestrutura. Muitas soluções funcionam imediatamente sem muito trabalho, mas você obtém o máximo e os melhores dados disponíveis para tomar o melhor curso de ação instrumentando seu código.
No mundo do código aberto, o Prometheus é o padrão para entender a integridade do cluster Kubernetes. No entanto, tenha cuidado porque talvez você não precise realmente de todos os dados emitidos. Se os dados não forem úteis para você e suas organizações, eles se tornarão caros. Adaptar-se a um caso de uso e necessidade de negócios específicos é sempre melhor do que uma experiência de monitoramento única. Esteja ciente disso se estiver aprendendo com os painéis do Prometheus.
4. Coletando e visualizando dados de observabilidade usando painéis
Seus engenheiros terão a tarefa de criar painéis que forneçam visualização de dados pronta. Dessa forma, você pode rapidamente ver e entender exatamente o que está acontecendo no seu sistema. Muitas soluções incluem um sistema de painel. Por exemplo, o Chronosphere ajuda você a experimentar painéis mais rápidos com a tecnologia Query Accelerator. Em toda a sua frota, é rápido e de alto desempenho e não requer otimizações manuais.
Essa abordagem é mais simples porque seus engenheiros não precisam ser especialistas profundos em uma linguagem de consulta (como PromQL), na arquitetura e na escala do ambiente, no modelo de dados subjacente da solução de observabilidade ou no desempenho de uma consulta em teste na produção.
5. Acompanhe a utilização de seus recursos
Mudanças significativas nos recursos podem significar boas ou más notícias – sua base de clientes aumentou repentinamente ou algo parou de funcionar. De qualquer forma, pode ser um desafio com o APM existente ou com as ferramentas de monitoramento de infraestrutura entender quanto de um recurso você está usando, que recurso é, para qual aplicativo e se está usando muitos recursos.
O Ciclo de Otimização de Dados de Observabilidade da Chronosphere ajuda sua organização a superar esses desafios, compreendendo melhor e tomando medidas sobre o custo de seus dados de observabilidade por meio de um processo que consiste em análise, refinamento e operação.
6. Registro e agregação de registro
O registro em log é importante no mundo nativo da nuvem porque ajuda sua equipe a capturar, agregar e compreender eventos do sistema. Em uma arquitetura nativa de nuvem, o número de incidentes aumenta, mas também aumenta a quantidade de logs que não estão correlacionados em um único sistema. Isso torna difícil encontrar os dados necessários e solucionar o problema. Embora as métricas sejam uma ferramenta importante para diagnosticar os sintomas de um problema, você usa rastreamentos para localizar o problema, e os logs são mais adequados para descobrir a causa raiz do problema.
Para manter os logs sob controle em um ambiente Kubernetes, você precisa ser capaz de agregar e filtrar dados para reduzir o desperdício, economizar dinheiro e facilitar a localização oportuna dos dados necessários.
7. Rastreamento Distribuído
Se você não instrumentar o código corretamente (consulte o nº 2), não poderá oferecer suporte ao rastreamento distribuído. No entanto, o rastreamento distribuído permite ver o que uma solicitação fez em todo o sistema. É a maneira como você determina que uma única função está demorando muito para que você possa se aprofundar no porquê – de preferência antes que prejudique a experiência do cliente.
8. Alertas e notificações
Depois de concluir as etapas 1 a 7, uma prática recomendada é configurar alertas e notificações para enviar para você ou sua equipe. Dessa forma, se e quando algo der errado, alguém poderá fazer a triagem e resolver o problema.
9. Siga as melhores práticas e atualizações
Esta etapa é de bom senso. A preparação para o futuro é difícil, com novas atualizações sendo lançadas quase diariamente. Acompanhe as práticas recomendadas de correção de soluções e observabilidade. Adicione automação quando puder para eliminar processos manuais demorados e propensos a erros.
10. Controle de custos
As melhores plataformas de observabilidade ajudarão você a controlar seus custos de nuvem e gastos com observabilidade. Escolher uma solução como o Chronosphere com seu plano de controle que oferece diferentes ferramentas ao longo do pipeline de observabilidade permite que sua organização:
- Entenda os dados que você tem
- Analise o que é útil, o que é desperdício
- Saiba se as pessoas estão alertando sobre uma métrica
- Veja qual rótulo causa a maior cardinalidade – qual custa mais, mas é menos usado
Esse tipo de transparência permite que engenheiros valiosos e talentosos trabalhem em projetos que tenham maior impacto para os negócios. Com os controles de custos implementados, você pode começar a fazer ajustes e ver a utilidade dos dados; defina cotas para equipes com base em gastos de observabilidade e realize análises de tendências de contabilidade de custos em equipes que executam microsserviços independentes.
Primeiros passos com o Cloud Native
Os ambientes nativos da nuvem são essenciais para as empresas que desejam aproveitar o poder da transformação digital, mas é necessário ter as ferramentas certas que possam funcionar em conjunto e as melhores práticas em vigor. O Chronosphere e seus parceiros foram desenvolvidos desde o início para abstrair as complexidades dos ambientes nativos da nuvem, otimizar dados e reduzir o desgaste da engenharia.
A postagem 10 maneiras pelas quais a observabilidade do Kubernetes aumenta a produtividade e reduz custos apareceu pela primeira vez em The New Stack.