Blog Post

Qual o meio mais fácil para começar a conteinerização na minha empresa?

A conteinerização surgiu para melhorar a forma como as aplicações são distribuídas

A conteinerização de aplicações é um dos passos para a prática de DevOps, confira como iniciar a jornada na sua empresa aqui. Um contêiner é o empacotamento de todas as dependências necessárias para a sua aplicação, gerando uma imagem e disponibilizando da forma mais homogênea possível. Então, é possível replicar uma imagem em diferentes ambientes, sem se preocupar com o que está rodando ali dentro utilizando a conteinerização.

Ah, mas com máquinas virtuais eu já consigo fazer isso…

Sim, consegue, mas máquinas virtuais são muito grandes e muito pesadas, sendo muito mais custoso e oneroso. Contêineres são muito mais leves e eficientes e possibilita uma maior velocidade para distribuição e implantação de aplicações.

O Docker trabalha com algumas primitivas do kernell do Linux, utilizando:

Control groups: que é para definir quanto de recurso será alocado para cada contêiner (storage, rede, memória, CPU, etc);
Namespaces: que é para isolar um contêiner do outro, para que um não saiba o que os outros estão executando dentro de uma mesma máquina e assim conseguir isolar os contêineres.

Em outras palavras, os contêineres padronizam a forma como você faz o build da sua aplicação, onde você pode dizer o que precisa, qual sistema operacional, quais dependências, quais arquivos de configuração e etc.


O contêiner vai disponibilizar um artefato final para você com tudo ali dentro, independente de qual linguagem você usa, qual gerenciador de dependências. Esse artefato poderá ser disponibilizado para qualquer servidor e você saberá que isso vai ser rodado com as mesmas coisas e da mesma forma.

Com a evolução da tecnologia de contêineres, a forma de desenvolver a aplicação também sofreu alterações. Com o uso de Cloud, é um pouco mais difícil ter discos persistentes, então não é interessante você escrever arquivos locais e esse é o conceito que chamamos de cloud native.

Qual o meio mais fácil para começar a utilizar o docker na minha empresa?

Para começar a rodar o docker, basta instalar a ferramenta em seu servidor e executar alguns comandos para executar a imagem. Também é interessante você ter um registry, que é uma espécie de repositório onde você irá disponibilizar as suas imagens.

O próprio Docker tem um registry free, para imagens open source, e também um serviço pago para coisas fechadas. Também existem outros serviços de registry no mercado.

Rapidamente você terá a percepção de que não é interessante você ter que acessar seu servidor e executar os comandos do Docker para baixar e rodar suas imagens e que para isso, você pode contar com a automação e, em casos mais complexos, serviços de orquestração que farão isso por você.

Com o Docker você pode utilizar o docker-compose para declarar a composição do seu contêiner, com dependências e links para descrever a comunicação que os contêineres precisam ter entre si.

Para isso, usamos um yaml file declarativo onde configuramos quais as conexões entre os serviços, através de quais portas.

O Docker te dá uma grande flexibilidade, inclusive para conseguir executar uma aplicação em ambiente local, com todas as composições necessárias. Isso permite que o desenvolvedor consiga reproduzir um ambiente mais parecido com o que será disponibilizado em ambientes de testes, stage, pré produção e produção.

Dessa forma, não existe mais aquela célebre frase: “Na minha máquina funciona”

Claro, é preciso “buildar” a sua aplicação como uma imagem e para isso existe um passo a passo, um arquivo dockerfile que será uma espécie de receita de como o build do artefato será feito.

A documentação do docker é bem extensa e fácil para aprendizagem. Começar a entender como funciona o dockerfile, o composê e como o docker trabalha já ajuda a entender como é simples o uso de imagem, sem precisar realizar downloads de patches e configurar ambiente. Basta ter a imagem e executar.

É muito bom usarmos contêineres e funciona muito bem quando são poucos. Porém, quando temos muitos contêineres, precisamos adotar uma ferramenta que nos ajude a gerenciar tudo isso, caso contrário teremos um grande problema. Para solucionar isso, existe a orquestração de contêineres.

Comece a sua jornada com o DevOps, transforme com a Datainfo

Converse com um consultor aqui

wpChatIcon