Docker

0
Docker

Docker é escrito em GO. É Open Source e tem se destacado como uma plataforma de containers utilizada para agrupar partes de software em um sistema de arquivo completo e com tudo que precisamos para executa-lo.

Qualquer coisa que pode ser instalada no servidor pode ser armazenada em containers e isso facilita a execução dos mesmos softwares, e suas respectivas versões, em diferentes ambientes de desenvolvimento.

O gráfico abaixo, retirado do Google Trends, demonstra a crescente popularidade e pesquisas a respeito do Docker.

Estatísticas de uso do Docker ao longo do tempo no mundo
Fonte: https://www.google.com/trends/explore?q=%2Fm%2F0wkcjgj

A linguagem de programação Go, utilizada no Docker, foi criada pela Google em novembro de 2009, disponibilizada como código aberto e se denominada como para a construção de softwares simples, confiável e eficiente.

Um paralelo com o WordPress para entender o Docker

Para quem trabalha e conhece bem o funcionamento do WordPress fica fácil fazer um paralelo para um entendimento rápido sobre o Docker.

Docker é Open Source, assim com o WordPress. Você baixa o software do Docker, assim como no WordPress.org, e o utiliza para suas necessidades específicas. Você pode utilizar a infraestrutura e ambiente do Docker.com, caso não queira instalar e manter, assim com o WordPress.com.

O Docker pode ser extendido através de plugins, assim com o WordPress. Esse último representa mais de um quarto de toda a internet e o primeiro não pára de crescer.

Docker containers ou Máquinas Virtuais (VM)

Docker. VM. Ou ambos. A escolha precisa ser definida de acordo com o cenário e escolhas sábias fará uso da melhor opção de acordo com o contexto.

A popularidade e adoção do Docker tem se dado por vários méritos da plataforma. A imagem abaixo retrata um deles relacionado a portabilidade.

Docker versus VM

O primeiro bloco de elementos da imagem representa uma estrutura para VMs enquanto o segundo para Containers.

Ambos permitem isolar recursos. Ambos incluem a aplicação, as bibliotecas e arquivos necessários. No entanto, Máquinas Virtuais requerem um sistema operacional convidado e por conseguinte espaço e custo de manutenção.

Com esse cenário uma estrutura em Docker é mais portátil, mais fácil para manter, seus containers compartilham do mesmo sistema operacional da hospedagem, os processos são executados de forma isolada e o espaço e custo são menores.

A decisão se dará com base em custos, portabilidade, performance e conhecimento do time de implementação e sustentação. Nesse caso a máxima sempre será verdadeira: a melhor linguagem, a melhor plataforma é aquela que você, leia-se seu time, domina.

Este que vos escreve tem se inclinado conscientemente para o Docker e os ganhos tem sido significativos para nossa empresa em algumas soluções como no WP Host, nosso produto para hospedagem de sites WordPress.

As vantagens ao usar containers para os ambientes de desenvolvimento

Como já dito que a portabilidade é uma das grandes vantagens no uso do Docker, sua plataforma e estrutura de containers é vantajoso para os ambientes de desenvolvimento.

Uma configuração aplicada no ambiente local de desenvolvimento pode ser levada e aplicada mais facilmente no ambiente de homologação e por conseguinte em produção.

A similaridade das características dos ambientes de uma aplicação garante uma melhor execução e garantia de não termos erros ou surpresas indesejadas no momento do deploy.

Além disso há significativa economia de tempo na configuração de ambientes ou na perda de tempo analisando e identificando as diferenças nos ambientes.

Um exemplo prático de uso do Docker

Uma vez que você dominar o conceito e as praticidades dos containers, sua imaginação vai iniciar um processo de usos antes inimagináveis.

Um exemplo prático. Você está executando um projeto em WordPress com a versão 5.* do PHP. Há a intenção de atualizar a linguagem para sua sétima versão.

Como uma estrutura em Docker é extremamente simples mudar a versão do PHP, realizar os testes e permanecer com essa nova versão se os testes foram satisfatórios ou retornar a versão anterior enquanto se trabalha nas correções necessárias.

Para esse exemplo em questão cada versão do PHP, lembre-se qualquer coisa que pode ser instalada no servidor pode ser armazenada em containers, estaria alocada em um container específico que será requisitado para executar o PHP.

E com você, como tem sido os usos práticos de Docker?