SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Christophe GIGAX
Technical Leader @
@ChristopheGigax
Quoi de neuf dans le monde des microservices ?
Philippe DIDIERGEORGES
Solution Architect @
@DePhiless
GRPC
GRPC - Quésaco?
RPC – Remote Procedure Call
gRPC – Google 2015
"A high performance, open source and universal RPC Framework"
grpc.io
GRPC - Quésaco?
• Communication en binaire
• Basé sur des contrats
• HTTP/2
• Multi-environnement
• Sécurisé par défaut
• Streaming uni et bi-directionnel
Histoire des architectures distribuées
RPC Messaging
/ Queuing
COM /
DCOM Java RMI
CORBA
XMLHttp
REST
SOAP
WebSockets
GraphQL
gRPC
GRPC – Est-ce la mort de REST et JSON?
NON.
GRPC est-il fait pour le web?
• Support des navigateurs pour le moment
• Difficile à parser pour du JavaScript
Le bon protocole pour le bon usage
• REST: web apps
• SignalR: Multicast et messagerie web
• GraphQL: Système de requête ouvert
• gRPC: Inter services, streaming, mobile, embarqué...
Les Contrats
Définition d'interface avec le language Protobuf
• Génération de code pour le client et le serveur
• Implémentation pour les principaux languages
• C++
• Java
• .Net
• Python
• Ruby
• Go
• NodeJS
• Obj-C
Protobuf: language auto-descriptif
Réponse JSON: Réponse gRPC avec Protobuf:
{
'id': 123,
'firstName': 'Philippe'
'lastName': 'Didiergeorges',
'age': 35,
'city': 'Strasbourg'
}
1:123
2:Philippe
3:Didiergeorges
4:35
5:Strasbourg
GRPC sur ASP.Net Core
DEMO
GRPC sur ASP.Net Core
Conclusion
Ce que l’on vient de voir
Migrer des services REST vers gRPC:
1. Créer le contrat avec protobuf
2. Les modèles sont générés automatiquement
3. Création du service
4. Consommation du service
Avantages
• Définition centralisée des contrats
• Agnostique des languages
• Intégration native à ASP.Net Core 3+
• Echanges sécurisés
• Performances optimales
DAPR
Les architectures microservices
Pourquoi les microservices ?
• Focus sur un aspect métier de l’application
• Autonomie
• Flexibilité
• Scalabilité
• Développement indépendant
• Déploiement indépendant
• Plus petit, mais plus performant
Les difficultés
• Le debug
• Testabilité
• Complexité accrue de l’architecture
• Interdépendance des services
• Maîtrise des flux dans l’application
Les architectures microservices
Difficulté de migration d’un
bloc monolithique vers une
architecture microservice
Runtime non adapté et
support des langages
limités non-orienté pour le
microservice
Application spécifique à
une infrastructure /
plateforme avec portage
limité vers le Cloud ou
l’Edge
https://dapr.io
Distributed Application
Runtime
Portable, event-driven, runtime pour la
création d’applications distribués au sein
du Cloud et dans le Edge Computing
L’objectif de Dapr
Agnostique à la plateforme
Cloud + Edge
Les bases de Dapr
Service-
to- service
invocation
State
management
Publish
and
subscribe
Resource
bindings
and triggers
Actors Distributed
tracing
Secrets
HTTP API gRPC API
Extensible
Application code
Any code or framework…
Microservices written in
API standard accessible via HTTP ou gRPC depuis le code du microservice
http://localhost:3500/v1.0/state/inventory/orderkey
http://localhost:3500/v1.0/invoke/myapp/method/neworder
Fonctionnant en local sous forme d’un composant “sidecar” chargé au runtime pour chaque service
Exemple en local
State stores
Publish & subscribe
Resource bindings
Scanning
for events
Dapr APIDapr API
Messaging
Load and
save state
Service
code B
Service
code A
Input/output
Application
Sidecar Sidecar
Secure communication with mTLS
Tracing, logs
and metrics
Tracing, logs
and metrics
Dapr en local
DEMO
Service invocation
“frontend”
“cart”
Post
http://localhost:3500/v1.0/invoke/cart/method/checkout
{
"user":"johndoe",
"cart":"0001"
}
Post
http://10.0.0.2:8000/checkout
{
"user":"johndoe",
"cart":"0001"
}
Exemple sur Kubernetes
1
Pod
Update component changesUpdates actor partition placement
Injects Dapr runtime
Components
Component
management
Deploys and manages Dapr
Any cloud or edge infrastructure
Publish & subscribe
State stores
Resource bindings
Input/outputPod
C O N T A I N E R
Actor Placement
Pod
C O N T A I N E R
Sidecar Injector
Pod
C O N T A I N E R
Operator
Dapr API
HTTP or gRPC
Uses components
C O N T A I N E R
Sidecar
C O N T A I N E R
Application code
Pod
C O N T A I N E R
Sentry
Certificate Authority
Distributed Tracing
Prometheus AppInsightts Jaeger
Dapr sur Kubernetes
DEMO
La collecte d’insights via un tronc commun
App InsightsDatadogInstanaJaegerSignalFXPrometheus+ many more
App Insights
Azure Monitor
+ many more
Datadog
Instana
Jaeger
SignalFX
Prometheus
App
“frontend”
App
“backend”
OpenCensus
https://github.com/dapr/dapr#community
1
Get involved
https://github.com/dapr/dapr#community
Questions ?
.NET Conf
“Focus on microservice”
https://focus.dotnetconf.net/

Contenu connexe

Similaire à Talk gRPC et Dapr

Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...sebastienmoreno
 
Facilitez vos déploiements d’applications Microsoft et répondez aux nouvelles...
Facilitez vos déploiements d’applications Microsoft et répondez aux nouvelles...Facilitez vos déploiements d’applications Microsoft et répondez aux nouvelles...
Facilitez vos déploiements d’applications Microsoft et répondez aux nouvelles...Microsoft Décideurs IT
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsStephane Woillez
 
Cartographie - cas concrets et bonnes pratiques de développement
Cartographie - cas concrets et bonnes pratiques de développementCartographie - cas concrets et bonnes pratiques de développement
Cartographie - cas concrets et bonnes pratiques de développementNicolas Boonaert
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Kuberbetes 101: Unlocking containerisation’s full potential
Kuberbetes 101: Unlocking containerisation’s full potentialKuberbetes 101: Unlocking containerisation’s full potential
Kuberbetes 101: Unlocking containerisation’s full potentialOVHcloud
 
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Cedric Girard
 
Denodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo
 
Session GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraDNG Consulting
 
L'automatisation dans les reseaux d'entrerprise
L'automatisation dans les reseaux d'entrerpriseL'automatisation dans les reseaux d'entrerprise
L'automatisation dans les reseaux d'entrerpriseCisco Canada
 
Big Data & Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Big Data & Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Big Data & Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Big Data & Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]IBM France PME-ETI
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiSamir Arezki ☁
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiAZUG FR
 
Formation phonegap android ios windows phone blackberryos
Formation phonegap   android ios windows phone blackberryosFormation phonegap   android ios windows phone blackberryos
Formation phonegap android ios windows phone blackberryosEGILIA Learning
 
Introduction to WebRTC on iOS
Introduction to WebRTC on iOSIntroduction to WebRTC on iOS
Introduction to WebRTC on iOSCocoaHeads France
 
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesLes Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesTristan Nitot
 

Similaire à Talk gRPC et Dapr (20)

Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
 
Facilitez vos déploiements d’applications Microsoft et répondez aux nouvelles...
Facilitez vos déploiements d’applications Microsoft et répondez aux nouvelles...Facilitez vos déploiements d’applications Microsoft et répondez aux nouvelles...
Facilitez vos déploiements d’applications Microsoft et répondez aux nouvelles...
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
 
Cartographie - cas concrets et bonnes pratiques de développement
Cartographie - cas concrets et bonnes pratiques de développementCartographie - cas concrets et bonnes pratiques de développement
Cartographie - cas concrets et bonnes pratiques de développement
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
12-Factor
12-Factor12-Factor
12-Factor
 
LyonJUG-2023-v1.0.pdf
LyonJUG-2023-v1.0.pdfLyonJUG-2023-v1.0.pdf
LyonJUG-2023-v1.0.pdf
 
Kuberbetes 101: Unlocking containerisation’s full potential
Kuberbetes 101: Unlocking containerisation’s full potentialKuberbetes 101: Unlocking containerisation’s full potential
Kuberbetes 101: Unlocking containerisation’s full potential
 
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
 
Denodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie APIDenodo, pilier central de votre stratégie API
Denodo, pilier central de votre stratégie API
 
Session GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 Cobra
 
Débreffage du projet Territoire
Débreffage du projet TerritoireDébreffage du projet Territoire
Débreffage du projet Territoire
 
L'automatisation dans les reseaux d'entrerprise
L'automatisation dans les reseaux d'entrerpriseL'automatisation dans les reseaux d'entrerprise
L'automatisation dans les reseaux d'entrerprise
 
Big Data & Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Big Data & Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Big Data & Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Big Data & Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 
Formation phonegap android ios windows phone blackberryos
Formation phonegap   android ios windows phone blackberryosFormation phonegap   android ios windows phone blackberryos
Formation phonegap android ios windows phone blackberryos
 
Introduction to WebRTC on iOS
Introduction to WebRTC on iOSIntroduction to WebRTC on iOS
Introduction to WebRTC on iOS
 
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernesLes Nouveaux Standards et leur implémentation dans les navigateurs modernes
Les Nouveaux Standards et leur implémentation dans les navigateurs modernes
 

