gRPC
gRPC, også kjent som Google Remote Procedure Calls,[1][2] er et system for eksterne prosedyrekall bygd på åpen kildekode. gRPC ble opprinnelig utviklet av Google i 2015 som en videreutvikling av deres egen RPC-infrastruktur brukt internt under navnet Stubby. gPRC ble lansert i 2016.[3][4][5] Den bruker HTTP/2 for transport, Protocol Buffers som beskrivelsesspråk for grensesnittet, og gir funksjoner som autentisering, toveisstrømming og flytkontroll, blokkerende eller ikke-blokkerende bindinger, samt kansellering og tidsavbrudd. Den lager kryssplattform-bindinger mellom klient/tjener for mange språk. De vanligste bruksscenariene inkluderer tilkobling av tjenester i en mikrotjenestearkitektur eller kobling av mobilklienter til backend-tjenester.[5]
gRPC sin komplekse bruk av HTTP/2 gjør det umulig å implementere en gRPC-klient i nettleseren, og krever istedet en mellomtjener.[6]
Autentisering
[rediger | rediger kilde]gRPC støtter bruk av TLS og tokenbasert autentisering. Tilkobling til Google-tjenester må bruke TLS. Det finnes to typer legitimasjon: kanal-legitimasjon og kall-legitimasjon (henholdsvis channel credentials og call credentials).[7]
Enkoding
[rediger | rediger kilde]gRPC bruker Protocol Buffers for å enkode data. I motsetning til REST API-er med JSON har gRPC en strengere spesifikasjon. På grunn av at man har en enkelt spesifikasjon å forholde seg til eliminerer gRPC diskusjoner og sparer utviklingstid ettersom gRPC er konsekvent på tvers av plattformer og implementeringer.[8]
Adopsjon
[rediger | rediger kilde]En rekke ulike organisasjoner har tatt i bruk gRPC, for eksempel Uber,[9] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks,[10] Spotify,[11] Zalando[12] og Dropbox.[13]
Åpen kildekode-prosjektet u-bmc bruker gRPC for å erstatte Intelligent Platform Management Interface (IPMI).[14] Den 8. januar 2019 annonserte Dropbox at den neste versjonen RPC-rammeverket deres "Courier", som ligger i kjernen av deres tjenesteorienterte arkitektur, ville migreres over til å være basert på gRPC, først og fremst fordi det passer bra med deres eksisterende spesialtilpassede RPC-rammeverk.[15]
Se også
[rediger | rediger kilde]Referanser
[rediger | rediger kilde]- ^ «FAQ». gRPC.
- ^ «FAQ».
- ^ «gRPC: a true internet-scale RPC framework is now 1.0 and ready for production deployments | Google Cloud Blog».
- ^ «Introducing gRPC, a new open source HTTP/2 RPC Framework».
- ^ a b «About gRPC». Besøkt 25. mai 2021.
- ^ «The state of gRPC in the browser».
- ^ «gRPC». Besøkt 24. februar 2020.
- ^ JamesNK. «Compare gRPC services with HTTP APIs». Besøkt 24. februar 2020.
- ^ «gRPC at Uber».
- ^ «gRPC». Besøkt 24. februar 2020.
- ^ «gRPC at Spotify» (PDF). Besøkt 12. mai 2020.
- ^ «Zalando Tech Radar». Besøkt 8. april 2021.
- ^ «How we migrated Dropbox from Nginx to Envoy». Besøkt 30. oktober 2020.
- ^ «u-bmc».
- ^ Nigmatullin, Ruslan. «Courier: Dropbox migration to gRPC». Besøkt 9. januar 2019.