Curso Serverless and Event-Driven Applications with Knative
32 horasVisão Geral
Curso Serverless and Event-Driven Applications with Knative: Este curso intensivo foi desenvolvido para capacitar desenvolvedores, arquitetos e engenheiros de operações a construir e gerenciar aplicações serverless e orientadas a eventos utilizando Knative em clusters Kubernetes. Os participantes aprenderão os fundamentos das arquiteturas serverless e event-driven, os componentes essenciais do Knative (Serving e Eventing), e como implantar, escalar e orquestrar fluxos de eventos complexos, aproveitando todo o poder da plataforma Kubernetes.
Objetivo
Ao final deste Curso Serverless and Event-Driven Applications with Knative, os participantes serão capazes de:
- Compreender os princípios e benefícios das arquiteturas serverless e event-driven.
- Descrever os componentes e a arquitetura do Knative (Serving e Eventing).
- Implantar e gerenciar serviços Knative (Knative Serving), incluindo autoscaling (scale-to-zero), gerenciamento de tráfego e revisões.
- Implementar padrões avançados de deployment, como blue/green e canary releases, usando Knative Serving.
- Construir e orquestrar fluxos de eventos com Knative Eventing, utilizando fontes de eventos (event sources), brokers e triggers.
- Integrar Knative Eventing com diferentes sistemas de mensageria e fontes de eventos externas.
- Desenvolver aplicações serverless para Knative em diversas linguagens de programação.
- Monitorar, fazer troubleshooting e aplicar melhores práticas em ambientes Knative.
- Projetar soluções serverless e event-driven resilientes e escaláveis com Knative.
Publico Alvo
- Desenvolvedores de Software
- Arquitetos de Soluções
- Engenheiros de DevOps / SRE (Site Reliability Engineers)
- Administradores de Kubernetes
- Profissionais que buscam modernizar aplicações e explorar o paradigma serverless.
Pre-Requisitos
- Conhecimento sólido de conceitos de Kubernetes (pods, deployments, services, namespaces, etc.).
- Familiaridade com contêineres e Docker.
- Conhecimento básico de Git e linha de comando Linux/Unix.
- Experiência em alguma linguagem de programação (ex: Python, Node.js, Go, Java).
- (Opcional, mas recomendado) Familiaridade com conceitos de mensageria (Kafka, RabbitMQ, etc.).
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Módulo 1: Introdução ao Serverless e Arquiteturas Orientadas a Eventos
- O que é Serverless? Conceitos e evolução.
- Vantagens e desvantagens do paradigma serverless.
- Entendendo Aplicações Orientadas a Eventos (Event-Driven Architectures - EDA).
- Benefícios da EDA: desacoplamento, escalabilidade, resiliência.
- Desafios da EDA.
- Cenários de uso para serverless e EDA.
Módulo 2: Introdução ao Knative
- O que é Knative? Histórico e propósito.
- Knative como uma plataforma para construir, implantar e gerenciar cargas de trabalho serverless no Kubernetes.
- Componentes principais do Knative: Serving, Eventing, (e Build, se ainda relevante na versão abordada).
- Knative e sua relação com Kubernetes: estendendo a plataforma.
- Visão geral da instalação do Knative (cluster e pré-requisitos).
Módulo 3: Knative Serving - Deploying e Gerenciando Serviços
- Entendendo o
Service
do Knative (Knative Service). - Implantação de uma aplicação serverless simples.
- Autoscaling inteligente: escala horizontal e escala-para-zero (
scale-to-zero
). - Gerenciamento de revisões (Revisions): controle de versões de serviços.
- Roteamento de tráfego (Traffic Management): direcionando tráfego para revisões específicas.
- Atualizações e rollbacks de serviços.
- Monitoramento básico de serviços Knative.
Módulo 4: Knative Serving - Gerenciamento Avançado de Tráfego
- Deployments Blue/Green: Estratégias de lançamento sem downtime.
- Canary Releases: Lançamento gradual para um subconjunto de usuários.
- Rollbacks de tráfego instantâneos.
- Mapeamento de domínio personalizado (Custom Domains).
- Considerações de desempenho e latência.
Módulo 5: Knative Eventing - Conceitos Essenciais
- O que é Knative Eventing? A espinha dorsal das aplicações orientadas a eventos.
- Componentes do Eventing:
Broker
,Trigger
,Source
,Sink
. - O fluxo de eventos no Knative Eventing.
- Tipos de
Broker
(in-memory, Kafka, GCP Pub/Sub, etc.). - Entendendo
CloudEvents
- o formato padrão de eventos. - Criando um
Broker
e umTrigger
simples.
Módulo 6: Knative Eventing - Fontes de Eventos (Event Sources) Nativas e Comuns
KubernetesSource
: Capturando eventos do cluster Kubernetes.CronJobSource
: Agendando a geração de eventos.ApiServerSource
: Monitorando recursos específicos do Kubernetes.KafkaSource
: Integrando com Apache Kafka como fonte de eventos.PingSource
: Eventos baseados em cron.- Exemplos práticos de configuração e uso de diferentes
Event Sources
.
Módulo 7: Knative Eventing - Fontes de Eventos e Sinks Personalizados
- Criando
Event Sources
personalizados para integrar com sistemas externos. - Implementando
Sinks
personalizados para consumir eventos e interagir com outras plataformas. - Conectando aplicações serverless a fontes de eventos externas.
- Desenvolvendo
Service
comoSink
para processar eventos. - Considerações de segurança ao integrar fontes e sinks externos.
Módulo 8: Desenvolvimento de Aplicações Serverless para Knative
- Padrões de desenvolvimento para Knative.
- Escrevendo código para serviços Knative (ex: Python, Node.js, Go, Java).
- Estratégias de build:
Buildpacks
(para inferência de runtime),Dockerfile
personalizado. - CI/CD com Knative (conceitos de integração).
- Tratamento de estado e persistência em aplicações serverless.
Módulo 9: Monitoramento e Observabilidade em Knative
- Coleta de logs com Fluentd/Loki.
- Métricas com Prometheus e Grafana.
- Rastreamento distribuído com Jaeger/OpenTelemetry.
- Ferramentas e dashboards para monitorar o desempenho e a saúde dos serviços Knative.
- Estratégias de troubleshooting em ambientes serverless.
Módulo 10: Segurança em Aplicações Knative
- Controle de Acesso Baseado em Função (RBAC) no Kubernetes e Knative.
- Gerenciamento de segredos (
Secrets
) e configuração (ConfigMaps
). - Políticas de rede (
Network Policies
) para controlar o tráfego entre serviços. - Imagem de contêineres seguras e varredura de vulnerabilidades.
Módulo 11: Melhores Práticas e Casos de Uso com Knative
- Quando usar Knative: serverless para contêineres.
- Otimização de custos e desempenho.
- Padrões comuns de design serverless e event-driven.
- Exemplos de arquiteturas de referência com Knative.
- Desafios e limitações.
Módulo 12: Projeto Prático Final
- Desafio de construir uma aplicação serverless e orientada a eventos completa usando Knative Serving e Eventing.
- Os alunos irão projetar, implementar e implantar uma solução que utilize múltiplos componentes do Knative.
- Apresentação e discussão dos projetos.