Talk gRPC et Dapr

  • 1.
  • 2. Christophe GIGAX Technical Leader @ @ChristopheGigax Quoi de neuf dans le monde des microservices ? Philippe DIDIERGEORGES Solution Architect @ @DePhiless
  • 4. GRPC - Quésaco? RPC – Remote Procedure Call gRPC – Google 2015 "A high performance, open source and universal RPC Framework" grpc.io
  • 5. GRPC - Quésaco? • Communication en binaire • Basé sur des contrats • HTTP/2 • Multi-environnement • Sécurisé par défaut • Streaming uni et bi-directionnel
  • 6. Histoire des architectures distribuées RPC Messaging / Queuing COM / DCOM Java RMI CORBA XMLHttp REST SOAP WebSockets GraphQL gRPC
  • 7. GRPC – Est-ce la mort de REST et JSON? NON. GRPC est-il fait pour le web? • Support des navigateurs pour le moment • Difficile à parser pour du JavaScript
  • 8. Le bon protocole pour le bon usage • REST: web apps • SignalR: Multicast et messagerie web • GraphQL: Système de requête ouvert • gRPC: Inter services, streaming, mobile, embarqué...
  • 9. Les Contrats Définition d'interface avec le language Protobuf • Génération de code pour le client et le serveur • Implémentation pour les principaux languages • C++ • Java • .Net • Python • Ruby • Go • NodeJS • Obj-C
  • 10. Protobuf: language auto-descriptif Réponse JSON: Réponse gRPC avec Protobuf: { 'id': 123, 'firstName': 'Philippe' 'lastName': 'Didiergeorges', 'age': 35, 'city': 'Strasbourg' } 1:123 2:Philippe 3:Didiergeorges 4:35 5:Strasbourg
  • 11. GRPC sur ASP.Net Core DEMO
  • 12. GRPC sur ASP.Net Core Conclusion
  • 13. Ce que l’on vient de voir Migrer des services REST vers gRPC: 1. Créer le contrat avec protobuf 2. Les modèles sont générés automatiquement 3. Création du service 4. Consommation du service
  • 14. Avantages • Définition centralisée des contrats • Agnostique des languages • Intégration native à ASP.Net Core 3+ • Echanges sécurisés • Performances optimales
  • 15. DAPR
  • 16. Les architectures microservices Pourquoi les microservices ? • Focus sur un aspect métier de l’application • Autonomie • Flexibilité • Scalabilité • Développement indépendant • Déploiement indépendant • Plus petit, mais plus performant Les difficultés • Le debug • Testabilité • Complexité accrue de l’architecture • Interdépendance des services • Maîtrise des flux dans l’application
  • 17. Les architectures microservices Difficulté de migration d’un bloc monolithique vers une architecture microservice Runtime non adapté et support des langages limités non-orienté pour le microservice Application spécifique à une infrastructure / plateforme avec portage limité vers le Cloud ou l’Edge
  • 18. https://dapr.io Distributed Application Runtime Portable, event-driven, runtime pour la création d’applications distribués au sein du Cloud et dans le Edge Computing
  • 19. L’objectif de Dapr Agnostique à la plateforme Cloud + Edge
  • 20. Les bases de Dapr Service- to- service invocation State management Publish and subscribe Resource bindings and triggers Actors Distributed tracing Secrets HTTP API gRPC API Extensible Application code Any code or framework… Microservices written in API standard accessible via HTTP ou gRPC depuis le code du microservice http://localhost:3500/v1.0/state/inventory/orderkey http://localhost:3500/v1.0/invoke/myapp/method/neworder Fonctionnant en local sous forme d’un composant “sidecar” chargé au runtime pour chaque service
  • 21. Exemple en local State stores Publish & subscribe Resource bindings Scanning for events Dapr APIDapr API Messaging Load and save state Service code B Service code A Input/output Application Sidecar Sidecar Secure communication with mTLS Tracing, logs and metrics Tracing, logs and metrics
  • 24. Exemple sur Kubernetes 1 Pod Update component changesUpdates actor partition placement Injects Dapr runtime Components Component management Deploys and manages Dapr Any cloud or edge infrastructure Publish & subscribe State stores Resource bindings Input/outputPod C O N T A I N E R Actor Placement Pod C O N T A I N E R Sidecar Injector Pod C O N T A I N E R Operator Dapr API HTTP or gRPC Uses components C O N T A I N E R Sidecar C O N T A I N E R Application code Pod C O N T A I N E R Sentry Certificate Authority Distributed Tracing Prometheus AppInsightts Jaeger
  • 26. La collecte d’insights via un tronc commun App InsightsDatadogInstanaJaegerSignalFXPrometheus+ many more App Insights Azure Monitor + many more Datadog Instana Jaeger SignalFX Prometheus App “frontend” App “backend” OpenCensus
  • 27.
  • 30. Questions ? .NET Conf “Focus on microservice” https://focus.dotnetconf.net/

Notes de l'éditeur

  1. Find All references CTRL + T (Aller A) Lightweight solution Object initialisation Live Unit Testing
  2. Find All references CTRL + T (Aller A) Lightweight solution Object initialisation Live Unit Testing
  3. Find All references CTRL + T (Aller A) Lightweight solution Object initialisation Live Unit Testing
  4. Find All references CTRL + T (Aller A) Lightweight solution Object initialisation Live Unit Testing
  5. Find All references CTRL + T (Aller A) Lightweight solution Object initialisation Live Unit Testing
  6. Find All references CTRL + T (Aller A) Lightweight solution Object initialisation Live Unit Testing