3.1 Desenvolvimento vs Produção: o fim ou o início?
Last updated
Last updated
Neste capítulo falamos sobre o ambiente de produção. Conforme comentado no livro "DevOps na Prática: Entrega de Software Confiável a Automatizada", Sato (2018) argumenta que o ciclo de vida do software deveria iniciar somente apenas quando o usuário passasse a fazer uso do software.
Particularmente, essa é uma afirmação interessante. Do ponto de vista de desenvolvimento de software, sabe-se que bons produtos de software ficam no mercado por mais de 20 anos. Desse modo, se comparado com o tempo de desenvolvimento do produto e o primeiro lançamento, pode-se dizer que o software passa muito mais tempo em manutenção do que em desenvolvimento.
A ideia deste capítulo é ilustrar como podemos utilizar o Docker para montar o ambiente de produção e disponibilizar uma aplicação para ser utilizada pelo usuário final.
Recapitulando a figura do Capítulo 1 que ilustra um fluxo DevOps, esse capítulo tem como objetivo final começar a abordar o item 5 da figura, ou seja, o ambiente de produção.
Iremos adotar, a princípio, um ambiente simples de produção, fazendo uso do Docker e contêineres para executar algumas tarefas típicas de um sistema de Machine Learning. Em particular, veremos como é possível configurar um ambiente de produção para os três exemplos típicos de tarefas vistos no capítulo anterior: uma tarefa online para processamento de dados em batch, e duas tarefas online: API HTTP e processamento em fluxo.
Neste momento, o ambiente será realmente simples, portanto várias coisas ficarão de fora, como monitoramento, versionamento, agendamento de tarefas, testes de sanidade, e outros conceitos importantes de um ambiente de produção de Machine Learning. À medida que avançamos no livro, acrescentaremos algumas dessas funcionalidades e ferramentas.