Visã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.
Conteú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 um Trigger
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
como Sink
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.