SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Matheus Donizete - Pedreiro de Software
Uma breve introdução
Agenda
1. O que é gRPC
2. Protocol Buffers
3. Servindo Aplicações
4. Hora do código
5. Considerações
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
O que é gRPC
Padrão RPC
● Técnica de processamento distribuído
● Execução síncrona
● Conjunto de problemas relacionados à
execução e sincronismo
O que é gRPC:
Funcionamento
● Um serviço rodando isoladamente
● Padrão Request/Response
● Conteúdo binário
● Chamadas de funções
● Protocol Buffers
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
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
Protocol Buffers
● Formato do Google para serializar dados estruturados
● Definição do Serviço
● Arquivos .proto
● Compilador protoc
● Versionado
● Compatível com diversas linguagens
Protocol Buffers:
Ciclo de vida de utilização
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
Protocol Buffers:
Anatomia de um .proto
● Definição do Serviço
● Bi-direcional uma entrada - uma saída
Hora do
Código!
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
Dúvidas
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

Mais conteúdo relacionado

Mais procurados

gRPC - Fastest Data Transfer Protocol
gRPC - Fastest Data Transfer ProtocolgRPC - Fastest Data Transfer Protocol
gRPC - Fastest Data Transfer ProtocolSougata Pal
 
IPTables na prática
IPTables na práticaIPTables na prática
IPTables na práticaaptans
 
Inter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCInter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCShiju Varghese
 
MikroTik Multicast Routing [www.imxpert.co]
MikroTik Multicast Routing [www.imxpert.co]MikroTik Multicast Routing [www.imxpert.co]
MikroTik Multicast Routing [www.imxpert.co]Faisal Reza
 
UNAERP - 04/11 - Digerindo dados com Apache NiFi
UNAERP - 04/11 - Digerindo dados com Apache NiFiUNAERP - 04/11 - Digerindo dados com Apache NiFi
UNAERP - 04/11 - Digerindo dados com Apache NiFiEliézer Zarpelão
 
gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and MicroservicesJonathan Gomez
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework springAntoine Rey
 
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Codemotion
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersMarkus Eisele
 
Arquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introduçãoArquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introduçãoMorvana Bonin
 
Implementing Domain Events with Kafka
Implementing Domain Events with KafkaImplementing Domain Events with Kafka
Implementing Domain Events with KafkaAndrei Rugina
 
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019Victor Rentea
 

Mais procurados (20)

Introduction to gRPC
Introduction to gRPCIntroduction to gRPC
Introduction to gRPC
 
gRPC - Fastest Data Transfer Protocol
gRPC - Fastest Data Transfer ProtocolgRPC - Fastest Data Transfer Protocol
gRPC - Fastest Data Transfer Protocol
 
Protocol buffers
Protocol buffersProtocol buffers
Protocol buffers
 
gRPC Overview
gRPC OverviewgRPC Overview
gRPC Overview
 
IPTables na prática
IPTables na práticaIPTables na prática
IPTables na prática
 
Protocol Buffers
Protocol BuffersProtocol Buffers
Protocol Buffers
 
Inter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCInter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPC
 
MikroTik Multicast Routing [www.imxpert.co]
MikroTik Multicast Routing [www.imxpert.co]MikroTik Multicast Routing [www.imxpert.co]
MikroTik Multicast Routing [www.imxpert.co]
 
UNAERP - 04/11 - Digerindo dados com Apache NiFi
UNAERP - 04/11 - Digerindo dados com Apache NiFiUNAERP - 04/11 - Digerindo dados com Apache NiFi
UNAERP - 04/11 - Digerindo dados com Apache NiFi
 
gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and Microservices
 
gRPC - RPC rebirth?
gRPC - RPC rebirth?gRPC - RPC rebirth?
gRPC - RPC rebirth?
 
Les dessous du framework spring
Les dessous du framework springLes dessous du framework spring
Les dessous du framework spring
 
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
 
gRPC
gRPCgRPC
gRPC
 
Protocol Buffer.ppt
Protocol Buffer.pptProtocol Buffer.ppt
Protocol Buffer.ppt
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
 
Arquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introduçãoArquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introdução
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
Implementing Domain Events with Kafka
Implementing Domain Events with KafkaImplementing Domain Events with Kafka
Implementing Domain Events with Kafka
 
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
Evolving a Clean, Pragmatic Architecture at JBCNConf 2019
 

Semelhante a gRPC - uma breve introdução.pdf

gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?Yago Tomé
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
Introdução ao WSO2 API Microgateway 3.1
Introdução ao WSO2 API Microgateway 3.1Introdução ao WSO2 API Microgateway 3.1
Introdução ao WSO2 API Microgateway 3.1WSO2
 
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 Gabriel Machado
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoWeverton Timoteo
 
Restful APIs com Spring 3
Restful APIs com Spring 3Restful APIs com Spring 3
Restful APIs com Spring 3Alex Miranda
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIFernando Camargo
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIFernando Camargo
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...Tchelinux
 
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...Renato Groff
 
Python Eve - APIs RESTful Profissionais em poucas linhas
Python Eve - APIs RESTful Profissionais em poucas linhasPython Eve - APIs RESTful Profissionais em poucas linhas
Python Eve - APIs RESTful Profissionais em poucas linhasRuda Filgueiras
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?tdc-globalcode
 
Aula05 camada de aplicação
Aula05 camada de aplicaçãoAula05 camada de aplicação
Aula05 camada de aplicaçãoTiago Tda
 
Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Ricardo Katz
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7tdc-globalcode
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Caio Miranda
 
Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Lucas Silva
 

Semelhante a gRPC - uma breve introdução.pdf (20)

HTTP 2
HTTP 2HTTP 2
HTTP 2
 
gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?gRPC: Por que você ainda usa REST?
gRPC: Por que você ainda usa REST?
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Cap 02.pdf
Cap 02.pdfCap 02.pdf
Cap 02.pdf
 
Introdução ao WSO2 API Microgateway 3.1
Introdução ao WSO2 API Microgateway 3.1Introdução ao WSO2 API Microgateway 3.1
Introdução ao WSO2 API Microgateway 3.1
 
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicação
 
Restful APIs com Spring 3
Restful APIs com Spring 3Restful APIs com Spring 3
Restful APIs com Spring 3
 
HTTP/2
HTTP/2HTTP/2
HTTP/2
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful API
 
Boas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful APIBoas práticas no desenvolvimento de uma RESTful API
Boas práticas no desenvolvimento de uma RESTful API
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
5 Tecnologias que todo Desenvolvedor Web deveria conhecer - Developers-BR - O...
 
Python Eve - APIs RESTful Profissionais em poucas linhas
Python Eve - APIs RESTful Profissionais em poucas linhasPython Eve - APIs RESTful Profissionais em poucas linhas
Python Eve - APIs RESTful Profissionais em poucas linhas
 
TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?TDC2018SP | Trilha Serveless - Pra que SERVErless?
TDC2018SP | Trilha Serveless - Pra que SERVErless?
 
Aula05 camada de aplicação
Aula05 camada de aplicaçãoAula05 camada de aplicação
Aula05 camada de aplicação
 
Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2
 
Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2Apresentacao gt cnc-workshop_iniciliazicao_fase2
Apresentacao gt cnc-workshop_iniciliazicao_fase2
 

gRPC - uma breve introdução.pdf

  • 1. Matheus Donizete - Pedreiro de Software Uma breve introdução
  • 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
  • 10. Protocol Buffers: Ciclo de vida de utilização
  • 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
  • 12. Protocol Buffers: Anatomia de um .proto ● Definição do Serviço ● Bi-direcional uma entrada - uma saída
  • 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