BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Como ter sucesso executando o Docker em produção

Como ter sucesso executando o Docker em produção

John Fiedler, Diretor Senior de Engenharia na Salesforce IQ (antigamente RelateIQ) falou na conferência DockerCon EU sobre como executar o Docker em produção com sucesso trazendo suas próprias experiências dos últimos dois anos. Fiedler não recomenda utilizar no início todas as ferramentas disponíveis para o Docker, mas sim executar uma estratégia passo a passo para mover cada serviço para executar em container.

Fiedler explicou que 100% da sua infraestrutura web está executando no Docker e que não tiveram quedas nas publicações (zero downtime deployment). Ao mesmo tempo, ressaltou que iniciou a transição há dois anos e experimentou muitas coisas e falhou com frequência também.

Acabamos de incluir o Mesos, mas até o momento não temos autenticação… Executamos o Kafka dentro do Docker, se o Kafka está fora, então todos os serviços ficam fora também… E executar o Docker dentro do Docker não é uma boa ideia.

A SalesforceIQ tem mais de 70% de sua infraestrutura executando utilizando Docker. Quando escolher quais serviços colocar nos containers, Fiedler recomenda prestar atenção em dois fatores principais: "taxa de alteração" e "dependência de estado". Um servidor de aplicações web ou um servidor de APIs, ambos possuem um tempo de vida curto ("taxa de alteração") e não possuem estado ("dependência"), enquanto que uma base de dados ou um servidor de CI/CD tem uma vida longa e mantém estado. Portanto, servidores de aplicações web e servidores de APIs são serviços bem adequados para serem colocados em containers.

Fonte: John Fiedler

Fonte: John Fiedler

A SalesforceIQ está executando hoje usando PaaS, no qual tudo, e também "armazenamento persistente", de certa forma estão executando em containers.

Fonte: John Fiedler

No começo da palestra, Fiedler explica, sob seu ponto de vista, o significado dos conceitos de "produção" e "sucesso".

Ambientes de produção não são iguais aos ambientes de testes e desenvolvimento. Quando lidamos com o ambiente de produção, existem algumas particularidades que não são preocupantes quando executadas nos ambientes de desenvolvimento ou testes. Isolamento, segurança, desempenho, monitoramento e logging devem ser levados em consideração quando vão para a produção. Além disso, também há escalonamento, infraestrutura como código modelos no lugar e automatização são conceitos importantes... E UpTime acima de 99.9% e rápido deploy são métricas de sucesso no meu ponto de vista.

Concluindo a palestra, Fiedler recomenda "mantenha simples, comece pequeno e não tente ir direto para o PaaS". Falando sobre as ferramentas de publicação, Fiedler comenta que "Chef, Ansible e SaltStack são ótimas ferramentas e podem ser usadas em conjunto com o Docker". Quando o Docker estiver pronto para ir para produção, Fiedler destaca o cuidado ao "usar alguma solução que ainda não está pronta (alpha ou beta)". Fiedler complementa que "o grande ROI ao usar Docker é o CI/CD".

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT