Quero começar com container. Quais serviços do Azure posso usar?

Containers já é uma realidade. Algumas empresas já estão com a tecnologia bem adotada e outras ainda estão entendendo como podem migrar suas aplicações para esse novo mundo.

Quando começamos, geralmente pegamos nossas aplicações mais simples para poder estudar e entender como aplicar isso no dia-a-dia da empresa. E no início dos estudos nós usamos tranquilamente a versão de desktop. Mas e agora que já terminei meu estudo e quero publicar minha primeira aplicação? Onde publicar? Que serviço devo usar para disponibilizar minha aplicação?

Olhando para o stack do Azure nós possuímos vários serviços que suportam containers e a ideia desse post é falar um pouco de cada serviço e ajudar você nessa sua nova empreitada.

Azure Container ecosystem

Quando falamos de publicar nossa aplicação como um container, nós vamos precisar basicamente de dois serviços. Um para armazenar e distribuir as imagens que vamos construindo e suas versões e o outro é onde o nosso container vai ser executado e nossos usuários poderão consumir nossa aplicação.

Azure Container Registry

Bom, a primeira coisa que precisamos é armazenar nossas imagens e para isso precisamos de um serviço de Registry. Um container registry é um serviço onde podemos armazenar e distribuir nossas imagens. Um exemplo é o Docker Hub, que é um serviço free onde podemos disponibilizar nossa imagem para todos poderem baixar e montar seus containers.

Caso sua imagem não possa ficar pública, ou seja, ninguém além de você ou alguém do seu time podendo baixar e utilizar, você pode ter a versão paga do Docker Hub ou configurar um serviço equivalente no Azure, que seria o Azure Container Registry.

Com o ACR nós podemos ter um controle bem efetivo de publicação e consumo de imagens, geo-replicação do nosso registry, limitar a exposição dele colocando em uma rede privada no Azure entre outras features. O ACR possui 3 ofertas: a Basic, Standard e Premium. Maiores detalhes podem ser vistos nessa documentação.

Geralmente o Standard já tem todas as funcionalidades e quantidade de storage necessária para iniciarmos o processo.

É importante salientar que não é obrigatório utilizar o ACR, nós podemos ter a conta no Docker Hub e mesmo assim usar os outros serviços dentro do Azure.

Depois de definirmos nosso registry, precisaremos agora escolher um dentre os vários serviços para poder publicar nossa aplicação e é aqui que a confusão começa.

Vamos ver alguns serviços que podemos utilizar.

Virtual Machine e Virtual Machine Scale Set

Nada impede de simplesmente subirmos uma máquina virtual e instalar o Docker nela ou em um Virtual Machine Scale Set para podermos fazer a escalabilidade dos nossos serviços. Porém esse é um cenário que na prática quase nunca usamos pois temos outros serviços que nos ajudam a fazer a mesma coisa e sem a necessidade de ficarmos nos preocupando com a administração dessa infra toda.

Com uma Virtual Machine simples, nós podemos instalar o Docker nela e podemos ter vários containers disponibilizados. O Virtual Machine Scale Set permite que possamos colocar nossas máquinas com escalabilidade e se precisarmos de mais recursos, o VMSS subirá novas máquinas com as configurações que definimos.

Esse é um modelo onde nós temos que fazer tudo “na mão” - desde nos precouparmos com a infra até monitoramento dos recursos - e acaba não sendo a melhor opção, pois existem outros serviços que podemos utilizar que são chamados de gerenciados, ou seja, a Microsoft que vai cuidar de boa parte da infra e nós nos preocupamos apenas com o que realmente importa, que é a nossa aplicação.

Azure Container Instance

Acredito que esse seria a porta de entrada dos serviços de container no Azure. O ACI é um serviço serverless onde pagamos apenas pelo consumo e não precisamos nos preocupar com a infraestrutura de máquinas virtuais, rede etc. Ele foi desenvolvido pensando na adoção rápida e fácil de containers. O ACI é uma solução que podemos adotar quando vamos trabalhar em containers isolados, alguma aplicação bem simples, executar alguma automação de tarefas/jobs.

O Azure Cpntainer Instance seria o equivalente de disponibilizar um serviço em uma VM. Ele é a opção para quem está começando.

App Service com suporte à container

Agora imagina que você já entendeu como os contianers funcionam e fez seus primeiros experimentos. Já trouxe aplicações simples e/ou jobs e agora quer trazer uma aplicação um pouco mais complexa, que precisa de mais recursos ou ter algum modelo de escalabilidade e ainda não se preocupar como toda a parte de infraestrutura. O App Services é a solução para isso.

Com o App Service, podemos subir nossa imagem customizada e implementar alguns controles de escalabilidade, disponibilidade, load balance de forma simples.

Azure Kubernetes Services

Agora se você já possui vários serviços em containers e precisa ter um modelo de orquestração, sua opção será o AKS.

Esse serviço simplifica todo o processo de implantação e gerenciamento de um cluster Kubernetes reduzindo a complexidade de gestão operacional dos nós masters. Você precisa se preocupar apenas com os nós agentes, que são os responsáveis por executar suas aplicações.

O AKS é um serviço gratuito, você só vai pagar pelo nós que estão dentro do seu cluster.

Service Fabric

O Azure Service Fabric é uma stack proprietária da Microsoft que incorpora seu próprio framework de desenvolvimento, ferramentas, escalabilidade e gerenciamento de cluster como um serviço de plataforma. Ele pode executar arquivos executáveis, bem como containers e foi originalmente introduzido para fornecer uma plataforma para modernizar aplicativos Windows .NET no Azure. Com outros serviços agora suportando containers do Windows, a relevância do Service Fabric para cargas de trabalho pequenas e médias vai depender muito da sua arquitetura. Se você for usar apenas para container, o Service Fabric não será a melhor opção. Talvez você devesse considerar utilizar o AKS ou App Service para resolver esse problema.

Conclusão

Como vimos, o Azure possui vários serviços e um para cada cenário de adoção de containers. Temos serviços para disponibilizar uma aplicação simples que seria o ACI até serviços mais complexos como por exemplo o AKS que é um cluster Kubernetes.

E aí, nos conte como foi ou está sendo sua experiência de containers dentro do Azure e caso precise de alguma ajuda para escolher a melhor ferramenta para o seu cenário basta nos mandar uma mensagem e teremos o maior prazer em ajudá-los.

Até a próxima,
Claudio Romão



27/07/2020 | Por Claudio Romão | Em Técnico | Tempo de leitura: 5 mins.

Postagens relacionadas