Curso Desenvolvendo Microserviços com Dapr e WebAssembly

  • DevOps | CI | CD | Kubernetes | Web3

Curso Desenvolvendo Microserviços com Dapr e WebAssembly

16 horas
Visão Geral

Este curso oferece uma visão abrangente e prática sobre como combinar duas das tecnologias mais inovadoras para microserviços: Dapr (Distributed Application Runtime) e WebAssembly (Wasm). Do ponto de vista técnico, os participantes aprenderão a simplificar o desenvolvimento de aplicações distribuídas, utilizando os "building blocks" do Dapr para gerenciamento de estado, pub/sub, invocação de serviços e muito mais. Concomitantemente, explorarão o poder do WebAssembly para criar componentes leves, seguros e de alto desempenho, capazes de serem executados em qualquer ambiente. o curso prepara os profissionais para construir sistemas mais resilientes, escaláveis e eficientes, reduzindo a complexidade inerente às arquiteturas distribuídas. A adoção de Dapr e WebAssembly pode levar a menores custos operacionais, melhor desempenho de aplicações e maior produtividade da equipe, pois permite que os desenvolvedores se concentrem na lógica de negócio, abstraindo preocupações com infraestrutura e interoperabilidade. Este é um curso estratégico para empresas que buscam modernizar suas aplicações e equipes de desenvolvimento.

Objetivo

Após realizar este Desenvolvendo Microserviços com Dapr e WebAssembly, você será capaz de:

  • Compreender os desafios de arquiteturas de microserviços e como Dapr os resolve.
  • Utilizar os principais "building blocks" do Dapr para construir aplicações distribuídas robustas.
  • Entender o WebAssembly (Wasm) e sua relevância para o desenvolvimento de back-end e edge computing.
  • Desenvolver e compilar código para WebAssembly em linguagens como Rust ou TinyGo.
  • Integrar e executar módulos WebAssembly em suas aplicações.
  • Combinar Dapr e WebAssembly para criar microserviços otimizados, seguros e eficientes.
  • Configurar a observabilidade de aplicações que utilizam Dapr e WebAssembly.
  • Implementar e operar microserviços Dapr com componentes WebAssembly em ambientes de contêineres.
Publico Alvo
  • Desenvolvedores de Software: Especialmente aqueles que trabalham com microserviços e buscam otimizar o desenvolvimento e a operação.
  • Arquitetos de Sistemas: Interessados em projetar soluções distribuídas mais eficientes e portáveis.
  • Engenheiros de DevOps e SREs: Que procuram ferramentas para simplificar a implantação, monitoramento e gerenciamento de aplicações distribuídas.
  • Profissionais de TI: Curiosos sobre as últimas tendências em desenvolvimento de aplicações e execução de código em ambientes variados.
