Blog

Eliminar os flocos de neve para permitir que a nuvem assuma sua posição.

Alta disponibilidade, escalabilidade automática e infraestrutura de nuvem que se auto-recupera são tão robustas quanto a Hydra de múltiplas cabeças da mitologia grega. Aproveite essas funcionalidades ao máximo utilizando containers.

shutterstock 757358335 snowflakes on snow against clouds and blue sky
Imagem:
chsyys/Flickr

Segundo a lenda grega, ao se aproximar de um determinado lago em Lerna, você se depararia com a hidra de muitas cabeças, uma criatura aquática serpentina que guarda o segredo da arquitetura das nuvens atual. Isso porque a criatura é resistente de se matar, assim como se deseja que a infraestrutura de nuvem seja. Cada vez que uma cabeça é cortada, crescem mais duas em seu lugar.

Na narrativa mitológica, mesmo o forte Hércules necessitava de auxílio para derrotar a besta resistente. Contudo, no contexto da tecnologia da informação, em vez de contar com a ajuda de outros, estamos depositando nossa confiança em servidores virtuais que operam na nuvem.

Perdemos a compreensão do potencial real da automação de infraestrutura para proporcionar soluções de escalabilidade automática, auto-recuperação e autoajuste. Isso ocorre devido à expectativa da alta cúpula de uma transição suave e rápida para a nuvem, com o mínimo de mudanças reais possível.

Isso encoraja as equipes a migrar e modernizar seu antigo código para máquinas virtuais que se assemelham ao seu data center local. Embora haja situações em que essa abordagem seja necessária e apropriada – como em casos de mudança rápida de data center alugado – na maioria das vezes, isso apenas adia uma verdadeira transformação. Ao permanecer em um ambiente familiar, as equipes continuarão a depender de configurações antigas, mesmo com implementações “automatizadas” que ainda requerem ajustes manuais nos servidores.

Estas personalizações manuais específicas eram necessárias para garantir o funcionamento adequado das máquinas virtuais em servidores físicos locais. O processo envolvia ajustes individuais em cada sistema, tornando a manutenção semelhante a cuidar de um animal de estimação que demandava atenção constante. A equipe era responsável por manter esse servidor por um longo período de tempo.

No entanto, mesmo ao transferir sua infraestrutura de TI para a nuvem, os engenheiros ainda tendem a utilizar máquinas virtuais provisionadas na nuvem por meio de configurações manuais. Embora pareça ser a maneira mais simples de atender a requisitos de “elevação e mudança”, isso impede que as ofertas de nuvem pública sejam totalmente automatizadas para proporcionar alta disponibilidade, autoescalabilidade e autoconserto da infraestrutura. É como comprar um smartphone, colocá-lo no bolso e esperar que ele toque para fazer uma chamada.

RELACIONADO:  Google amplia conjunto de ferramentas GenAI responsivas.

Resultado final: Mesmo com investimentos significativos na nuvem, as organizações conseguiram aproveitar ao máximo suas habilidades.

Por que você consideraria suas estratégias de gerenciamento de serviços em nuvem, como Azure, Google Cloud ou outros, da mesma maneira que gerencia um data center, quando suas abordagens governamentais são essencialmente distintas?

Ira contra o software de computador. Funciona sem memória.

Para implantar em nuvem de forma nativa, é necessário adotar uma abordagem semelhante à de um rebanho virtual, em que não se valoriza servidores individuais, mas sim a capacidade de gerar novos recursos conforme necessário, sem depender de um único servidor.

Você pode implementar essa funcionalidade utilizando regras de auto-escalonamento em sua plataforma de nuvem, o que representa um passo intermediário em direção a um ambiente nativo na nuvem. No entanto, é na orquestração de contêineres que você realmente aproveita todo o potencial da tecnologia: robusta, auto-reativa e escalável de forma simplificada.

Imaginemos que, assim como as míticas Hydra, as máquinas virtuais exigissem vários minutos de inatividade para regenerar cada cabeça cortada. Enquanto Hércules poderia enfrentá-la sozinho durante esse tempo, a leveza dos contêineres permite um escalonamento horizontal e auto-aquecimento que pode ser concluído em menos de cinco segundos (com contêineres bem projetados), fornecendo uma verdadeira alta disponibilidade que supera até mesmo a espada mais rápida do executor.

Agradecemos ao Google por possibilitar a rápida escalabilidade de cargas de trabalho, tornando-a mais acessível. Larry Page e Sergey Brin iniciaram o Google com poucos recursos, utilizando discos rígidos empilhados em uma caixa de LEGOs e computadores de mesa comuns. Eles deram início a uma revolução ao demonstrar que grandes servidores não eram mais necessários, pois agora é possível implantar e enviar recursos conforme a demanda, graças à commoditização da computação.

