A importância do uso do Docker no desenvolvimento de aplicações e sistemas.

Jonathan Reis
edifyeducation
Published in
5 min readDec 30, 2022

A cerca de um ano aqui na Edify, resolvemos sair do ambiente de desenvolvimento tradicional para usar o Docker, precisávamos de velocidade, segurança, escalabilidade e confiança em nossas aplicações, afinal lidamos com educação!

Treinar a equipe é um dos passos mais importantes, todos na sua equipe precisam estar cientes das vantagens e desafios de usar o Docker. Certificando-se de que todos tenham a oportunidade de aprender sobre o Docker e como ele pode ser usado na empresa.

Migrar de um ambiente tradicional para o uso do Docker pode ser um processo desafiador, mas também pode trazer muitos benefícios para a sua empresa. É importante avaliar se o Docker é uma opção viável, treinar a equipe, começar aos poucos, fazer backup de todos os dados e realizar testes extensivos para garantir que a migração seja bem-sucedida.

Por que usar o Docker?

O Docker é uma ferramenta de virtualização de sistema que permite criar e gerenciar contêineres de aplicações. Esses contêineres são como máquinas virtuais, mas são muito mais leves e rápidas de serem criadas e gerenciadas.

A utilização de contêineres de aplicações com o Docker traz vários benefícios, tanto para desenvolvedores quanto para administradores de sistema. Alguns desses benefícios incluem:

  • Portabilidade: um contêiner de aplicação criado com o Docker pode ser facilmente movido de um sistema para outro, independentemente do sistema operacional ou da infraestrutura subjacente. Isso significa que você pode facilmente desenvolver e testar sua aplicação em um ambiente local e depois implantá-la em produção sem se preocupar com diferenças de ambiente.
  • Isolamento: cada contêiner de aplicação criado com o Docker é totalmente isolado do resto do sistema, o que significa que as aplicações em contêineres não interferem umas nas outras. Isso é útil para evitar conflitos de dependências entre aplicações e garantir que cada aplicação funcione de maneira consistente em qualquer ambiente.
  • Facilidade de implantação dos sistemas: o Docker fornece uma maneira simples e rápida de implantar aplicações em qualquer ambiente, bastando apenas baixar e executar o contêiner. Isso torna muito mais fácil gerenciar a implantação de aplicações em diferentes ambientes, como desenvolvimento, teste e produção.
  • Escalabilidade: com o Docker você pode criar facilmente novas instâncias de uma aplicação em contêineres para gerenciar o tráfego ou a carga de trabalho. Isso torna muito mais fácil escalar horizontalmente sua aplicação de acordo com as necessidades do seu negócio.

Em resumo, o Docker é uma ferramenta importante para desenvolvedores e administradores de sistema porque permite criar, gerenciar e implantar aplicações de maneira rápida, fácil e consistente em qualquer ambiente.

É util para o desenvolvimento?

Como desenvolvedor, o Docker pode ser uma ferramenta muito útil para facilitar o processo de desenvolvimento e implantação de aplicações. Alguns dos benefícios de usar o Docker como desenvolvedor incluem:

  • Ambiente de desenvolvimento consistente: o Docker permite que você crie um ambiente de desenvolvimento consistente, independentemente do sistema operacional ou da infraestrutura subjacente. Isso significa que você pode desenvolver e testar sua aplicação em um ambiente local e ter a certeza de que ela funcionará da mesma maneira em qualquer outro ambiente onde for implantada.
  • Facilidade de teste: o Docker facilita o processo de testar sua aplicação em diferentes ambientes, pois você pode criar facilmente novas instâncias de seus contêineres de aplicação para testar em diferentes configurações ou em diferentes sistemas operacionais.
  • Compartilhamento de código: o Docker permite que você compartilhe facilmente seu código com outros desenvolvedores, bastando apenas enviar o contêiner de aplicação. Isso significa que outros desenvolvedores podem facilmente executar sua aplicação em seus próprios sistemas sem se preocupar com diferenças de ambiente ou dependências.
  • Implantação simplificada das aplicações: o Docker simplifica o processo de implantação de aplicações, pois você pode facilmente implantar um contêiner de aplicação em qualquer ambiente, bastando apenas baixar e executar o contêiner. Isso significa que você pode implantar sua aplicação com rapidez e facilidade, independentemente do tamanho ou da complexidade da sua aplicação.

Dado esses pontos, o Docker é uma ferramenta valiosa para desenvolvedores porque permite criar um ambiente de desenvolvimento consistente, facilita o processo de teste e compartilhamento de código e simplifica a implantação de aplicações em qualquer ambiente.

Parece tudo muito bom, mas quais são os pontos negativos?

O Docker é uma ferramenta muito útil e popular para criar e gerenciar contêineres de aplicação, mas também existem alguns problemas que podem surgir ao usá-lo. Alguns desses problemas incluem:

  • Complexidade de implementação do ambiente: o Docker é uma ferramenta relativamente complexa e pode ser difícil de aprender para alguns usuários. Ele também tem muitas opções de configuração e recursos que podem ser difíceis de entender para usuários iniciantes.
  • Desempenho: em alguns casos, o uso de contêineres de aplicação pode resultar em um desempenho ligeiramente inferior em comparação com aplicações nativas. Isso pode ser especialmente verdadeiro para aplicações que precisam de muitos recursos de sistema, como acesso a hardware específico ou ao sistema de arquivos.
  • Segurança: o Docker pode ser um alvo atraente para ataques de segurança, especialmente se as medidas de segurança adequadas não forem tomadas. Isso pode incluir ajustar as configurações de segurança do Docker ou proteger o sistema em que o Docker está sendo executado.
  • Gerenciamento de dependências: gerenciar as dependências de uma aplicação em contêineres pode ser um desafio, especialmente quando há muitas dependências ou elas mudam com frequência. Isso pode exigir um esforço adicional para garantir que as dependências estejam atualizadas e corretamente configuradas no contêiner de aplicação.

O Docker é uma ferramenta útil, mas pode ser complexa de aprender e usar, pode ter um desempenho ligeiramente inferior em alguns casos, pode ser um alvo de ataques de segurança e pode exigir um esforço adicional para gerenciar dependências de aplicação. No entanto, esses problemas geralmente são minimizados com a prática e o conhecimento adequados e podem ser facilmente superados com o uso adequado das ferramentas e técnicas disponíveis.

Aqui na Edify, utilizamos o Docker em todas as aplicações, recomendamos o uso e estamos bem satisfeitos com os resultados obtidos, saímos de um ambiente onde levávamos cerca de 2 horas para cada atualização de sistema, para um ambiente onde levamos cerca de 5 minutos para executar as mesmas atualizações.

--

--