Jenkins: CI/CD com Gitflow no Kubernetes
What you'll learn
- Setup completo de um ambiente de desenvolvimento com cluster Kubernetes local usando Kind
- Realizar o deploy de todas as ferramentas usando Helm Charts
- Automatizar o deploy de todos os Helm Charts usando Helmfile
- Configuração de repositórios, chaves e service users no Gitea
- Instalação de plugins como código no Jenkins
- Integração entre Gitea e Jenkins usando multibranch pipelines via webhook
- Transpondo testes unitários, lint e segurança para a pipeline
- Migração e utilização de Shared Libraries no Jenkins para modularidade
- Scan de código estático com report no SonarQube e bloqueio com Quality Gate
- Build de imagens Docker usando Kaniko com push para registry interno no Harbor
- Versionamento de artefatos seguindo o Gitflow
- Scan de segurança de imagens Docker usando scan on push do Harbor
- Promoção de artefatos usando o Crane
- Testes de integração com deploy no próprio cluster
- Deploy utilizando o princípio de GitOps via ArgoCD
- Separação de Deploy em Dev, Staging e Produção via regras de branches
- Notificação da pipeline no Discord
Requirements
- Conhecimentos de nível intermediário em Docker, Kubernetes e Linux
- Uma máquina com pelo menos 16GB de memória RAM (opcional)
- De preferência, a máquina acima deve rodar Linux para se igualar ao instrutor
Description
Deixa eu adivinhar... Você vem estudando diversas ferramentas do mundo DevOps mas tem aquele sensação de... Como que essas ferramentas devem trabalhar de forma conjunta?
Pois é, é algo realmente complexo e que muda de negócio para negócio.
Visando dar para vocês um norte, eu desenvolvi o treinamento Jenkins: CI/CD com Gitflow no Kubernetes para ser totalmente over-engineering. Isso é, vamos subir uma infraestrutura muito robusta, 100% em Kubernetes, usando o máximo de tecnologias possíveis para que você possa visualizar a integração entre elas, e quais problemas resolvem.
Por isso é importante que você já conheça as seguintes ferramentas: Linux, Docker e Kubernetes.
Neste curso, não passamos pelo básico delas. O foco é 100% em integrar as ferramentas na pipeline.
Todo o curso é realizado localmente com Kind, por isso eu recomendo o seguinte setup:
Uma máquina Linux, porque ela se dá melhor com o Docker.
Pelo menos 16GB de RAM, afinal, ela vai hostear todas as ferramentas e execuções da pipeline.
Porém, isso é apenas uma sugestão. O curso pode ser facilmente adaptável para rodar em homelabs (com Proxmox por exemplo), em nuvem (EKS, AKS, GKS, Digital Ocean, etc) ou como você quiser. Essa é a vantagem do Kubernetes, tudo é facilmente adaptável.
Agora deixa eu te mostrar um pouco sobre a grade do treinamento:
Módulo 1 - Introdução & Setup do ambiente: Criação do cluster Kubernetes 100% local usando Kind e ajustes para tudo correr bem.
Módulo 2 - Helm Charts de infraestrutura: Automação e instalação de todos os Helm Charts de infraestrutura para nossa pipeline (tudo vai rodar em cima do Kubernetes).
Módulo 3 - Setup do SCM: Setup de usuário de serviço e expondo TCP no NGINX Ingress Controller.
Módulo 4 - Setup do CI: Instalação de plugins, uso do Jenkinsfile e integração via Webhook entre Gitea <> Jenkins.
Módulo 5 - Testes: Introdução a aplicação que vamos usar como base (desenvolvida em outro curso aqui), e criação do primeiro stage de testes da aplicação.
Módulo 6 - Shared Libraries: Modularizar o código da pipeline em bibliotecas reusáveis.
Módulo 7 - SonarQube: Stage de análise de código estática usando o Sonar Scanner / SonarQube.
Módulo 8 - Build: Build da imagem Docker no Kubernetes com Kaniko, 100% Cloud-Native e sem necessidade de Docker in Docker.
Módulo 9 - Security Scan (Docker): Análise de segurança da imagem Docker via API do Harbor.
Módulo 10 - Promoção de Artefatos: Promovendo imagens Docker com regras de branches ao invés de realizar outro build, reduzindo tempo da pipeline e consequentemente aumentando a confiabilidade no artefato.
Módulo 11 - Testes de infraestrutura/integração: Teste simples deployando a aplicação e realizando um curl, mas que pode ser expandido para necessidades do negócio.
Módulo 12 - Deploy: Deploy no Kubernetes via ArgoCD com princípio de GitOps, automatizando a criação de tags para ambiente produtivo e notificação no Discord.
O curso é 100% prático e focado em desenvolver um projeto do começo ao fim.
Então, se você acredita que esse conhecimento pode te ajudar, ficarei muito feliz em ser seu instrutor aqui na Udemy! Conte comigo ao longo do curso em caso de dúvidas.
Te espero do outro lado!
Who this course is for:
- DevOps Engineers ou SREs
- Estudantes ou profissionais Juniors buscando aumentar sua gama de conhecimentos
Instructor
Entusiasta Linux e autodidata, com o objetivo de transformar assuntos complexos em explicações simples.
Já passei pelo maior Cloud Provider do mundo quando trabalhei e morei na Irlanda. Hoje, atuo como Lead DevOps Engineer de forma totalmente remota para o exterior.
CERTIFICAÇÕES LINUX:
Linux Professional Institute Certified, Level 3 - Linux Enterprise Professional
Linux Professional Institute Certified, Level 2 - Linux Engineer
Linux Professional Institute Certified, Level 1 - Linux Administrator
Linux Foundation Certified Engineer
Linux Foundation Certified Systems Administrator
CompTIA Linux+
Suse Certified Linux Administrator
OUTRAS CERTIFICAÇÕES:
Certified Kubernetes Administrator
OpenStack Foundation Certified OpenStack Administrator
Hashicorp Terraform Associate
AWS Solutions Architect Associate
AWS Developer Associate
CompTIA A+
ITIL Foundation
MCP Windows 8.1
GRADUAÇÃO:
Tecnólogo em Análise e Desenvolvimento de Sistemas