Usamos cookies para melhorar sua experiência de navegação no Portal Dataprev. Para ter mais informações sobre como isso é feito, acesse nosso Aviso de Privacidade. Ao continuar navegando, você confirma que leu, compreendeu e consente com a utilização de cookies.
Dataprev Explica – Conteinerização
Atualmente, a Dataprev já possui diferentes aplicações sendo executadas em plataforma de contêiner. Conheça mais sobre o uso da tecnologia pela a empresa
Conteinerização é uma forma de modularização ou empacotamento que facilita a implantação de produtos de software. Agrupa o código de uma aplicação, com todos os arquivos, configurações e bibliotecas de que ele precisa para ser executado, abstraindo características de hardware físico, máquinas virtuais e sistema operacional. Essa forma de trabalhar está diretamente associada ao uso do modelo de computação em nuvem.
Atualmente, a Dataprev já possui diferentes aplicações sendo executadas em plataforma de contêiner. Algumas são internas, como o ARDOC (Plataforma Corporativa de Gestão do Conhecimento Arquitetural) e o Sistema de Gestão de Pessoas (SGPe), e outras, para clientes externos, como o Sistema de Informação das Estatais (Siest) e o Programa de Gestão e Desempenho (PGD) do Governo Federal.
A previsão da empresa é expandir gradualmente o uso de contêineres para as nuvens contratadas, de modo a dispor de um ambiente robusto e altamente disponível. Tal expansão já contempla a nuvem Huawei on-premises (HCSO), ou seja, instalada no data center da Dataprev, e prevê como escopo chegar a outras duas nuvens ainda em 2025.
Além disso, há um plano de migração progressiva de aplicações legadas (mais antigas e desatualizadas) para um modelo “cloud native”, tornando-as mais leves e eficientes. Até o final do ano, a meta é que pelo menos uma aplicação de missão crítica esteja totalmente operacional em contêiner.
No modelo tradicional, para executar uma aplicação, é necessário implantá-la em uma máquina virtual e instalar todas as suas dependências no sistema operacional, o que a torna mais pesada. O uso de contêiner, por sua vez, abstrai o conceito de máquinas virtuais e compartilha recursos de maneira otimizada, permitindo que as aplicações sejam executadas em um ambiente mais leve, com garantia de compatibilidade.
O uso do contêiner no ciclo de entrega de software segue uma lógica análoga à do transporte de carga: cria-se um ambiente padronizado, como os contêineres que se encaixam em um navio, não importando qual seja o conteúdo em seu interior. Não é preciso construir uma embarcação compatível com um produto em específico, porque os contêineres se encaixam em qualquer uma delas.
Vantagens
Essa versatilidade da conteinerização traz benefícios relevantes para o desenvolvimento de aplicações:
. escalabilidade automática – como os contêineres são leves e operam em um ambiente gerenciado, é possível expandi-los ou reduzi-los rapidamente, de acordo com a demanda. Este é um dos benefícios mais importantes, principalmente em ambiente de nuvem, onde a alocação dinâmica de infraestrutura tem impacto significativo no custo envolvido.
Se, por exemplo, um novo benefício social passa a estar disponível em um sistema que normalmente atende simultaneamente a 1 mil usuários, e o número de acessos subir para 1 milhão, a conteinerização facilita a absorção e a gestão desse fluxo.
Em um ambiente de contêineres, essa adaptação ocorre de forma dinâmica: a plataforma detecta o aumento do tráfego e automaticamente cria novas instâncias para suportar a demanda. Da mesma forma, quando o fluxo retorna ao normal, as instâncias excedentes são desativadas, evitando desperdício de recursos.
. isolamento – se ocorrer um erro em uma aplicação, não há influência em outros sistemas, já que ela está isolada em seu próprio contêiner. Se as aplicações estivessem interligadas na mesma máquina virtual, poderiam prejudicar a disponibilidade dos serviços.
. portabilidade - dentro de um contêiner, a aplicação vai rodar da mesma forma, independentemente do local. É possível levá-la de uma plataforma de contêiner para outra, mesmo com especificações de hardware diferentes, sem que os programadores precisem reconfigurar o produto para executar a aplicação na nova plataforma.
Aplicações nativas na nuvem
O contêiner é uma tecnologia leve, mas, para garantir o seu potencial, a própria aplicação também precisa ser otimizada. Isso exige uma revisão da arquitetura do software, para que se torne “nativa na nuvem” (cloud native).
Essas aplicações são desenvolvidas especificamente para funcionar de forma eficiente em ambientes de contêineres, com tecnologias modernas e escaláveis. Diferentemente das aplicações tradicionais, que costumam ser grandes e monolíticas, as nativas da nuvem são construídas com uma abordagem modular, baseada em microsserviços.
Em vez de um único sistema robusto e pesado, a arquitetura de microsserviços divide a aplicação em partes independentes. Cada microsserviço executa uma função específica e pode ser escalado individualmente.
Por exemplo, em um sistema com dois módulos: pagamento e consulta. Se um novo benefício é divulgado, impulsionando a consulta de informações, apenas esse microsserviço precisa ser escalado, enquanto o módulo de pagamento permanece inalterado. Já em uma aplicação tradicional, toda a estrutura precisaria ser ampliada. Os microsserviços se comunicam por meio de APIs (interfaces de desenvolvimento de aplicações), facilitando a interação entre diferentes partes do sistema.
Estratégia multinuvem
Desenvolver aplicações em nuvem usando contêineres de forma eficiente depende da implementação da própria aplicação. Em contrapartida, a computação em nuvem fornece a infraestrutura necessária para hospedar e gerenciar os contêineres, oferecendo escalabilidade e alta disponibilidade. Uma estratégia multinuvem potencializa essa capacidade, já que utiliza serviços de vários provedores de nuvem para otimizar o fluxo de trabalho, promover flexibilidade e reduzir riscos.
As aplicações “cloud native” ainda demandam a adoção de um orquestrador. A orquestração permite o gerenciamento automático de contêineres. Na medida em que uma aplicação se torna complexa, com diversos microsserviços, se torna impossível realizar tal gestão de forma manual.
O orquestrador consegue centralizar o gerenciamento de um ou mais clusters (conjunto) de contêineres disponíveis nas plataformas de nuvem, reconhecer e gerenciar as aplicações entre os contêineres, independentemente do provedor de nuvem em que eles estiverem inseridos.
Sobre o Dataprev Explica - O Dataprev Explica começou a ser publicado em março de 2024. O objetivo é esclarecer e traduzir termos, tecnologias ou temas relevantes da TI e da transformação digital. O conteúdo é publicado quinzenalmente nos canais oficiais da empresa.