Trabalhar com uma arquitetura de microserviços criando pequenos serviços com uma necessidade de mecanismos leves, publicação independente, escalabilidade e portabilidade, Erhan Ekici acredita que uma tecnologia de container como o Docker pode fornecer um ambiente ideal para a publicação destes serviços no que diz respeito a velocidade, gestão de isolamento e ciclo de vida.
Ekici, trabalhando na IBM, descreve containers como ambientes de execução leves com a maioria dos componentes do núcleo de uma máquina virtual e serviços isolados de um sistema operacional, concebido para fazer o empacotamento fácil e a execução de serviços leves.
Outros motivos que Ekici destaca fazem valer a pena considerar containers e o Docker:
- Com um container portável entre diferentes plataformas, a portabilidade de uma aplicação pode ser alcançada colocando a aplicação e todas suas dependências dentro do container;
- Containers incluem apenas a aplicação e suas dependências que, juntamente com a natureza leve dos containers torna-os mais eficientes na utilização dos recursos;
- Os containers podem fornecer ambientes ao usuário com as necessidades de recursos estritamente controladas sem o uso de virtualização;
- A tecnologia que faz uso de containers é uma nova tecnologia emergente tendo o Docker como líder e muitas grandes empresas assinaram acordos de parceria com Docker.
Uri Cohen, um líder de equipe de produtos na GigaSpaces, descreve o Docker como uma excelente opção para microserviços pelo fato de isolar containers para um processo ou serviço. Essa utilização intencional de containers para serviços ou processos individuais faz com que seja muito simples gerenciar e atualizar esses serviços. Para Cohen, não é de surpreender que isso levou ao desenvolvimento de frameworks para a gestão de cenários mais complexos.
Um exemplo que Cohen cita é o Kubernetes, um projeto de código aberto projetado para microserviços estendendo as capacidades do Docker. Ao descrever as características de uma imagem o Kubernetes pode publicar e gerenciar vários containers Docker ao mesmo tempo. Um cenário comum no entanto é gerenciar algo composto de várias camadas e que pode ser difícil de alcançar usando o Kubernetes, uma lacuna em termos de funcionalidade e que o Cohen pensa que pode ser preenchida com o uso do TOSCA, que é usado para lidar com cenários mais complexo de orquestração, por exemplo: uma pilha de aplicativos complexos ou um microserviço mais complexo.
Na conferência do Docker, Adrian Cockcroft em sua apresentação falou sobre o Docker como um container padronizado portável e sobre o futuro com a orquestração da próxima geração de aplicações.