Prática de DevOps com Docker
  • Prática de DevOps com Docker
  • Autores e Agradecimentos
  • Uso do Livro
  • Contribua com o Livro
  • Licença
  • Organização do Livro
  • 1. Introdução
    • 1.1 - Máquinas Virtuais e Contêineres
    • 1.2 DevOps e Docker
    • 1.3 Configuração do Ambiente
  • 2. Produção
    • 2.1 Produção: o fim ou o início?
    • 2.2 Ambiente de Produção
    • 2.3 Instalação do Servidor de Banco de Dados
    • 2.4 Instalação do Servidor de Web
  • 3. Monitoramento
    • 3.1 Introdução
    • 3.2 Configurando o Servidor de Monitoramento
    • 3.3 Monitorando Servidores do Ambiente de Produção
    • 3.4 Comandos de Verificação do Nagios
    • 3.5 Criando Verificações Mais Específicas
    • 3.6 Criando Alertas
    • 3.7 Recuperando de Problemas
  • 4. Infraestrutura como Código e Orquestração
    • 4.1 Introdução
    • 4.2 Orquestração com Docker Compose
  • 5. Integração Contínua
    • 5.1 Introdução
    • 5.2 Controle de Versão
    • 5.3 Construindo o Projeto Utilizando Contêiner
    • 5.4 Garantindo Acesso de Desenvolvedor nas Plataformas por meio de Tokens
    • 5.5 Integrando GitLab e GitHub
    • 5.6 Pipeline de Integração Contínua com GitLab CI/CD
  • 6. Entrega Contínua
    • 6.1 Introdução
    • 6.2 Personalizando Imagem Docker
    • 6.3 Personalizando Imagem do Servidor Web via GitLab CI/CD
    • 6.4 Atualizando o Servidor Web no Ambiente de Produção
  • 7. Deploy na Nuvem
    • 7.1 Introdução
    • 7.2 Configurando o ambiente local de desenvolvimento
    • 7.3 Conhecendo os recursos e conceitos do Kubernetes
    • 7.4 Entendendo o Chart
    • 7.5 Configurando o Jib
    • 7.6 Definindo o chart utilizado para execução local e na nuvem
  • 8. Conclusão
    • Conclusão
Powered by GitBook
On this page

Was this helpful?

  1. 1. Introdução

1.2 DevOps e Docker

Previous1.1 - Máquinas Virtuais e ContêineresNext1.3 Configuração do Ambiente

Last updated 1 year ago

Was this helpful?

Nesta seção faz-se uma introdução a DevOps e qual a sua relação com contêineres e, consequentemente, Docker.

Desenvolvimento e Operações (DevOps) corresponde a ideia de unir duas áreas que eram consideradas conflitantes. A ideia do DevOps é permitir que desenvolvimento, garantia de qualidade (QA), operações de TI e segurança da informação (Infosec) passem a trabalhar juntas e de maneira bastante integrada ().

alerta que, em quase toda organização de TI há conflito entre a equipe de desenvolvimento e as operações de TI, necessárias para operacionalizar o desenvolvimento e distribuição do software. Tal conflito resulta em uma queda de desempenho e um tempo cada vez maior na entrega de melhorias nos produtos de software.

Organizações de TI, segundo , possuem dois grandes objetivos:

  • Responder ao cenário competitivo e que muda frequentemente; e

  • Fornecer serviço estável, confiável e seguro para o cliente.

Nesse sentido, com frequência, o Desenvolvimento assumirá a responsabilidade de responder ao mercado, corrigindo, implementando novas funcionalidades, e desenvolvendo novos produtos para atender o mercado o mais rápido possível. Por outro lado, as Operações de TI assumirá a responsabilidade de garantir a qualidade de serviço ao cliente, mantendo o ambiente estável e seguro, o que acaba contrariando o objetivo do Desenvolvimento, em geral, por impossibilitar a introdução de mudanças, resultando no conflito de interesse entre as duas áreas ().

Basicamente, DevOps introduz uma cultura que permite esse ciclo ser quebrado e a cooperação entre Desenvolvimento e Operações de TI passe a ocorrer efetivamente, e todos saem ganhando.

Os pilares por trás do DevOps são decorrentes dos métodos ágeis. Entretanto, juntar ambos nem sempre é uma tarefa trivial, conforme relatado por . Eles relatam no artigo intitulado "" as diferenças entre ágil e DevOps e o que precisa ser feito para que ambos cooperem entre si para prover recursos de melhor qualidade no desenvolvimento de software.

Se considerarmos as práticas do DevOps em que as equipes de desenvolvimento e operações cooperam entre si, observamos que juntas elas desenvolvem, testam, implementam e monitoram aplicativos com velocidade, qualidade e controle, seguindo o que é chamado de Fluxo (Pipeline) DevOps. A figura abaixo, extraída de , ilustra as etapas previstas num fluxo DevOps e a presença dos contêineres Docker para a realização de determinadas etapas do fluxo.

Fluxo de trabalho genérico e para o ciclo de vida do aplicativo em contêineres do Docker (extraída de Torre (2020))

Como pode ser observado, há contêineres Docker viabilizando o ambiente de trabalho do Dev, no loop interno de desenvolvimento (1); na parte de construção, integração contínua e teste (3), na entrega contínua (4); e no ambiente de gerenciamento e execução da aplicação (5), referente ao ambiente de produção.

Dentro do contexto deste curso, a intenção é que passemos por essas etapas, utilizando uma aplicação exemplo, e que permita realizarmos o fluxo completo de DevOps, ilustrado com contêineres Docker.

Animados!? Hora de começar a por a mão na massa.

Kim et al., 2018
Kim et al. (2018)
Kim et al. (2018)
Kim et al., 2018
Betteley e Skelton (2017)
Unindo desenvolvimento ágil e DevOps
Torre (2020)