A jornada dos contêineres no Cloud

21 de maio de 2018 Por Ramon Durães

A popularização do uso de contêineres nas aplicações se deu principalmente seguindo o padrão Docker por resolver problemas comuns no dia a dia dos projetos seja no desenvolvimento e teste ou na publicação em produção. Se você comparar o tempo de carga de um contêiner com uma Virtual Machine tradicional vai perceber outra grande diferença.

A Microsoft oferece a plataforma de nuvem Azure que passou a suportar a estratégia de contêineres nos mais variados serviços facilitando para a equipe de desenvolvimento do software e operações “DevOps” a utilização dos contêineres integrados aos serviços de nuvem:

  • Azure Container Registry (ACR) – Repositório de imagens de contêineres
  • Azure Container Instances(ACI) – Instância independente de contêiner “ContainerLess”
  • Azure Kubernetes Service (AKS) – Plataforma do Kubernetes no modelo “PaaS”
  • Azure App Service – Serviço de aplicação (Linux / Windows)
  • Azure Service Fabric

Para quem já está acostumado com o serviço de PaaS (Platform as a Service) no Azure como o App Service que funciona como um serviço de aplicação (Windows / Linux) basta publicar um contêiner com a sua aplicação que o App Service cuida de todo o restante.

Se você já está familiarizado como Docker para criação de contêineres certamente já conhece a plataforma Kubernetes (k8s), que faz o papel de orquestração dos contêineres em produção controlando os contêineres ativos, disponibilidade, distribuição de carga, gestão de falhas nos contêineres e demais recursos do Kubernetes (k8s) que em minha opinião pessoal funciona como o sistema operacional dos contêineres.

O recurso Azure Kubernetes Service (AKS) oferece um serviço gerenciado de Kubernetes (k8s) implementando a estratégia conhecida como KaaS (Kubernetes as a Service). No AKS você não precisa instalar nem se preocupar com a escalabilidade do Kubernetes o que facilita em muito a publicação e gestão dos contêineres no ambiente produtivo. A Microsoft não cobra pelo processamento e consumo do Kubernetes (k8s).

A melhor forma de materializar a visão de contêineres é um cenário de Microservices. Você pode decompor o seu software separando a responsabilidade em vários serviços e depois publicar os mesmos em contêineres diferentes permitindo escalar porções do software conforme a demanda.

Ao observar o cenário acima você vai publicar os contêineres dentro do Azure Kubernetes (k8s) Services (AKS) que usará o Kurbentes (k8s) para gestão dos contêineres docker e todo os recursos do Azure para garantir a escalabilidade. Eu costumo dizer que o Kubernetes (k8s) cria um “Cloud” de contêineres dentro o próprio Cloud.

Para gerenciar o fluxo de desenvolvimento a operações é fundamental adotar também uma estratégia de DevOps e uma boa opção é o Visual Studio Team Services (VSTS) e/ou Azure DevOps Project.

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