0
respostas

Utilização do Ansible com microserviços

Olá, estou fazendo a carreira de DevOps e gostaria de saber qual é a melhor prática para o seguinte cenário:

Estou construindo uma aplicação com vários microserviços. Todos as APIs estão armazenadas em um único repositório GitHub e existem dois tipos de serviços: serviços que serão executados como container e serviços que não serão executados como container. Atualmente, há um script que é chamado no Jenkins e executa npm install em cada um dos serviços (entrando recursivamente nas pastas via código), pm2 build para subir os serviços que não são container, e docker run para subir os serviços containers (entrando recursivamente nas pastas via código).

Eu gostaria de criar uma pipeline no Jenkins de CI/CD e vi que o Ansible é muito utilizado com o Jenkins.

Minha dúvida é, o Ansible pode ser usado como substituto desse script? Essa é a função do Ansible? Porque assim, uma pipeline builda e executa multiplos serviços, como eu faria esse suporte de entrar pasta a pasta automaticamente como faço no script via Ansible? Talvez seja uma melhor prática ter um repositório para cada API no GitHub e uma pipeline no Jenkins para cada API?

Basicamente, qual é a melhor prática para trabalhar com vários microserviços (em torno de 20) em um ambiente de produção? Cada serviço em um repositório GitHub ou todos serviços em um repositório? E com base nisso, como fazer esse deploy automatico com Jenkins e Ansible?

Muito obrigada!