Nem sempre encontramos a solução específica para alguns problemas. Passei por isso recentemente com o Serviço de Containers da Azure, então resolvi trazer aqui uma forma clara para utilizarmos essas ferramentas.
Hoje vamos falar um pouco sobre como utilizar o serviço de containers no provedor de cloud Microsoft Azure. Veremos o passo a passo de como subir uma aplicação utilizando o Azure Container Services, tendo como orquestrador o Docker Swarm.
Nesse exemplo vamos utilizar uma aplicação em Python para visualizarmos melhor a criação dos serviços, mas você pode usar o seu próprio código se preferir.
Bora cair no problema?
Primeiro é importante que você tenha uma conta na Azure – pode ser free trial, mesmo – para continuar.
Criando a Infra
Se você já possui sua conta, a partir do Dashboard, selecione “+” para criar novas soluções e selecione a opção Azure Container Service dentro da aba de Containers.
Após selecionar o serviço, vamos preencher as informações necessárias para prosseguir. Começaremos pelas informações básicas.
Preencha o nome que vai utilizar, a Subscription, o Resource Group e selecione a localização.
Nesse exemplo vamos criar um novo Resource-Group, mas você pode utilizar um já existente.
Em seguida, preencha as informações que vão ser utilizadas para configuração do Master.
Selecione “Swarm” no orquestrador para utilizarmos o Docker Swarm, digite o nome para o DNS e para seu usuário. Também coloque sua chave SSH.
Vamos utilizar apenas um Master.
Agora utilizaremos um Agente e a opção A2_V2 para o tamanho da máquina.
Por último, vamos receber um resumo das opções que selecionamos, mas antes, confira se todas as informações estão corretas, aí sim, clique em “Ok” e aguarde o deploy do serviço.
Assim que estiver finalizado, você pode conferir todos as dependências criadas, clicando no ícone:
Resource Groups > “Nome do seu grupo” > Overview
Conectando no Master
Agora que os servidores já estão sendo executados, vamos criar um túnel SSH para o Master para subirmos a aplicação. Mas para criarmos o túnel, vamos utilizar o DNS do Serviço de Containers que subimos. Para conferir a URL, acesse o recurso de Serviço de container; o DNS estará disponível na aba Overview.
Execute em seu terminal o comando:
ssh -fNL 2375:localhost:2375 -p 2200 iagobanov@pythonappmgmt.southcentralus.cloudapp.azure.com
*Observação: não esqueça de utilizar sua URL para acesso e o seu usuário que foi criado anteriormente. Verifique se não existe nenhum outro processo que já esteja usando a porta 2375. Caso tenha, utilize outra porta.
Em seguida, exporte a variável DOCKER_HOST para a porta que vai utilizar.
export DOCKER_HOST=:2375
Depois disso, você vai poder validar se já está conectado pelo túnel utilizando “docker info”. Se sim, ele vai apresentar as informações sobre os agentes criados.
Iniciando o APP
Bem, agora vamos subir o app!
Neste exemplo, vamos utilizar um simples app em Python que vai se comunicar com um Redis.
Você pode conferir o código neste repositório.
Para inicializar o app, acesse o diretório local e utilize o comando do Docker Compose.
docker-compose -f docker-compose.yml up –d
Criando as regras de segurança
Após subir a aplicação, é necessário liberar as portas de acesso para a aplicação que utiliza a porta 5000. Mas antes, vamos criar um Healt Probe para mantermos um monitoramento sobre as portas que vamos utilizar.
Para isso vamos na guia Resource Groups > “Nome do seu grupo” > swarm-agent-lb-**** > Health probes, clicar em Add.
Preencha o nome, selecione o tipo de protocolo e a porta que vai utilizar. Nesse caso, a porta 5000. Clique em “Ok” e aguarde a alteração ser realizada.
Agora vamos adicionar a regra de segurança no Load Balancer: acesse Resource Groups > “Nome do seu grupo” > swarm-agent-lb-**** > Load balacing rules e clique em Add.
Observação: Adicione um nome, as portas que vai utilizar e não esqueça de associar o Health probe criado para a porta.
Para finalizar e acessar o app utilize o IP público do agente: Resource Groups > “Nome do seu grupo” > swarm-agent-****-vmss
O IP vai estar na aba de overview com a sua devida descrição.
Acesse o IP com a porta e voilà! Já pode utilizar sua aplicação.
Easy peazy!
Com esse exemplo, passamos por todos os passos necessários para executarmos uma simples aplicação com o serviço de containers da Azure. A partir daqui, você pode definir os padrões desejados para o seu próprio código, como por exemplo, usar mais agentes e mais regras de segurança.
Agora basta ter o seu código e mãos à obra!
***
Este artigo foi publicado originalmente em: https://www.concrete.com.br/2017/11/22/como-usar-o-servico-de-containers-da-azure/