Pre-Requisitos
  • Conhecimento básico em desenvolvimento de aplicações (experiência em alguma linguagem como Go, Rust, C#, Python ou JavaScript é altamente recomendada).
  • Familiaridade com conceitos de microserviços e contêineres (Docker).
  • Noções básicas de linha de comando (CLI) e ambiente de desenvolvimento.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico

Módulo I: Fundamentos de Dapr e WebAssembly (4 horas)

  • 1.1. Contexto de Microserviços e Desafios (1h)
    • Revisão de arquiteturas distribuídas e seus benefícios.
    • Complexidades do desenvolvimento de microserviços (comunicação, estado, resiliência).
    • A proposta de valor do Dapr como um runtime de aplicação distribuída.
  • 1.2. Introdução ao Dapr: Arquitetura e Componentes (1.5h)
    • O modelo sidecar do Dapr e como ele simplifica o código da aplicação.
    • Visão geral dos principais "building blocks" do Dapr (Service Invocation, State Management, Pub/Sub, etc.).
    • Instalação e configuração básica do Dapr CLI e runtime (dapr init).
    • Estrutura de diretórios de componentes do Dapr.
  • 1.3. Introdução ao WebAssembly (Wasm) e WASI (1.5h)
    • O que é WebAssembly e sua ascensão fora do navegador.
    • Características chave: segurança (sandboxing), performance, portabilidade e interoperabilidade.
    • A máquina virtual Wasm e o conceito de WASI (WebAssembly System Interface) para execução no servidor.
    • Linguagens que suportam compilação para Wasm (Rust, Go, C/C++, TinyGo, etc.).
    • Run-times Wasm populares para execução no servidor (Wasmtime, Wasmer, WAMR, Spin, WasmEdge).

Módulo II: Desenvolvendo com os Building Blocks do Dapr (4 horas)

  • 2.1. Invocação de Serviço e Comunicação entre Microserviços (1h)
    • Chamadas síncronas entre serviços via Dapr (HTTP/gRPC).
    • Resiliência com Dapr: retries e timeouts configuráveis.
    • Prática: Criando dois serviços que se comunicam através do Dapr Service Invocation.
  • 2.2. Gerenciamento de Estado Distribuído (1h)
    • Persistência de estado usando o "state management building block".
    • Componentes de estado suportados (Redis, CosmosDB, DynamoDB, etc.).
    • Prática: Implementando um serviço de carrinho de compras com gerenciamento de estado Dapr.
  • 2.3. Publicação e Assinatura de Mensagens (Pub/Sub) (1h)
    • Comunicação assíncrona baseada em eventos com o Dapr Pub/Sub.
    • Configuração e uso de componentes de Pub/Sub (Kafka, RabbitMQ, Azure Service Bus).
    • Prática: Construindo um sistema de processamento de pedidos assíncrono.
  • 2.4. Bindings e Triggers para Integração Externa (1h)
    • Conectando microserviços a recursos externos (filas de mensagens, bancos de dados, sistemas de arquivos).
    • Disparando código da aplicação com eventos externos.
    • Prática: Criando um serviço que consome eventos de uma fila e publica em um armazenamento de objetos.

Módulo III: Construindo Componentes com WebAssembly (4 horas)

  • 3.1. Escrevendo e Compilando Código para WebAssembly (1.5h)
    • Configuração do ambiente de desenvolvimento para Wasm (foco em Rust e/ou TinyGo).
    • Principais ferramentas e bibliotecas para desenvolvimento Wasm.
    • Considerações sobre o tamanho do módulo e otimização.
    • Prática: Desenvolvendo um módulo Wasm para validação de dados complexa ou transformação de texto.
  • 3.2. Embedding e Execução de Módulos Wasm (1.5h)
    • Diferentes abordagens para hospedar e executar módulos Wasm (via runtimes como Wasmtime, Wasmer, ou embutido em linguagens host).
    • Mecanismos de comunicação entre a aplicação host e o módulo Wasm (export/import de funções, memória compartilhada).
    • Prática: Integrando o módulo Wasm desenvolvido em uma aplicação host (e.g., Go, Node.js) e executando-o.
  • 3.3. Casos de Uso Avançados e Tendências de Wasm (1h)
    • Extensibilidade baseada em plugins Wasm.
    • Funções serverless leves e seguras com Wasm.
    • Wasm em cenários de Edge Computing e IoT.
    • Desafios e futuras direções do ecossistema WebAssembly.

Módulo IV: Dapr e WebAssembly em Sinergia e Operação (4 horas)

  • 4.1. Integrando Dapr e WebAssembly (1.5h)
    • Cenários onde Dapr e Wasm se complementam para arquiteturas de microserviços.
    • Chamando módulos Wasm a partir de serviços Dapr-enabled.
    • Implementando lógicas de negócio em Wasm disparadas por Triggers ou Bindings do Dapr.
    • Prática: Re-arquitetando um serviço Dapr para delegar uma funcionalidade crítica a um módulo Wasm.
  • 4.2. Observabilidade para Aplicações Distribuídas Híbridas (1.5h)
    • Recursos de observabilidade do Dapr (tracing, métricas, logs).
    • Desafios de observabilidade específicos para componentes WebAssembly.
    • Integração com ferramentas de monitoramento e APM (New Relic, Prometheus, Grafana).
    • Prática: Configurando o rastreamento e a coleta de métricas para uma aplicação Dapr com Wasm.
  • 4.3. Implantação, Escalabilidade e Melhores Práticas (1h)
    • Estratégias de empacotamento e implantação de aplicações Dapr e Wasm (Docker, Kubernetes).
    • Considerações de segurança e gerenciamento de dependências.
    • Escalabilidade de microserviços com Dapr e o impacto de componentes Wasm.
    • Discussão de padrões e anti-padrões.
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Apache NiFi Advanced DataFlow Engineering

24 horas

Curso Real-Time Data Pipelines

24 horas