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 Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h