Olá Pessoal,
Neste artigo vamos falar sobre o que é o Docker? Quais são seus benefícios e seus desafios para implementação.
História
O projeto do Docker comecou na França como um projeto interno dentro da empresa dotCloud, que usava como base o LXC no Linux, após ter lançado uma versão open source do docker para a comunidade a empresa viu o grande potencial que estaria por vir, tanto que a empresa resolveu mudar de nome em 2013 para Docker, desde 2013 até hoje a adoção do Docker só vem crescendo.
O que diabos é Docker/Container?
O Docker/Container é uma outra maneira para rodar a sua aplicação num ambiente isolado, leve e portátil. Ele tem uma ideia parecida com a virtualização, porém não é a mesma coisa. O container compartilha o Kernel do Host e não existem a necessidade de instalar o sistema operacional do zero para cada container, como temos no modo de virtualização.
Quais são as versões existentes?
- Docker Desktop (Para o Mac e Windows)
- Docker Engine Enterprise (Para o Linux e Windows)
- Docker Engine Community (Para o Linux)
Quais são os beneficos para time de Operações?
Com docker o time de infra/sysadmin pode criar um ambiente com suporte a multiplos sistemas operacionais, com aplicações portáteis de facil gerenciamento, e com integração a plataformas de Deployment continuado.
Com um ambiento totalmente integrado, o time de desenvolvimento pode desenvolver na mesma plataforma onde o sistema está rodando em produção, com isso removendo aquele velho ping-pong entre o time de Dev e operações, ” Na minha máquina está funcionando, isso é um problema do time de Operações”
Faça o deploy de uma aplicação em segundos, sem a necessidade reinstalar servidor, dependências, bibliotecas ou trabalhar com imagens defasadas.
Orquestração facilidade com Swarm ou Kubernetes, não se preocupe sobre a disponibilidade da aplicação quando a manutenção do host for requerida ou um indisponibilidade de hardware acontecer, o orquestrador será responsável por “migrar” sem container para outro host.
Porém, nem tudo são flores, quais são os desafios?
Algumas aplicações a migração de ambiente virtualizado para container acontece sem a necessidade de modificação do código e a integração é mais facilitada, mas como na vida, nem tudo são flores, é necessário adequar o código para para este novo ambiente, neste momento a integração em time de Dev e Operações é bem-vinda.
A melhor forma de saber se a aplicação vai se integrar bem ao novo ambiente é executar um testes básico e conhecido como “smoke test” e partir deste momento você irá entender melhor o comportamento e os desafio para executar essa migração e fazer uma melhor planejamento.
Outro desafio que temos na adoção do docker é a adoção da ferramento por todos os departamentos envolvidos no processo.
Neste momento Dev e Operações tem que trabalhar em sincronia para mostrar o valor da solução para os diretores,gerentes e CEO. Pois para implementação de novas soluções será necessário uma investimento em capacitação do time e investimento financeiro para aquisição dos softwares necessários.
Conclusão
O Docker/Container é uma solução que pode dar agilidade ao departamento de tecnologia como todo, para deployment mais agil e eficiente de aplicações e utilizando os recurso de hardware e software de forma mais eficiente.
Eu fico por aqui neste post e em post no fututo eu vou falar mais sobre docker, swarm , Kubernetes e outras tecnologias que estão sendo utilizadas no mercado de tecnologia.