O documento apresenta o framework gRPC, Protocol Buffers e como servir aplicações com eles. gRPC permite chamadas de procedimento remoto de alta performance usando Protocol Buffers para serialização de dados e HTTP/2 para transporte. Protocol Buffers define estruturas de dados e serviços em arquivos .proto para gerar código em várias linguagens.
2. Agenda
1. O que é gRPC
2. Protocol Buffers
3. Servindo Aplicações
4. Hora do código
5. Considerações
3. O que é gRPC
● RPC - Remote Procedure Call
● Framework
● Alta performance
● Streaming bi-direcional de dados
● Autenticação HTTP/2 based
● Criado pelo Google
● Multi-linguagem
4. O que é gRPC
Padrão RPC
● Técnica de processamento distribuído
● Execução síncrona
● Conjunto de problemas relacionados à
execução e sincronismo
5. O que é gRPC:
Funcionamento
● Um serviço rodando isoladamente
● Padrão Request/Response
● Conteúdo binário
● Chamadas de funções
● Protocol Buffers
6. O que é gRPC
● Utiliza das Vantagens do HTTP/2
● Multiplexação de requisições
● Binary framing
● Streaming de dados
● Consome menos recursos
● Excelente em termos de mensagens estruturadas
7.
8. O que é gRPC
HTTP/2
● Evolução do protocolo HTTP 1.1
● HTTPS only
● HPACK - Compressão de cabeçalhos
● Multiplexação de requisições
● Priorização de requisições
9. Protocol Buffers
● Formato do Google para serializar dados estruturados
● Definição do Serviço
● Arquivos .proto
● Compilador protoc
● Versionado
● Compatível com diversas linguagens
11. Protocol Buffers:
Anatomia de um .proto
● Definição do contrato
● Cada mensagem recebe um id
único
● Muito simples de se utilizar
● Tipos de dados
Tipo do campo Nome do campo
ID
Nome do
Objeto
Versão do
compilador
14. Considerações
● Problema: como gerenciar os .proto
● Muito simples de se utilizar
● Alta curva de aprendizado
● HTTP/2 <3
● Geração de código
● Compilador robusto, com variedade de plugins
● Artigo da apresentação
● Repositório com exemplos
16. Referências
● Core concepts, architecture and lifecycle | gRPC
● Overview | Protocol Buffers | Google Developers
● Generating and packaging code from protocol buffers for gRPC
Services | Bugsnag Blog
● Improving Microservices Communication with gRPC | CrowdStrike
● How We Build gRPC Services At Namely | by Bobby Tables |
Namely Labs | Medium
● grpc/server-reflection.md at master