Usando o Docker para Microserviços | MANDIC
Laura Loenert 04/01/2017 Agilidade, Arquitetura, AWS, Big Data, Cloud, Cloud Computing, DevOps, Dica, Lean Startup, REST
O Docker é uma plataforma aberta para desenvolvimento, entrega e execução de aplicativos. É possível desenvolver e fazer o deploy de aplicativos muito rapidamente, como também é fácil criar os serviços necessários separadamente e gerenciá-los como microserviços sem afetar outros serviços.
Essas capacidades tornam o Docker a plataforma mais popular do mundo para as empresas de software atualmente. Tem gerado muito buzz por conta de características únicas que vão além de qualquer outra ferramenta de software existente.
Desenvolvedores e sysadmins sabem da importância do Docker. Seu uso irá reduzir significativamente muitas tarefas mundanas e acelerará o processo de desenvolvimento de software. E com a introdução de conceitos como containerization e microservices, o uso do Docker tem crescido exponencialmente.
Este é um dos maiores avanços na indústria de software, habituada com códigos grandes e monolíticos. Agora, o maior pedaço pode ser dividido em serviços separados e gerenciados facilmente usando o Docker.
Vamos ao exemplo abaixo. Digamos que temos alguns microserviços que são independentes:
O passo inicial é obter a imagem Docker necessária para o microserviço em questão. Usando o Dockerfile, criamos uma imagem para o serviço. Podemos usar o dockerfile para:
Instalar aplicativos e bibliotecas necessárias
Adicionar serviço à imagem
Adicionar arquivos de configuração necessários à imagem
Adicionar um ponto de entrada que é usado para iniciar o serviço. (Parâmetros necessários e fatores de suporte são definidos aqui)
Agora, tudo que temos a fazer é executar alguns comandos e o Docker fará mágica.
Deploy e execução de microserviços
Digamos que inserimos uma nova imagem ao hub Docker e fornecemos acesso necessário ao sistema onde queremos executar o serviço. Sem acesso ao nosso repositório, o host não será capaz de puxar uma imagem.
Docker-machine é uma ferramenta que instala o docker-engine em hosts e gerencia o host com comandos docker-machine.
Podemos criar um host em drivers como o VirtualBox. Neste caso, será AWS ou Digital Ocean.
Podemos fazer o deploy dos microserviços em um único host ou ter um microserviço por host.
Como queremos fazer o deploy dos nossos microserviços depende da estrutura do produto.
O gerenciamento de rede pode ser feito usando Nginx. Containers separados podem ser criados para gerenciamento de rede.
Esta é uma breve explicação de como fazer o deploy de microserviços usando o Docker. E ajuda a mostrar porque muitas empresas de software têm se desprendido de bases de código monolíticas para arquiteturas de microserviços. Como será em 2017?