Cloud Computing

Ξ 1 comentário

Docker, Docker, Docker e seus benefícios

publicado por Diogo Goebel

 

Figura - Docker, Docker, Docker e seus benefíciosÉ Docker para todo lado, eventos, relatórios, previsões, sendo adotado por empresas gigantes, adotado por empresas 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?

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“.

Respondendo a pergunta inicial: Ganho de produtividade e de qualidade nas entregas.

Docker no desenvolvimento em equipe

Trabalhando em equipe o desafio fica um pouco maior, agora você tem uma equipe trabalhando em conjunto em um mesmo código e executando testes. É preciso rodar na sua máquina e rodar na máquina do colega.

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 de produção.

Resposta: A consistência oferecida na containerização de aplicações, bibliotecas e configurações aumenta produtividade das equipes de desenvolvimento, removendo 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 regras 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 a entrega, onde você precisa ter definido um método para promover as imagens ao longo do pipeline dev > qa > production.

Resposta: Porque ninguém tem tempo para ficar configurando e mantendo Ansible/Chef/Puppet, setup de máquinas e outros componentes.

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

Publicar uma aplicação containerizada em ambiente de produção poderia ser resumido em:

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

Porém estamos rodando em produção e, ao contrário de um ambiente de teste e desenvolvimento, agora você precisará lidar com SLA, disponibilidade, performance e segurança.

Dependendo da velocidade de desenvolvimento, pode ser necessário uma estratégia de rollback se você estiver fazendo inúmeros builds e deployments diários.

Se o volume de acesso for grande ou com picos sazonais, é preciso garantir que você conseguirá escalar o ambiente. Uma estratégia de auto-scaling e arquitetura de microserviços é mandatório.

Resposta: Rodar aplicações containerizadas coloca você mais próximo de alcançar as features descritas acima, porém a complexidade de implementação pode ser maior que o retorno alcançado.
Minha dica é: busque 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, monitoramento e 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.

Resposta: use PaaS e, para a maioria, consumir o serviço é mais rápido e econômico do que construir uma.

Se você é desenvolvedor ou operação de TI e está usando Docker, comente abaixo que ferramentas está usando e experiências.

Artigo publicado originalmente no blog da Getup

Autor

Evangelista de Computação em Nuvem, atua como consultor em projetos web de grandes volumes de tráfego, ligado em empreendedorismo e mentoria de startups.

Diogo Goebel

Comentários

1 Comment

  • Sou Técnico em Redes de Computadores, e estou começando um curso de Laravel com LaraDock, onde espero aprender bastante sobre o componente Docker para assim poder oferecer suporte de qualidade os colegas desenvolvedores.

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes