O futuro dos contêineres nas aplicações

9 de novembro de 2017 Por Ramon Durães

A estratégia de contêineres permite isolar uma aplicação ou partes dela (Microservices) com todos os recursos necessários (kernel compartilhado) sem precisar duplicar uma máquina virtual. A principal diferença de um serviço de contêiner e uma máquina virtual está relacionada ao consumo de recursos e tempo de disponibilização de um novo contêiner.

Ao utilizar uma máquina virtual você carrega o sistema operacional e todos as suas dependências. A máquina virtual (VM) consome muitos recursos e ainda depende de um tempo de processamento para ser disponibilizada. No serviço de contêineres você terá uma nova instância em segundos e isso faz muita diferença na escalabilidade do negócio.

A plataforma do Docker tornou-se o principal padrão para contêineres (Linux containers / Windows Server Containers). A Microsoft e a Docker trabalharam em conjunto para construir a estratégia de contêineres Windows. Hoje é possível publicar aplicações .NET Core em contêineres (Linux | Windows) e .NET Framework nos contêineres Windows acelerando a transformação digital das aplicações.

O outro ponto que considero muito relevante na estratégia de contêineres é o fato de você não precisar ficar instalando a versão da sua aplicação em cada ambiente. Imagine que você vai montar a estrutura da sua aplicação em uma imagem e baseada nela basta instanciar o ambiente de desenvolvimento e depois ir promovendo em seu processo de DevOps (Desenvolvimento | Qualidade | Homologação | Produção).

A estratégia de contêineres transforma o seu parque computacional em um verdadeiro grid que funciona tanto no cenário local quanto no cenário de nuvem como é o caso da plataforma Azure da Microsoft que atualmente oferece inclusive o serviço gerenciado de Kubernetes denominado como “Azure Container Services”.

O Kubernetes é um projeto Open Source que nasceu com o Google e hoje é liderado pela Linux Foundation e com patrocínio de grandes empresas incluindo a Microsoft. Por meio do Kubernetes a mágica da orquestração dos contêineres acontece integrando todo o parque de serviços docker e promovendo o provisionamento entre os nós com escalabilidade, gestão de falhas, isolamento elevando o conceito de gestão a um modelo parecido com Platform as a Service (PaaS).

Em resumo na prática ao planejar a sua estrutura de Microservices utilizando a estratégia de contêineres e DevOps você vai orquestrar a esteira de desenvolvimento a operação permitindo que o próprio conceito de Microservices Architecture (MSA) usufrua de uma política de gestão e escalabilidade por serviço publicado.

E para fechar o modelo de contêineres também permite escalar o seu serviço em uma nuvem pública híbrida provisionando a sua solução conforme cada cenário em mais de um serviço de nuvem.

Até a próxima. Participe nos comentários. Desejando conhecer a empresa onde trabalho visite a 2PC e estou a disposição para conversar sobre a Transformação Digital das suas aplicações.

[],

Ramon Durães
CEO, 2PC
MVP, Visual Studio
PSM, CSM, PSD, LKU