Curso gRPC Google Remote Procedure Call
16 horasVisão Geral
O Curso gRPC Google Remote Procedure Call é um treinamento prático que introduz os participantes ao gRPC, um framework moderno de chamadas remotas de procedimentos (RPC) baseado em HTTP/2 e Protocol Buffers. Ele ensina como criar serviços eficientes, escaláveis e interoperáveis para comunicação entre sistemas distribuídos, como microsserviços. Os participantes aprenderão a definir contratos de serviço com Protobuf, implementar servidores e clientes em diferentes linguagens, e explorar recursos como streaming bidirecional. o Curso gRPC Google Remote Procedure Call combina teoria, demonstrações e exercícios práticos para capacitar os alunos a utilizar o gRPC em aplicações reais.
Objetivo
Após realizar este gRPC Google Remote Procedure Call, você será capaz de:
- Definir contratos de serviço usando Protocol Buffers (Protobuf) para o gRPC.
- Implementar servidores e clientes gRPC em uma linguagem de programação (ex.: Python ou Go).
- Configurar comunicação unária e streaming (server, client e bidirecional) com gRPC.
- Integrar o gRPC em aplicações distribuídas com segurança (TLS) e monitoramento básico.
- Aplicar boas práticas para design, desempenho e manutenção de serviços gRPC.
Publico Alvo
- Desenvolvedores de software que trabalham com sistemas distribuídos ou microsserviços.
- Engenheiros de backend interessados em comunicação eficiente entre serviços.
- Arquitetos de software buscando alternativas modernas a REST ou SOAP.
- Profissionais de DevOps que gerenciam infraestrutura de APIs e serviços.
- Estudantes ou entusiastas de tecnologia explorando frameworks de RPC.
Pre-Requisitos
- Conhecimento básico de programação em pelo menos uma linguagem (ex.: Python, Go, Java).
- Familiaridade com conceitos de sistemas distribuídos (ex.: cliente-servidor, APIs).
- Noções introdutórias de redes (ex.: HTTP, TCP/IP) são recomendadas.
- Experiência com linha de comando (ex.: terminal Linux ou Windows) é útil.
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Dia 1 – Módulo 1: Introdução ao gRPC
- Tópicos:
- O que é gRPC: definição, história e comparação com REST e SOAP.
- Benefícios: desempenho (HTTP/2), interoperabilidade e tipagem forte.
- Componentes principais: Protocol Buffers, HTTP/2 e modelos de chamada (unária, streaming).
- Casos de uso: microsserviços, IoT, comunicação em tempo real.
- Instalação: configuração do ambiente e ferramentas (Protoc, bibliotecas gRPC).
- Atividade Prática: Instalar o Protoc e bibliotecas gRPC em uma linguagem escolhida (ex.: Python).
Dia 1 – Módulo 2: Definindo Serviços com Protocol Buffers
- Tópicos:
- Introdução ao Protocol Buffers (Protobuf): sintaxe, mensagens e serviços.
- Criação de arquivos .proto: definição de mensagens e métodos RPC.
- Compilação do Protobuf: geração de código para cliente e servidor.
- Estrutura básica: unária (solicitação-resposta) vs. streaming.
- Validação: teste de arquivos .proto compilados.
- Atividade Prática: Criar e compilar um arquivo .proto simples com um serviço de saudação (ex.: "Hello World").
Dia 1 – Módulo 3: Implementação de Servidor e Cliente gRPC
- Tópicos:
- Configuração de um servidor gRPC: implementação de métodos definidos no .proto.
- Criação de um cliente gRPC: chamada aos métodos do servidor.
- Comunicação unária: envio e recebimento de mensagens simples.
- Teste básico: execução do servidor e cliente localmente.
- Atividade Prática: Implementar um servidor e cliente gRPC para o serviço "Hello World" em Python ou Go.
Dia 2 – Módulo 4: Streaming e Recursos Avançados
- Tópicos:
- Tipos de streaming: server-side, client-side e bidirecional.
- Implementação de streaming: exemplos práticos (ex.: chat ou envio de dados contínuos).
- Gerenciamento de erros: códigos de status gRPC e tratamento de exceções.
- Segurança: configuração de TLS para comunicação criptografada.
- Depuração: uso de logs e ferramentas (ex.: grpcurl) para análise.
- Atividade Prática: Criar um serviço de streaming bidirecional (ex.: chat simples) com TLS habilitado.
Dia 2 – Módulo 5: Boas Práticas e Integração
- Tópicos:
- Design de serviços: boas práticas para .proto (versionamento, compatibilidade).
- Otimização: ajustes de desempenho (ex.: pooling de conexões, compressão).
- Monitoramento: integração com ferramentas como Prometheus ou logs customizados.
- Integração em sistemas: uso com microsserviços ou aplicações existentes.
- Próximos passos: exploração de gRPC-Gateway e suporte a múltiplas linguagens.
- Atividade Prática: Otimizar o serviço de chat com logs e testar com múltiplos clientes.