De volta aos contêineres. Pense nos recipientes como as cabeças da hidra. Se um deles falha, com a configuração correta em sua nuvem, seja no Kubernetes, Amazon ECS ou outro serviço de orquestração de contêineres, a nuvem imediatamente os substitui por novos recipientes que assumem a tarefa do anterior.

RELACIONADO:  Análise do Haystack: Uma plataforma flexível para criação de aplicativos LLM

Sim, embora haja um investimento necessário para adotar essa estratégia, em contrapartida, você estará abrindo caminho para uma escalabilidade sem igual, o que resultará em maior confiabilidade e agilidade nos recursos disponíveis para o seu negócio. Continuar a enxergar a nuvem apenas como um centro de dados tradicional, sem aproveitar seu potencial para reduzir custos, pode acarretar em mais gastos e privar sua empresa dos benefícios-chave que a computação em nuvem oferece.

Qual é a estrutura de uma arquitetura fundamentada em hidratos?

Como podemos criar as cabeças da hidra, que são essenciais para a arquitetura de nuvem atual, agora que entendemos sua importância?

Dividir as configurações do código.

Com base nos Princípios de Aplicação de 12 Fatores, uma arquitetura hidra deve contar com configuração baseada no ambiente, assegurando uma infraestrutura robusta e altamente disponível, sem depender de mudanças no código-base.

Sempre automatizado, nunca manual.

Considere os sistemas de arquivos como sendo imutáveis e não locais. É importante enviar registros para Prometheus ou Amazon CloudWatch, e armazenar arquivos em plataformas de armazenamento em blocos como Amazon S3 ou Azure Blob Storage. Além disso, é essencial implementar serviços de automação para integração contínua, entrega contínua e recuperação de desastres, para que novos contêineres sejam executados automaticamente conforme necessário.

Use a embalagem do recipiente como referência.

Para controlar os gastos e minimizar o desperdício, é aconselhável seguir os princípios de empacotamento de contentores. Enquanto algumas plataformas de nuvem oferecem serviços de empacotamento automático, outras requerem uma abordagem mais manual. Em qualquer caso, é essencial otimizar os seus recursos. Pense nisso desta forma: as máquinas são como espaço de armazenamento em um navio – você tem limitações baseadas na CPU e RAM disponíveis. Os contentores são as caixas que serão carregadas no navio. Já que você pagou pelo armazenamento (ou seja, as máquinas de base), é importante maximizar ao máximo esse investimento. Em uma configuração 1:1, você estaria pagando por vários navios que transportam apenas uma caixa cada.

RELACIONADO:  O desenvolvimento orientado a componentes tem sido aguardado por bastante tempo.

As atividades que você oferece

Reformulação: Os serviços devem ser robustos e eficazes. Desenvolva serviços com tamanho apropriado, encontrando o equilíbrio entre microsserviços e monolitos, criando um conjunto de serviços adequado para resolver o problema de acordo com o contexto e domínio em que está atuando. Enquanto os microserviços podem gerar complexidade e os monolitos podem ter limitações de escalabilidade, a melhor opção geralmente está em um ponto intermediário.

Como é possível determinar se teve sucesso?

Como saber se os seus recipientes foram configurados corretamente para permitir a escalabilidade horizontal? Um teste simples é desligar um servidor ou cinco servidores e ver se a sua infraestrutura volta à vida sem precisar de intervenção manual. Se isso acontecer, ótimo. Se não, é necessário revisar a configuração e corrigir o problema. Esse princípio se aplica a qualquer nuvem pública: automatize tudo, inclusive suas estratégias de recuperação de desastres, sempre que possível. Pode ser necessário ajustar como a sua aplicação reage a esses cenários.

Como benefício adicional, poupar tempo em conformidade.

Ao adotar o dimensionamento automático horizontal e a automedicação, você terá mais tempo disponível, pois não precisará mais se preocupar com a segurança e a conformidade. Com serviços gerenciados, não será necessário dedicar tanto tempo à manutenção do sistema operacional, pois há um modelo de responsabilidade compartilhada. Ao executar serviços baseados em contêineres em ambientes de terceiros, a segurança do sistema operacional host e a segmentação de rede são tratadas por eles, facilitando a conformidade com SOC e HIPAA.

Agora, vamos retornar à programação.

Resumindo, se você é um engenheiro de software, provavelmente tem tarefas mais importantes do que ficar cuidando da sua infraestrutura de nuvem virtual, especialmente se ela está gerando mais custos do que benefícios esperados da virtualização. Ao investir tempo em garantir a escalabilidade automática e a auto-recuperação, você estará preparado para uma infraestrutura altamente disponível, liberando mais tempo para sua equipe se dedicar a atividades valiosas como o desenvolvimento de produtos.

Então siga em frente e se envolva em seu próximo desafio sabendo que sempre haverá obstáculos a serem superados. Pois, no final, não existe o conceito de se arriscar demais.

Artigos relacionados

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button