Não é possível implementar uma infraestrutura imutável sem uma arquitetura por aplicativo

Ecossistema F5 | 09 de julho de 2018

Em 2013, fomos apresentados ao conceito de servidor imutável. Um servidor imutável é, como o termo imutável sugere, estático. Sua configuração é fixa e não pode (ou, pelo menos, não deve) ser alterada. Se forem necessárias alterações, um novo servidor com a nova configuração substituirá o servidor em execução. Isso é desejável, especialmente em ambientes de nuvem e ambientes locais altamente automatizados, porque simplifica a configuração e aumenta a confiabilidade dos sistemas de automação responsáveis pelas implantações.

Esse conceito funciona bem em ambientes de nuvem e conteinerizados, até mesmo para serviços de rede e de aplicações, mas não tão bem em arquiteturas tradicionais de infraestrutura compartilhada.

Isso ocorre porque a definição de infraestrutura compartilhada pressupõe vários serviços em execução. Com base nos dados do F5 iHealth , isso pode representar, em média, 123 configurações individuais (servidores virtuais). Não é prático nem recomendável tentar interromper e reimplantar 122 desses servidores virtuais para fazer uma única alteração em um servidor virtual.

Mas isso não torna o conceito impraticável nem indesejável. A chave para adotar uma infraestrutura imutável em conjunto com seus sistemas de automação e de infraestrutura como código (IaC) é migrar para uma arquitetura por aplicativo.

Por que usar uma infraestrutura imutável?

Por que você faria uma mudança tão significativa na arquitetura da rede corporativa? Permita-me citar a mim mesmo, pois não consigo pensar em uma forma melhor de reformular isso hoje:

Por causa da entropia.

A Lei da Entropia de Software é descrita por Ivar Jacobson et al. em "Engenharia de Software Orientada a Objetos: Uma Abordagem Baseada em Casos de Uso":
A segunda lei da termodinâmica, em princípio, afirma que a desordem de um sistema fechado não pode ser reduzida; ela só pode permanecer inalterada ou aumentar. Uma medida dessa desordem é a entropia. Essa lei também parece se aplicar a sistemas de software; à medida que um sistema é modificado, sua desordem, ou entropia, sempre aumenta. Isso é conhecido como entropia de software.

Essa lei também se aplica a sistemas que exigem atualizações de firmware ou em nível de sistema, nos quais são implantadas correções emergenciais e patches e são feitos ajustes urgentes de configuração que, em um mundo perfeito, só deveriam ser alterados por meio de um processo de gerenciamento de mudanças rigorosamente seguido. O problema que a infraestrutura imutável (descartável) busca resolver é que, quanto mais mudanças são introduzidas em um sistema, mais remendado e instável ele parece se tornar. Desordem. Caos. Entropia.

Não se trata apenas de alterações na configuração para atender a um aplicativo ou implantar patches virtuais emergenciais para alguma vulnerabilidade descoberta recentemente. Esses são bons motivos para alterar a configuração de um serviço de aplicação, mas não são os únicos. Correções emergenciais, patches e dependências de versão também são bons motivos pelos quais talvez seja necessário alterar uma das 123 configurações em execução na infraestrutura compartilhada.

Ao adotar uma arquitetura por aplicativo, você elimina o risco de que uma, duas ou até dez dessas instâncias causem interrupções nas outras cem executadas em uma infraestrutura compartilhada. Em essência, atribuir a cada aplicativo seu próprio caminho de dados cria as condições necessárias para uma abordagem de infraestrutura imutável, que dará maior suporte à transição para uma prática de implantação automatizada e baseada em infraestrutura como código.

Isso significa um pipeline de serviços de aplicação totalmente baseado em software, com os serviços de aplicação implantados em uma arquitetura que pode ser considerada de “microsserviços de aplicação”, semelhante à forma como os microsserviços são implantados em contêineres.

Julian Dunn da Chef explicou isso muito bem em seu blog — Infraestrutura imutável: prática ou não?

A infraestrutura imutável é geralmente definida como uma pilha que você cria uma única vez (seja uma imagem de máquina virtual, uma imagem de contêiner ou qualquer outra coisa), executa uma ou várias instâncias dela e nunca mais a altera. O modelo de implantação consiste em encerrar a instância ou o contêiner e recomeçar desde a primeira etapa: criar uma nova imagem e descartar as instâncias antigas.

Portanto, se aplicarmos isso aos serviços de aplicação mais estreitamente vinculados (afins) a uma determinada aplicação, teremos uma arquitetura de rede em duas camadas, composta por serviços centrais comuns e compartilhados (como proteção de rede contra DDoS e controle de acesso por meio de firewalls tradicionais baseados em portas), que alimentam uma “pilha” específica para cada aplicação, tratada como imutável e implantada/gerenciada com base nos conceitos de infraestrutura como código.

Mas você realmente não consegue adotar a imutabilidade sem uma infraestrutura por aplicativo, pois precisa desacoplar os serviços relevantes da aplicação das plataformas compartilhadas primeiro. Se puder usar a mesma plataforma — apenas em formato de software —, esse processo se torna ainda mais fácil, pois você já dispõe de grande parte do conhecimento e das ferramentas necessárias para avançar a todo vapor rumo a um modelo imutável e específico para cada aplicativo.

Mesmo que você não esteja considerando uma infraestrutura verdadeiramente imutável, a possibilidade de adotá-la quando fizer mais sentido (nova versão da infraestrutura, correções emergenciais, patches etc.) facilitará a vida tanto para você quanto para os responsáveis por DevOps do aplicativo ao qual a infraestrutura dá suporte.

Compartilhar
Tags: 2018

Publicações relacionadas no blog

Entrega e proteção de agentes de IA em fábricas de IA: F5 para a arquitetura de referência NVIDIA OpenShell para agentes de IA seguros
Ecossistema F5 | 21/10/2026

Entrega e proteção de agentes de IA em fábricas de IA: F5 para a arquitetura de referência NVIDIA OpenShell para agentes de IA seguros

As soluções da F5 ampliam a Arquitetura de Referência NVIDIA OpenShell para agentes de IA seguros.

Como medir – e minimizar – o custo total de propriedade do seu Kubernetes
Ecossistema F5 | 10/12/2020

Como medir – e minimizar – o custo total de propriedade do seu Kubernetes

O Kubernetes pode ser baixado e executado gratuitamente, mas sua manutenção está longe de não ter custos. Assim como outras grandes plataformas de código aberto que são “gratuitas” apenas em um sentido simplista, o Kubernetes quase certamente exigirá investimentos para ser implantado e operado.

As-Code: a pilha de TI contínua
Ecossistema F5 | 08/10/2018

As-Code: a pilha de TI contínua

Infraestrutura, configuração, pipeline, operações. De repente, tudo é “como código”. Lori MacVittie busca esclarecer a terminologia e identificar os diferentes componentes de uma stack contínua de TI.

O estado da entrega de aplicações em 2017: automação, APIs e DevOps
Ecossistema F5 | 17/04/2017

O estado da entrega de aplicações em 2017: automação, APIs e DevOps

Explore o relatório State of Application Delivery de 2017. Leia o blog retrospectivo da F5 sobre o início da ascensão das redes declarativas e dos pipelines de DevOps.

DevOps Summit: onde a rede foi convidada para a festa
Ecossistema F5 | 11/06/2015

DevOps Summit: onde a rede foi convidada para a festa

No DevOps Summit NY, falou-se muito não apenas sobre DevOps, mas também sobre contêineres, IoT e microsserviços. As sessões se concentraram não só na mudança cultural necessária para crescer em escala com uma abordagem DevOps, mas também fizeram questão de incluir...

F5 e Nutanix convergem em infraestrutura no .NEXT
Ecossistema F5 | 08/06/2015

F5 e Nutanix convergem em infraestrutura no .NEXT

Aplicações empresariais como Microsoft SharePoint e Exchange, juntamente com a VDI, continuam sendo a espinha dorsal da sua empresa. A produtividade, embora não seja tão atraente quanto o lucro, é um fator essencial para o sucesso das operações empresariais atuais. Deixar de...