Conteineres e Docker

Quando trabalhamos com contêineres, nós necessitamos de uma “imagem base” do sistema operacional que será personalizada para iniciar o ambiente e a nossa aplicação.

Essa personalização é feita em camadas de forma que se pode manter um versionamento das modificações permitindo não só rastrear como controlar as modificações permitindo que elas sejam facilmente replicáveis.

Tomando como exemplo a necessidade de se instalar um serviço web, em um ambiente físico ou de máquinas virtuais você precisa que a equipe de infra instale todas as dependências, módulos e bibliotecas para o seu serviço web (apache, nginx etc) ; em ambiente de conteineres, isso passa a ser tarefa da equipe de devs. O que acaba com aquela velha situação em que a aplicação funciona perfeitamente na máquina de desenvolvimento, mas ao levar para produção, não funciona.

Plataformas/Ferramentas para gerenciar contêineres

Algumas pessoas iniciantes no assunto, quase sempre associam contêineres ao “Docker” e acreditam que ambos tratam-se da mesma coisa, então antes de prosseguirmos vamos falar um pouco sobre isso.

O Docker é apenas uma das inúmeras ferramentas criadas para gerenciarmos contêineres de forma “amigável”, mas há outras opções de ferramentas como as que seguem na lista abaixo:

E há muitas outras ferramentas além destas. Algumas delas seguem ao padrão OCI (Open Conteiner Initiative – https://opencontainers.org/ ), que é o padrão seguido pelo Docker e outras não. 

Há ferramentas auto hospedados, mas há também aquelas que são contratadas como PaaS (Plataform As A Service – Plataforma como Serviço); Temos ferramentas gratuitas,  comerciais; de código fechado, opensource etc. 

Poderíamos ficar aqui listando vários serviços de gestão de contêineres e certamente passaríamos da ordem das dezenas ou talvez até centenas de ferramentas com este propósito.

Embora elas possuam interfaces diferentes, todas elas farão as mesmas tarefas essenciais e eventualmente alguns serviços adicionais que serão facilitados em detrimento de outros, conforme o andamento de cada projeto.

E o que muda dentre todas estas opções, listadas ou não, é o mesmo que você encontra quando compara um modelo de carro com outro; ou quando compara uma casa com outra; um smartphone IOS com outro Android etc.

Se você está começando com contêineres agora, minha recomendação é a mesma da maioria dos profissionais que estão na área a mais tempo. Comece com o Docker. E por que?

Porque ele é relativamente simples, prático, tem tudo o que você precisa para começar sem criar muitos traumas, pode ser usado em produção para serviços que não sejam muito complexos e será a base para você usar outras ferramentas depois.

Além do mundo real