Containers: Entenda por que até 2025 essa tecnologia estará em 85% das empresas
Paulo de Godoy, country manager da Pure Storage no Brasil
A TI está em meio a uma mudança profunda porque quase tudo que envolve a maneira como as empresas entregam e criam aplicações se tornou novidade. Essa transformação digital pode ser caracterizada por três elementos principais. Em primeiro lugar, vem a digitalização de processos dentro das empresas e para fora, aos clientes e parceiros. Segundo, é fortemente influenciada pelo uso dos recursos da nuvem ou de modelos operacionais semelhantes. Em terceiro lugar, a maneira como o desenvolvimento de aplicações ocorre também está mudando para um modelo de integração e implementação contínuas, que permitem mudanças frequentes nos processos interativos.
No ápice desses três elementos está a conteinerização, que reúne a capacidade de construir aplicações em um modelo de desenvolvimento contínuo, independente, altamente escalável e portátil, ao mesmo tempo em que granular em relação aos componentes de serviços que são capazes de encapsular.
As aplicações de contêineres, ou “containers” implementadas e gerenciadas por meio de uma plataforma de orquestração como o Kubernetes, desempenharão um papel fundamental na evolução da TI ao longo da próxima década. De acordo com o Gartner, 85% das empresas executarão “containers” na produção até 2025, acima da marca de 35% registrada em 2019.
Os contêineres podem ser executados em uma densidade muito maior do que as tradicionais cargas de trabalho virtuais, o que significa que menos servidores são necessários. Isso tem o efeito indireto de reduzir os custos de licenciamento e, principalmente, os requisitos de energia. Por esses motivos, a conteinerização começa a sustentar iniciativas de redução de custos e business cases mais amplos, permitindo que as empresas visem 25% a 40% das aplicações como ponto comum de partida.
Mas e o armazenamento, proteção de dados, backups, snapshots, replicação, alta disponibilidade e recuperação de desastres? São vitais para a infraestrutura de aplicações de uma empresa, mas podem ser um desafio em operações em “containers”. Antes de buscar maneiras de resolver isso, é preciso entender por que os “containers” são tão importantes e como eles funcionam.
Implementação ágil
Digamos que o negócio principal de uma empresa esteja centrado em lançamentos frequentes de produtos com picos rápidos de demanda e requisitos de análise de acompanhamento. Pode ser uma operação de sistemas de ingressos, por exemplo, com picos repentinos e maciços nas vendas. As aplicações construídas tradicionalmente em uma arquitetura de três camadas (cliente-servidor-base de dados) seriam lentas para implementar, não escalariam bem e não suportariam altos níveis de demanda. Os “containers” surgiram justamente para lidar com essa situação.
Isso ocorre porque eles encapsulam os inúmeros componentes de uma aplicação, o que significa que muitos desses microsserviços são reutilizáveis conforme novas aplicações são desenvolvidas, e podem se multiplicar rapidamente para atender às necessidades de dimensionamento. Além disso mantêm toda a conectividade da API e podem ser portados para vários ambientes operacionais. Assim, por exemplo, esse aumento repentino na demanda de ingressos pode ser acomodado pela reprodução rápida de instâncias de serviços em container interconectadas e se espalhar rapidamente em vários data centers, inclusive na nuvem pública.
Em simples explicação, os fundamentos técnicos dos “containers” se resumem em uma forma de virtualização. Ao contrário dos servidores virtuais, são executados diretamente no sistema operacional do host e sem um hypervisor intermediário (monitor da máquina virtual). Isso significa que se tornam uma VM muito mais granular e leve que geralmente fornece componentes discretos de toda a aplicação, conectados por código, ou seja, APIs.
Embora não haja hypervisor e sobrecarga consequente, os “containers” se beneficiam de uma camada de orquestração, fornecida por ferramentas como o Kubernetes, que organiza um ou mais “containers” em execução em pods, cada um com seu código, tempo de execução, dependências, chamadas de recursos. A inteligência para executar pods fica acima deles em um ou mais clusters do Kubernetes.
O desafio de armazenamento e backup do Kubernetes
Um dos maiores desafios a serem superados com o Kubernetes é o armazenamento e a proteção de dados. As raízes do problema remontam à origem dos “containers”, que originalmente deveriam ser executados em um laptop de desenvolvedores como uma instância efêmera e para os quais o armazenamento persistia apenas enquanto o container fosse executado.
Conforme os “containers” se tornaram uma abordagem corporativa convencional para o desenvolvimento de aplicações, isso simplesmente não funcionaria. A maioria das aplicações corporativas são stateful, que criam, interagem e armazenam dados. Portanto, quem quer implementar “containers” com armazenamento de classe empresarial e proteção de dados precisa analisar um conjunto de soluções emergentes no mercado.
O que buscar ao adotar a tecnologia de “container”?
Um ponto importante é que qualquer solução de armazenamento Kubernetes deve ser nativa de container. Isso significa que os próprios requisitos de armazenamento de uma aplicação são implementados como microsserviços em “containers” nos quais os requisitos de provisionamento, conectividade e desempenho são escritos como código, com todo o dinamismo e agilidade que isso implica. Isso contrasta com outros métodos – como CSI ou Container Storage Interface – que dependem de drivers codificados para armazenamento alocado em “containers”.
Enquanto isso, uma plataforma de armazenamento Kubernetes nativa de “container” definida por software deve fornecer acesso ao armazenamento de blocos, files e objetos, além de usar o armazenamento em nuvem. Com isso, deve emular as principais características e benefícios da conteinerização e do Kubernetes. Isso significa que os dados devem ser tão portáteis quanto a aplicação em container, precisam ser dimensionados de forma autônoma e gerenciados por meio de um plano de controle comum.
Quando se trata de proteção de dados, esse produto deve fornecer os principais métodos de proteção, incluindo backups e snapshots, replicação síncrona e assíncrona e funcionalidade de migração. Novamente, isso deve permitir a nuvem como origem ou destino nessas operações.
Para lidar com a escalabilidade dos ambientes Kubernetes, a solução deve ser capaz de gerenciar clusters, nós e “containers” que são executados em centenas, milhares e centenas de milhares, respectivamente, com capacidade de armazenamento gerenciável em dezenas de petabytes.
Por fim, deve ser inteligente, com gerenciamento automatizado baseado em regras que, por exemplo, cria, replica e exclui “containers”, conforme determinado por gatilhos de monitoramento predefinidos, além de provisionar e redimensionar o armazenamento conforme necessário. E então, depois de encontrar e implementar uma solução que atenda a todas essas caixas, fica claro por que 85% das empresas confiarão nessa tecnologia até 2025.
Paulo de Godoy tem 20 anos de experiência no mercado de TI, com foco em vendas de soluções para empresas de armazenamento, segurança, integração e interconectividade. O executivo ocupou cargos de liderança em empresas de destaque no setor tecnológico, como Hitachi, IBM e NetApp. Paulo iniciou as atividades na Pure Storage como gerente de vendas em 2014, e em 2016 assumiu a gerência geral da companhia no Brasil.