Neste laboratório, você será um novo Engenheiro de DevOps em uma startup que deseja acelerar o ciclo de vida do desenvolvimento de software. Atualmente, a empresa não tem uma forma automatizada de entregar software, o que causa lançamentos extremamente lentos e propensos a erros. O CTO da empresa acredita na automação e quer implementar pipelines CI/CD como código para acelerar os processos de integração, teste e lançamento com o Jenkins. Além disso, ele quer habilitar mecanismos para que a equipe tenha visibilidade sobre o estado atual do processo de integração/entrega, garantindo que as práticas de DevSecOps façam parte do ciclo.
Github
Jenkins
Slack
Docker(Utilizando o exclusivamente para executar o Jenkins.)
As últimas semanas têm sido um desastre ao implantar mudanças em nossos ambientes de produção. Infelizmente, nossa equipe de desenvolvimento não tem muita experiência em automação, o que significa que eles fazem tudo manualmente. Não só isso leva muito tempo e esforço, mas também causa muitos erros humanos! Para melhorar o processo, eu pesquisei sobre os padrões da indústria e estou claro sobre o resultado que eu quero ver (descrito abaixo). Para começar, eu fornecerei a você o código-fonte da aplicação e os scripts que usamos para construir, testar e implantar.
Você precisará criar um pipeline do Jenkins Multibranch (como código) que irá construir, testar e implantar a aplicação no ambiente de desenvolvimento quando o ramo for develop e no ambiente de produção quando o ramo for master. Depois que a aplicação for implantada, você poderá testá-la com curl localhost:4040 para dev e curl localhost:5050 para prod. Por último, você precisará garantir que recebamos notificações no Slack para as construções, bem como verificações periódicas para identificar se segredos foram commitados para o código-fonte. Estou contando com você!
- Integração Contínua,
- Entrega/Implantação Contínua
- Pipelines como Código
- Testes Contínuos
- DevSecOps
- Integrações do Jenkins com ferramentas populares de DevOps