Incrível como Docker conseguiu se popularizar tão rápido. Assunto de interesse nos mais diversos ambientes, eventos, relatórios, previsões e até mesmo sendo adotado por gigantes, gigantes visionárias e outras nem tanto. É a revolução dos containers, dizem alguns.

Mas onde exatamente essa revolução acontece e onde estão os benefícios? Bom, isso depende do cenário, varia muito de como você pretende utilizar ou quais são os objetivos, se no desenvolvimento ou em produção, se sozinho ou para uso em equipe.

Docker no desenvolvimento local e teste de aplicações

Se você está trabalhando sozinho em uma aplicação e testando na máquina local, seu desafio é se manter produtivo, não perdendo tempo com configurações ou pior, das dores de cabeça do famoso “ontem estava rodando na minha máquina, hoje não”, perdendo preciosas horas debugando para descobrir o que aconteceu.

Para o desenvolvedor individual é a garantia de que “se rodou na minha máquina hoje, irá rodar na minha maquina amanhã, assim como na hora do teste”, se traduzindo em mais produtividade e de qualidade nas entregas.

Docker no desenvolvimento em equipe

Trabalhando em equipe o desafio fica um pouco maior, mais pessoas trabalhando em conjunto e executando testes faz com que você precise rodar em mais de um ambiente.

Os problemas mais comuns envolvem conflitos de versão, diferenças nas bibliotecas instaladas e configurações. Aqui o prejuízo na produtividade tem impacto maior, pois agora envolve o tempo de uma equipe, projetos maiores, deadline, clientes e com efeito direto nos custos.

A vantagem em se usar Docker está n consistência oferecida na containerização de aplicações, bibliotecas e configurações, aumentando a produtividade no desenvolvimento ao remover do dia a dia horas e mais horas perdidas resolvendo diferenças entre os ambientes.

Docker para CI/CD

Para CI/CD você precisa implementar e amarrar um conjunto de configurações e ferramentas para lidar com diferentes regras de build, testes, necessidade de criar um ambiente limpo/novo a cada build, evitando possíveis contaminações de configurações anteriores e, por fim fazer a entrega, adicionando a necessidade de um método método para promover as imagens ao longo do pipeline dev > qa > production.

Bom, nenhum desenvolvedor tem tempo livre para ficar configurando e mantendo Ansible/Chef/Puppet, setup de máquinas e outros componentes. Usando Docker junto com uma solução de PaaS fica fácil não só criar os pipelines como também gerenciar quem tem permissão para publicar ou promover as imagens entre as etapas.

Docker para publicação de aplicações em produção

Publicar uma aplicação containerizada em produção poderia ser resumido da seguinte forma:

Funciona na minha máquina > funciona em QA > funciona em produção

Rodar em produção é diferente de teste e desenvolvimento, agora você precisará lidar com disponibilidade, performance e segurança. Também é recomendado ter uma estratégia para rollback se você estiver fazendo inúmeros builds e deployments diários.

Se o volume de acessos for grande ou com picos sazonais, é preciso garantir que você conseguirá escalar o ambiente. Uma estratégia de auto-scaling e componentes independentes se faz necessário.

Dockerizar as aplicações colocará você mais próximo de alcançar as features descritas acima, mas não será suficiente e a complexidade de implementação pode ser maior que o retorno. Minha dica nesses casos é buscar uma solução de PaaS ou IaaS que ofereça as ferramentas e métodos necessários e sem a complexidade de implementar você mesmo.

Docker rodando em uma plataforma (PaaS)

É comum haver certa confusão nessa área, alguns entendem Docker como uma plataforma, só que uma plataforma não se constrói com um único componente.

PaaS é muito mais do que simplesmente fazer o deploy de uma aplicação containerizada, PaaS é um serviço.
Oferece escalabilidade, automação de build, rollback, saúde das aplicações, métricas, gerenciamento de usuários/permissões/colaboração de equipes, gerenciamento de serviços, rotas externas, repositório privado de imagens — homologadas e mantidas atualizadas com correções de segurança.

Você pode construir sua solução de PaaS usando Kubernetes + Docker ou Docker Swarm +Docker e mais algumas peças neste lego, mas será que deveria?

Para a maioria, consumir o serviço é mais rápido e econômico do que construir uma.

[embed]https://upscri.be/375ca4/[/embed]

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos