Vous êtes sur la page 1sur 7

Docker

O que é um container docker?

Esse conceito precisa ser compreendido em partes. O container é um ambiente isolado. Já o docker é uma
plataforma open source na linguagem de programação Go, que possui alto desempenho e é desenvolvida diretamente no
Google.

As empresas optam por essa modalidade porque os containers trazem diferentes possibilidades. Por serem ambientes
isolados e portáveis, os desenvolvedores podem empacotar aplicações com bibliotecas e links necessários.
O resultado é mais eficiência no trabalho e a simplificação da implantação.

Assim, o docker agrupa partes de softwares de um sistema de arquivo completo e que abrange todos os recursos
necessários para a sua execução. Por isso, é uma plataforma de containers.

Isso significa que tudo pode ser instalado no servidor e é armazenado nos containers. Dessa forma, os mesmos softwares
e as suas versões podem ter uma execução facilitada em qualquer ambiente de desenvolvimento.

O que ocorre na prática é que o docker destaca recursos e usa bibliotecas de kernel em comum. Os itens empacotados
— ou até mesmo um ambiente inteiro — são dispostos no container e se tornam portáveis, o que torna o trabalho conjunto
mais eficiente. Ao mesmo tempo, a implantação pode ser feita em ambientes não heterogêneos.

Assim, o docker é uma implementação de virtualização de containers que vem conquistando cada vez mais espaço devido
à computação em nuvem. Anteriormente, o hypervisor dominava o ambiente, mas agora ele é excluído do processo.
Já o docker, por ser open source, possibilita a execução de deploys e o escalonamento de aplicações com mais facilidade.
Além disso, devido à virtualização por container, propicia um ambiente isolado e leve para rodar o programa.

De modo geral, os containers são mais interessantes devido a alguns fatores, como:

I. Velocidade;
II. Rapidez no boot;
III. Economia de recursos;
IV. Entendimento dos processos do container como sendo realizados dentro do sistema host;
V. Possibilidade de fazer o upload de vários containers simultaneamente, o que consome menos recursos do hardware
virtual ou físico.

Como o docker funciona?

As médias e grandes empresas, principalmente, utilizam aplicações como ERPs e CRMs, ou seja, conjuntos de software
que iniciam como projetos simples, mas que se tornam ineficientes com o tempo e impedem o progresso por contarem
com um código-fonte monolítico.

O container surgiu para resolver esse problema. A solução passa por diferentes etapas. A primeira delas é a desagregação
do aplicativo em componentes menores, os chamados microsserviços. A partir disso, os desenvolvedores conseguem
adotar uma arquitetura que aumenta a eficiência operacional.

Em cada um desses locais, a aplicação deve ter uma performance consistente, que é garantida pelo container. Ele
encapsula os componentes em um pacote único e leve, que permite executar os aplicativos com consistência
independentemente do ambiente ser virtual ou físico.
Por isso, ele é uma ferramenta excelente para DevOps. No caso dos administradores de sistemas há o benefício da
flexibilidade, custos menores e menos áreas ocupadas. Para os desenvolvedores, é mais liberdade para que esses
profissionais foquem a atividade principal.

Utiliza o namespace para prover o devido isolamento de memória RAM, processamento, disco e acesso à rede, ou seja,
mesmo compartilhamento o mesmo kernel, esse processo em execução tem a visão de estar usando um sistema
operacional dedicado.

Por que ele vem se tornando uma tendência no mercado?

O docker tem se popularizado devido a diferentes facilidades proporcionadas pela plataforma. Em comparação com a VM,
a estrutura é menor, porque o hypervisor é substituído pelo docker engine e o SO hospedeiro é excluído.

Essa especificação evidencia que o docker tem uma estrutura mais portátil e leve. É mais fácil mantê-la, porque os
containers compartilham o mesmo SO da hospedagem. Apenas os processos são executados isoladamente e, portanto,
o custo e a necessidade de espaço são menores.

A portabilidade é outra vantagem do docker, o que traz ainda mais benefícios para os ambientes de development. Assim,
uma aplicação é mais facilmente executada no ambiente de homologação e/ou de produção.

Além disso, há uma garantia maior de que não haverá erros ou imprevistos durante o deploy. Por fim, gasta-se menos
tempo para configurar os ambientes e se perde menos tempo analisando e identificando as diferenças existentes. O
resultado é a integração das equipes de desenvolvimento e SysAdmin, que aumentam a produtividade.

Quais são as vantagens de utilizar?

O container docker é uma tecnologia que apresenta diferentes benefícios às empresas. As principais são:
Economia significativa de recursos

Disponibilidade maior do sistema: a empresa aumenta a disponibilidade do ambiente por não ter mais que realizar o
gerenciamento de sistemas operacionais, otimizando também os recursos disponíveis;

Esse benefício é ocasionado pelo fato de o docker virtualizar o sistema de maneira diferente ao método da VM. Por
compartilhar o SO e outros componentes, há mais espaço livre, o que deixa os processos mais ágeis e oferece uma
disponibilidade maior.

Em termos bastante simples, a máquina fica menos “pesada” e fica com mais espaço para rodar outros programas e
aplicações.

