Prática DevOps com Docker para Machine Learning
  • Prática de DevOps com Docker para Machine Learning
  • 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 - Python
    • 1.4 Configuração do Ambiente - Docker
    • 1.5 Dockerfile, Imagem e Contêiner Docker
    • 1.6 Docker Hub e Comandos Adicionais
  • 2. Desenvolvimento
    • 2.1 Do notebook para aplicação - parte 1
    • 2.2 Do notebook para aplicação - parte 2
    • 2.3 Do notebook para aplicação - parte 3
  • 3. Produção
    • 3.1 Desenvolvimento vs Produção: o fim ou o início?
    • 3.2 Ambiente de Produção - parte 1
    • 3.3 Ambiente de Produção - parte 2
    • 3.4 Ambiente de Produção - parte 3
  • 4. Monitoramento
    • 4.1 Introdução
    • 4.2 Configurando o Servidor de Monitoramento
    • 4.3 Monitorando Servidores do Ambiente de Produção
    • 4.4 Comandos de Verificação do Nagios
    • 4.5 Criando Verificações Mais Específicas
    • 4.6 Criando Alertas
    • 4.7 Recuperando de Problemas
    • 4.8 Verificação de Contêineres via NRPE
  • 5. Infraestrutura como Código e Orquestração
    • 5.1 Introdução
    • 5.2 Orquestração com Docker Compose
    • 5.3 Orquestração com Kubernetes
  • 6. Integração Contínua
    • 6.1 Introdução
    • 6.2 Controle de Versão
    • 6.3 Configurando um repositório no GitLab
    • 6.4 Branch e merge
    • 6.5 Pipeline de Integração Contínua com GitLab CI/CD
  • 7. Entrega Contínua
    • 7.1 Introdução
    • 7.2 Implantação automática no Docker Hub
    • 7.3 Implantação automática no Heroku
    • 7.4 Implantação automática no Google Kubernetes Engine (GKE)
    • 7.5 Testando tudo junto
  • 8. Model serving
    • 8.1 Introdução
    • 8.2 Model serving com mlserver
    • 8.3 CI/CD com GitLab e mlserver
    • 8.4 Testando tudo junto
  • 9. Model serving batch
    • 9.1 Introdução
    • 9.2 Spark
    • 9.3 Airflow
    • 9.4 Testando tudo junto
  • 10. MLOps com mlflow
    • 10.1 Introdução
    • 10.2 Visão geral do MLflow
    • 10.3 Configuração do MLflow
    • 10.4 Testando MLflow
  • 11. MLOps com Kubeflow
    • 11.1 Visão geral do Kubeflow
    • 11.2 Configuracão
    • 11.3 Kubeflow Pipeline
    • 11.4 Kserve
    • 11.5 Testando tudo junto
  • 12. Conclusão
    • Conclusão
Powered by GitBook
On this page
  1. 7. Entrega Contínua

7.1 Introdução

Previous6.5 Pipeline de Integração Contínua com GitLab CI/CDNext7.2 Implantação automática no Docker Hub

Last updated 3 years ago

No capítulo anterior tratamos da parte da Integração Contínua, que permite, a cada commit, confirmando mudanças realizadas, verificar a aplicação em tudo o que for necessário, demonstrando que o código não quebrou, que as diretrizes de qualidade estão sendo cumpridas, entre outras tarefas que podem ser automatizadas. No final das contas, essa automação possibilita que o código que está no VCS é continuamente integrado e testado.

Nessa seção, iremos incluir um passo a mais no nosso arquivo de configuração do pipeline de modo que possa ser feito o deploy da aplicação e a mesma possa ser utilizada em um ambiente de produção, conforme já realizamos nos capítulos iniciais. Por também ser uma tarefa automatizada, isso permite que, a todo commit, o sistema seja implantado automaticamente, promovendo a entrega contínua (CD).

Juntos, CI/CD promovem uma maior agilidade no processo de transferência do software da máquina do desenvolvedor para o(s) ambiente(s) de produção, entregando os benefícios do DevOps na prática. Cada vez que uma mudança é realizada, em pouco tempo já será possível visualizar seus efeitos no ambiente final. Além disso, o desenvolvedor não precisa perder tempo com tarefas manuais de testes, empacotamente, implantação, pois tudo já está programado e configurado.

Retomando a figura apresentada anteriormente no Capítulo 1.2, estivemos trabalhando nos itens 1, 2, 3, 5 e 6. Como deve ter adivinhado, vamos agora fechar o ciclo e trabalhar finalmente no item 4!

Fluxo de trabalho genérico e para o ciclo de vida do aplicativo em contêineres do Docker (extraída de Torre (2020))
  • Projeto de classificador de produtos configurado como contêiner único;

  • Projeto no GitLab configurado e sincronizado com a pasta local;

  • Um runner CI/CD rodando (pode ser rodando em máquina própria ou pode ser os runners gratuitos oferecidos pelo GitLab mediante verificação da conta).

Faremos uma abordagem prática, dando continuidade ao mesmo exemplo que trabalhamos no . Assim, se ainda não efetuou os passos do exemplo por lá e quiser acompanhar aqui, volte e realize todas as etapas para deixar configurado tudo o que vamos precisar:

Capítulo 6