O que é infraestrutura imutável?

Um notebook executando código em uma sala de servidores

Autores

Annie Badman

Staff Writer

IBM Think

Derek Robertson

Staff Writer

IBM Think

O que é infraestrutura imutável?

A infraestrutura imutável é a prática de substituir, e não modificar, servidores e outros recursos de TI quando são necessárias alterações.

As organizações podem gerenciar a infraestrutura por meio de duas abordagens: mutável e imutável. A infraestrutura imutável substitui totalmente os servidores em vez de modificá-los. A infraestrutura mutável modifica os servidores no local, aplicando atualizações, patches e alterações de configuração diretamente aos servidores de produção.

Como está modificando principalmente servidores existentes, a infraestrutura mutável pode parecer mais eficiente. No entanto, dois fatores geralmente tornam a infraestrutura imutável mais prática e preferível.

Primeiro, a computação em nuvem e a conteinerização transformaram a velocidade da implementação. As organizações agora podem substituir máquinas virtuais (VMs) e contêineres em minutos, em vez das horas necessárias para servidores físicos. As ferramentas de automação de infraestrutura podem provisionar e configurar novos servidores e recursos de TI e aplicar alterações uniformes em escala.

Em segundo lugar, a infraestrutura imutável pode reduzir significativamente o desvio de configuração, uma funcionalidade comum da infraestrutura mutável, em que um sistema diverge gradualmente de seu estado pretendido à medida que as alterações se acumulam. O desvio de configuração é especialmente comum quando problemas de rede interrompem o processo de implementação, causando atualizações parciais ou com falha. Esse desvio pode levar a um desempenho insatisfatório, vulnerabilidades de segurança e violações de conformidade. 

Por exemplo, ao implementar uma atualização de segurança em 100 servidores de produção, as ferramentas de automação podem criar 100 novos servidores com a atualização pré-instalada e validá-los de forma isolada. Uma vez validados, eles redirecionam o tráfego e descomissionam os servidores antigos, tudo em minutos com downtime zero.

Como funciona a infraestrutura imutável?

A infraestrutura imutável segue um fluxo de trabalho de três fases: provisionar novos recursos, implementá-los e permitir a recuperação instantânea quando necessário.

Esse fluxo de trabalho se aplica a servidores, contêineres, VMs, funções ou qualquer outro recurso de infraestrutura durante todo o seu ciclo de vida.

Provisionamento com infraestrutura como código

O provisionamento cria automaticamente novos componentes de infraestrutura de TI que usam infraestrutura como código (IaC), uma prática que utiliza modelos declarativos ou código para definir os estados de infraestrutura pretendidos.

Para atualizar um ambiente imutável, as equipes criam um recurso totalmente novo com a configuração definida, em vez de usar o SSH (um protocolo de rede para acesso seguro a servidores remotos) para modificar os existentes. 

Todas as alterações de infraestrutura são, então, documentadas em sistemas de controle de versão como o Git, garantindo que sejam testadas e reproduzíveis.

As ferramentas comuns de provisionamento incluem: 

  • Terraform: a plataforma de infraestrutura como código da HashiCorp provisiona e gerencia infraestrutura nos ambientes AWS, Google Cloud, Azure e no local por meio de suas APIs, com sintaxe HCL declarativa e arquivos de estado para rastrear alterações.

  • Docker: cria imagens de containeres leves com base em sistemas de arquivos em camadas e virtualização no nível do sistema operacional, principalmente em sistemas Linux, mas também Windows e macOS, permitindo uma implementação mais rápida do que VMs tradicionais.

  • Packer: a ferramenta da HashiCorp que cria imagens de máquinas idênticas simultaneamente para múltiplos provedores de nuvem e plataformas (AMIs para AWS, modelos VMware, contêineres Docker) a partir de uma única configuração JSON ou HCL.

  • AWS CloudFormation: ferramenta nativa da AWS baseada em modelos JSON/YAML para provisionar recursos da AWS com reversão integrada e detecção de desvio. 

  • Pulumi: plataforma de IaC que usa linguagens de programação familiares (Python, TypeScript, Go) em vez de linguagens específicas do domínio, permitindo que os desenvolvedores usem construções de programação padrão como loops e condicionais.

Vale a pena mencionar que o Puppet e o Chef foram originalmente projetados para infraestrutura mutável, onde atualizam servidores no local, embora algumas equipes agora os adaptem juntamente com abordagens imutáveis.

Implementação por meio de pipelines de CI/CD

As implementações na infraestrutura imutável são atômicas: ou elas são completamente bem-sucedidas ou não ocorrem. Essa abordagem se alinha às práticas de DevOps e pipelines de integração contínua, que enfatizam testes automatizados, iteração rápida e implementações confiáveis.

As ferramentas de automação implementam a nova versão do recurso, redirecionam o tráfego para ele e, em seguida, desativam o antigo. Se surgirem problemas durante a implementação, o recurso antigo permanecerá intocado e operacional, eliminando o downtime e os riscos de dependência.

Ferramentas comuns de implementação e orquestração incluem: 

  • Kubernetes: plataforma de orquestração de contêineres de código aberto que gerencia aplicações conteinerizadas nativas da nuvem em escala por meio de autocorreção, expansão automática e atualizações contínuas em agrupamentos de máquinas.

  • Jenkins: pipelines de CI/CD baseados em servidor que automatizam a construção, o teste e a implementação com um extenso ecossistema de plug-ins (mais de 1.800 plug-ins) para personalizar os pipelines de construção, teste e implementação.
  • Ações do GitHub: plataforma de CI/CD orientada a eventos integrada nos repositórios do GitHub, acionada por commits de código, solicitações de pull ou agendamentos sem a necessidade de servidores externos.

  • Ansible (Red Hat): principalmente uma ferramenta de gerenciamento de configuração, mas também usada para implementações. Ele usa playbooks YAML para automação sem agentes e não requer instalação de software em nós gerenciados, ao contrário do Puppet ou Chef. 

Armazenamento de dados externo

Como os servidores na infraestrutura imutável são efêmeros (estão sendo constantemente substituídos), os dados persistentes devem ser armazenados externamente. As organizações usam cloud databases, block storage ou object storage para manter os dados separados dos servidores que estão sendo substituídos. 

Quando um novo servidor fica on-line, ele se reconecta aos dados existentes por meio desses sistemas de armazenamento externo. A configuração e os metadados frequentemente residem em sistemas de controle de versão como o Git. 

Recuperação

Cada atualização cria uma nova instância, mantendo uma imagem limpa para reversão. As mesmas ferramentas de automação que provisionam e implementam podem restaurar versões anteriores em minutos. As equipes reimplementam a imagem anterior em vez de depurar e solucionar problemas de servidores modificados, reduzindo muito o trabalho de investigação tradicionalmente necessário quando as alterações de gerenciamento de configuração falham.

As mais recentes notícias de tecnologia, corroboradas por insights de especialistas.

Mantenha-se atualizado sobre as tendências mais importantes (e intrigantes) do setor em IA, automação, dados e muito mais com o boletim informativo Think. Consulte a Declaração de privacidade da IBM.

Agradecemos sua inscrição!

Sua assinatura será entregue em inglês. Você pode encontrar um link para cancelar a assinatura em todos os boletins informativos. Você pode gerenciar suas inscrições ou cancelar a inscrição aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Benefícios da infraestrutura imutável

Os benefícios de uma infraestrutura imutável estão amplamente relacionados ao processo de implementação, cuja imutabilidade a torna mais simples e consistente.

Estado previsível do servidor

A infraestrutura imutável elimina estados de servidor ambíguos por meio de implementações atômicas: as atualizações são completamente bem-sucedidas ou não ocorrem.

As infraestruturas mutáveis correm o risco de atualizações parciais que levam a estados “intermediários” imprevisíveis, com características que não são totalmente conhecidas pelos administradores. Essa situação pode dificultar a solução de problemas e aumentar os riscos de segurança.

Uma infraestrutura imutável elimina a possibilidade de tal estado. Se uma atualização falhar, o servidor permanecerá em seu estado bem documentado. Se tiver sucesso, o novo servidor chegará totalmente configurado e testado.

Escalabilidade horizontal aprimorada

A infraestrutura imutável ajuda a permitir o rápido escalonamento horizontal, a prática de atender à demanda adicionando um número maior de máquinas menores a uma rede (em vez de uma máquina grande). Um sistema escalonado horizontalmente é mais tolerante a falhas e pode reduzir gargalos de processamento distribuindo sua carga de trabalho.

Essa abordagem é realizada usando balanceadores de carga, que distribuem o tráfego de rede entre vários servidores para melhorar o desempenho. Ferramentas como o Nginx e o AWS Elastic Load Balancing (ELB) da Amazon ajudam a apoiar essa prática usando um algoritmo para atribuir solicitações de usuário ao servidor mais eficiente em qualquer momento específico.

Essa combinação de balanceamento de carga e orquestração de contêineres torna a infraestrutura imutável, com seus modelos reproduzíveis, essencial para levantar vários servidores idênticos em curto prazo. Essa configuração pode ser especialmente útil quando as redes esperam grandes picos de tráfego, como durante um feriado de compras ou venda de ingressos. Também ajuda na coordenação entre regiões globais onde o tráfego aumenta em horas diferentes e, às vezes, sobrepostas.

Maior segurança

A infraestrutura imutável fortalece a segurança, eliminando "estados de floco de neve" imprevisíveis (servidores com configurações desconhecidas após atualizações com falha) e mantendo trilhas de auditoria completas de todas as alterações.

Cada servidor está em conformidade exatamente com o arquivo de imagem de origem que o descreve, simplificando a identificação de vulnerabilidades de segurança, como instalações não autorizadas de software ou escalada de privilégios, e a execução de auditorias de segurança. Os sistemas de controle de versão rastreiam cada alteração feita no sistema, incluindo quem a fez, quando e por quê. Esse histórico imutável permite análises forenses e respostas a incidentes mais rápidas. As equipes podem identificar imediatamente as configurações comprometidas e reverter para os estados de bom funcionamento, se necessário.

Uma infraestrutura imutável também elimina a necessidade de usar logins do Secure Shell (SSH) para editar os servidores no local, reduzindo a superfície de ataque da rede.

Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Desafios da infraestrutura imutável

A imutabilidade também apresenta compensações em comparação com uma infraestrutura mais tradicional e mutável, principalmente em relação ao armazenamento de dados.

Em uma infraestrutura mutável, um servidor pode gravar dados críticos de aplicações no disco local, tornando perigoso ou potencialmente impactante o sistema excluir e substituir esse servidor e disco. Portanto, em uma infraestrutura imutável, os dados devem ser armazenados externamente, adicionando um nível adicional de complexidade ao sistema.

Esse método pode ser feito usando armazenamento de dados externo, como cloud databases, block storage ou object storage. Quando uma nova máquina virtual fica online, ela pode se reconectar sem dificuldades aos dados existentes por meio desse armazenamento externo. As organizações geralmente mantêm a configuração e os metadados em sistemas de controle de versão, como o Git.

No entanto, a verdadeira "imutabilidade" de uma infraestrutura imutável às vezes é contestada. Essa limitação ocorre porque os dados do usuário da rede armazenados externamente estão em um estado constante de fluxo e, portanto, não podem ser comparados a um estado conhecido.

Fluxograma ilustrativo representando conexões
Soluções relacionadas
IBM Turbonomic

Escale automaticamente sua infraestrutura de TI existente para obter maior desempenho com custos reduzidos.

Explore o IBM Turbonomic
Soluções de AIOps

Descubra como a IA para operações de TI fornece os insights de que você precisa para ajudar a impulsionar o desempenho excepcional dos negócios.

Explore soluções AIOps
Serviços de consultoria em automação

Vá além da automação de tarefas simples para lidar com processos estratégicos voltados para o cliente e geradores de receita, com adoção integrada e escalabilidade.

Conheça nossos serviços de consultoria em automação
Dê o próximo passo

Saiba como a IA para operações de TI traz insights para gerar um desempenho excepcional para os negócios.

Explore o Turbonomic Explore soluções AIOps