Introdução

Introdução

Neste repositório está contida a documentação criada para o projeto pipeline mlops iac (opens in a new tab), para que seja possível replicar facilmente a infraestrutura criada nele, assim como facilitar modificações e seu uso.

AWS CodePipeline

Esse serviço é fundamentado na crescente importância da integração contínua e entrega contínua (CI/CD). A integração contínua busca encontrar e investigar erros de forma mais ágil, melhorar a qualidade do código e reduzir o tempo necessário para validar e lançar novas atualizações de software. Por sua vez, a entrega contínua automatiza a criação, teste e preparação do código para produção, possibilitando a implantação de alterações em ambientes de teste e/ou produção de maneira eficiente.

Essas práticas desempenham um papel fundamental na área de DevOps, oferecendo uma solução para automatizar implantações que anteriormente eram manuais e demoradas. Além disso, contribuem para a identificação antecipada de bugs e a criação de código de maior qualidade.

O AWS CodePipeline é a ferramenta da AWS, que possibilita criar pipelines de CI/CD que automatizam todo o fluxo de trabalho, desde a obtenção do código-fonte até a implantação final do aplicativo. Com essa ferramenta, podemos compilar código, fazer testes e até fazer etapas personalizadas, que será o uso dessa para este projeto.

pipeline ci-cd img

Objetivo deste projeto

Além do DevOps "tradicional", com o avanço das tecnologias de Inteligência Artificial, surge também o MlOps, que segue a mesma ideia do DevOps, só que para o desenvolvimento de serviços e modelos relacionados a Machine Learning. A maior diferença se dá no de que no MlOps, o modelo muitas vezes deve ser treinado dentro do pipeline, e o teste deste é um pouco diferente que os testes de softwares mais "tradicionais".

Com objetivo de trazer uma solução de CI/CD para machine learning, este projeto foca em desenvolver uma pipeline, utilizando serviços da AWS, como CodePipeline, CodeCommit, SageMaker entre outros, para integrar com código em repositórios Gitlab, e ir desde a obtenção do código fonte, passando pelo treinamento do modelo, avaliação de desempenho chegando até o deploy deste modelo em endpoints, para que o modelo possa ser utilizado como em serviços.