Projeto DevOps: Flask API - Do código ao deploy!

Aprenda todo o processo de DevOps, do desenvolvimento do código até a automação via CI/CD em ambientes Cloud-Native

Ratings 4.94 / 5.00
Projeto DevOps: Flask API - Do código ao deploy!

What You Will Learn!

  • Desenvolver uma API básica (CRUD) utilizando o framework Flask
  • Integrar a API com banco de dados NoSQL (MongoDB)
  • Escrever Dockerfile para containerizar a aplicação
  • Construir um Docker Compose para subir toda a stack localmente
  • Automatizar passos de testes e deploy com Makefile
  • Entender o conceito de Application Factory no Flask
  • Escrever testes unitários com pytest
  • Deploy da aplicação em PaaS (Heroku) juntamente com MongoDB Atlas
  • Utilização de branches para merge de código no GitHub
  • Entender e escrever healthchecks para integrar com Probes do Kubernetes
  • Garantir a qualidade e segurança de código por meio de ferramentas auxiliares como Black, Flake8 e Bandit
  • Criar um cluster Kubernetes localmente com Kind
  • Fazer deploy de Helm Charts
  • Fazer deploy de toda a stack da aplicação no Kubernetes
  • Expor a aplicação para o mundo usando Ingress no Kubernetes
  • Criar um cluster Kubernetes na AWS com Amazon EKS com Terraform
  • Criar um repositório no ECR para armazenar suas imagens Docker
  • Gerenciar Secrets no Kubernetes de forma segura com Sealed Secrets
  • Estender o módulo do Terraform para incluir add-ons e Bastion Host na AWS
  • Utilizar o Vagrant para testar código Ansible
  • Reusar Ansible Roles para configurar o MongoDB
  • Configurar e expôr a aplicação no Amazon EKS usando AWS Load Balancer Controller
  • Integrar o Amazon EKS e Route 53 com External DNS
  • Adicionar certificado TLS do ACM no Ingress do AWS Load Balancer Controller
  • Criar uma esteira de CI/CD no GitHub Actions
  • Integrar IDP do GitHub com AWS para autenticação via roles e credenciais temporárias
  • Ajustar RBAC do Kubernetes com aws-auth para permitir novos usários a interagir com o cluster

Description

Você se sente perdido nessa "sopa de letrinhas" de tecnologias no mundo de DevOps?

Não sabe como todas essas pontas se conectam, e qual valor agregam para o nosso dia a dia?

Se sua resposta foi sim, chances são de que este curso vai te ajudar... e muito!

Estruturei este treinamento de forma 100% prática, divididas em dois projetos, que efetivamente entregam algo real. Dessa forma, você vai aprendendo as tecnologias e já compreendendo onde cada uma se encaixa, facilitando para "gravar" o conhecimento na sua cabeça.

Deixa eu explicar um pouco sobre os módulos do treinamento:

  • Módulo 1 - (Projeto 1 - PaaS) - Setup do ambiente: Configuração inicial no repositório e criando a nossa primeira API com Flask.

  • Módulo 2 - (Projeto 1 - PaaS) - Docker: Configuração da nossa aplicação para rodar em containers. Vamos escrever o Dockerfile e docker-compose para subir toda a stack de desenvolvimento localmente.

  • Módulo 3 - (Projeto 1 - PaaS) - Flask / Codando: Aqui é onde a gente escreve código. É uma API básica para praticar um pouco de programação. Não é relevante para desenvolvedores, mas para profissionais de infraestrutura que não escrevem muito código, vai ser bem desafiador.

  • Módulo 4 - (Projeto 1 - PaaS) - Flask / Testes unitários: Muito se fala de testes unitários, mas geralmente não está claro para profissionais de infraestrutura. Aqui nós mesmos vamos escrever os testes da nossa aplicação. Com isso fica mais fácil jogar para o CI.

  • Módulo 5 - (Projeto 1 - PaaS) - Heroku, MongoDB Atlas & GitHub Actions: Finalização do primeiro projeto. Vamos fazer o deploy via Heroku (Paas), usando o banco do MongoDB Atlas (cloud do Mongo) e uma pipeline de CI/CD no GitHub Actions.

  • Módulo 6 - (Projeto 2 - k8s) - Flask / Codando: Vamos estender nossa API com operações de DELETE e PATCH.

  • Módulo 7 - (Projeto 2 - k8s) - Health Checks / Probes: Adicionamos healthchecks na nossa aplicação que será necessário para rodar em Kubernetes. Isso fará a integração com o conceito de Probes no Kubernetes.

  • Módulo 8 - (Projeto 2 - k8s) - Scans de Qualidade: Utilização de ferramentas terceiras para melhorar a qualidade do nosso projeto, tanto esteticamente quanto em segurança.

  • Módulo 9 - (Projeto 2 - k8s) - Kubernetes (desenvolvimento): Faremos a adaptação da aplicação para rodar em um cluster Kubernetes localmente. Isso envolve cluster KinD, Helm Charts, manifestos, probes, ingress, service e muito mais.

  • Módulo 10 - (Projeto 2 - k8s) - Helm (produção): Aqui levamos o projeto um pouco mais a sério. Vamos subir um cluster Kubernetes na AWS e deployar a aplicação com Helm, além de gerenciar Secrets de forma encriptada com Sealed Secrets.

  • Módulo 11 - (Projeto 2 - k8s) - Terraform: Vamos estender o nosso Terraform, adicionando outros recursos como bastion host, instância do MongoDB e add-ons do Helm.

  • Módulo 12 - (Projeto 2 - k8s) - Ansible: Para configurar o banco de dados, vamos usar o Ansible. Aqui aprendemos a reusar uma role existente, e ter toda a configuração do banco como código.

  • Módulo 13 - (Projeto 2 - k8s) - DNS (Route 53 & External DNS): Para deixar o projeto 100%, vamos usar uma URL de DNS pública. Usaremos um add-on para fazer a ponte entre o cluster e o Route 53, além de adicionar um certificado TLS.

  • Módulo 14 - (Projeto 2 - k8s) - GitHub Actions (CI/CD): Finalização do projeto com deploy no Kubernetes com GitHub Actions. Usaremos boas práticas de segurança com credenciais temporárias via OIDC, edição no RBAC do Kubernetes e Helm.

Sim, é um bombardeio de conhecimento. E não, não foi feito para ser fácil.

Eu quero que você realmente passe trabalho, pois é na dificuldade que a gente constrói o conhecimento de verdade.

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 Should Attend!

  • DevOps Engineers ou SREs
  • Estudantes ou profissionais Juniors buscando aumentar sua gama de conhecimentos

TAKE THIS COURSE

Tags

Subscribers

247

Lectures

114

TAKE THIS COURSE