Possibilidade de compartilhamento
Os arquivos podem ser compartilhados entre o host e o container ou até mesmo um volume tem a possibilidade de ser
distribuído para outros. A prática da segunda situação é mais indicada nos casos em que se deseja ter persistência de
dados e quando não se atrela ao host que hospeda o container.

Com isso, torna-se mais fácil compartilhar as modificações e oferecer uma gestão centralizada em relação às definições
de ambiente. O espaço para testes também se torna mais leve, o que permite baixar uma solução durante uma reunião,
por exemplo, ou fornecer um padrão de melhores práticas para todos os colaboradores.

Gerenciamento facilitado
Os containers são executados em máquinas físicas ou virtuais e o grupo delas é chamado de cluster. Esse item precisa
ser monitorado constantemente. Por isso, foram criadas ferramentas para fazer o gerenciamento, por exemplo, o
Kubernetes e o OpenShift.

Esses sistemas trabalham em conjunto com o docker e operam o equipamento que possibilita a execução dos containers.
No entanto, os sistemas de arquivos também são gerenciados.
Os containers têm tamanhos estimados em MB e levam segundos para serem iniciados contra os minutos e os varios
gigabytes de uma VM inteira.

Estímulo da prática do DevOps: os containers facilitam a integração entre as equipes de desenvolvimento e operações;

Portabilidade Uma grande vantagem do Container é a possibilidade de criar serviços e códigos independentes, que
podem ser movidos sem dificuldade entre máquinas e ambientes diferentes. Eles são portáteis, mais fáceis e rápidos de
implantar e, por isso, são cada vez mais usados em organizações que priorizam a entrega contínua de software, como
DevOps, pois oferecem aos desenvolvedores uma condição muito desejável na atualidade: capacidade de desenvolver e
inovar rapidamente uma vez que é possível escrever um código flexível, pequeno e compartilhável, perfeitamente
adequado a abordagem de microsserviço, na qual o código pode ser implantado de forma modular, em componentes
reutilizados e compartilhados.

Kubernetes
Kubernetes, um sistema de gerenciamento de containers de código aberto, cresceu enormemente em popularidade nos
últimos anos. Usado pelas maiores empresas em uma ampla gama de indústrias para tarefas de missão crítica, tornou-se
case de sucesso no mundo open source.

Desenvolvido pela Google, o Kubernetes é um sistema de código aberto para gerenciamento de aplicações que oferece
uma plataforma para automatização de deploy, balanceamento de carga, escalonamento e
operação de containers. Programado em Go, trata-se de um sistema cujo mais essencial objetivo é o de facilitar a
implantação de aplicativos a partir da perspectiva dos microsserviços.

O Kubernetes vai além de um mero instrumento de orquestração de containers: ele pode simplesmente reduzir a
necessidade desse monitoramento por meio de automatizações. Essa virtude explica por que Kubernetes e containers
fazem tanto sucesso dentro da comunidade DevOps!
Microsserviços

O que são os microsserviços?

Os microsserviços são uma arquitetura e uma abordagem para escrever software. Com eles, as aplicações são
desmembradas em componentes mínimos e independentes. Diferentemente da abordagem tradicional monolítica em que
toda a aplicação é criada como um único bloco, os microsserviços são componentes separados que trabalham juntos para
realizar as mesmas tarefas. Cada um dos componentes ou processos é um microsserviço. Essa abordagem de
desenvolvimento de software valoriza a granularidade, a leveza e a habilidade de compartilhar processos semelhantes
entre várias aplicações.

No entanto, você deve estar se perguntando qual a vantagem em usar uma infraestrutura baseada em microsserviços. A
resposta está na rapidez com que a solução permite entregar software com qualidade. Isso é possível com a adoção dos
microsserviços, mas não é só isso. Não basta apenas desmembrar aplicativos em microsserviços. Também é necessário
gerenciá-los e orquestrá-los, além de processar os dados que são gerados e modificados pelos microsserviços.

Comparados às aplicações monolíticas, os microsserviços são muito mais fáceis de criar, testar, implantar e atualizar. A
ideia é fazer com que os negócios reajam mais rapidamente às novas demandas, em vez de ficarem presos no "corredor
da morte" do demorado desenvolvimento de software tradicional. Além disso, os microsserviços permitem que diferentes
áreas da equipe de desenvolvimento trabalhem de maneira ágil e simultânea nas soluções, agregando valor
imediatamente aos clientes.
Qual a relação com os containers Linux?

Os containers Linux oferecem às aplicações baseadas em microsserviços, uma unidade de implantação e um


ambiente de execução autônomo ideais. Com microsserviços em containers, é possível aproveitar ao máximo o hardware
e orquestrar serviços com facilidade, incluindo os recursos de armazenamento, rede e segurança.

É por isso que a Cloud Native Computing Foundation afirma que os microsserviços e os containers são a base do
desenvolvimento de aplicações nativas em cloud. O ponto de partida é usar microsserviços em containers: esse é o
segredo para possibilitar o desenvolvimento mais rápido e facilitar a transformação e a otimização das aplicações atuais.