=

Úvod do gRPC

gRPC je jednoduchý moderní framework, založený na vzdáleném volání procedur. Vysoká výkonnost, platformní nezávislost, jednoduchost a skvělá podpora v ASP.NET Core staví tento framework do pozice následovníka umírajících WCF. Technologii gRPC oceníte při vývoji rychlých mikroslužeb, které spolu kromě synchronní komunikace mohou komunikovat v reálném čase a využít naplno možností protokolu HTTP/2.

Možná vás teď napadá plno otázek...

  • Proč používat gRPC? - jsou velmi rychlé, postavené na metodice contract-first
  • Proč je contract-first výhoda? - gRPC lze používat ve všech frameworcích
  • V čem spočívá rychlost gRPC? - zejména v efektivním použití HTTP/2 protokolu
  • Je vývoj gRPC služeb složitý? - je to srovnatelné s vývojem REST služeb
  • Na co se nejvíce gRPC hodí? - na synchronní komunikaci mezi mikroslužbami
  • Jsou gRPC vhodné i pro web? - ano, .NET to umožňuje jednoduše skrze proxy
  • Máme nahradit REST za gRPC? - ne, každý druh služeb má jiné využití a specifika
  • Jsou gRPC náhradou WCF? - myšlenkově ano, ale je zde i mnoho odlišností
  • Trvá dlouho se gRPC naučit? - naučím vás to za jeden den v rámci mého školení

Ale popořadě. Připravil jsem pár stránek, kde se o gRPC dozvíte to nejdůležitější. Níže je tématický rozcestník.

Komunikace

Efektivní komunikace v gRPC službách je zajištěna spojením HTTP/2 protokolu a Protobuf serializaci. HTTP/2 protokol přinesl mnoho vylepšení, na kterých jsou gRPC služby postaveny. Základním pilířem je tzv. framing a využití streamování z klienta na server, ze serveru na klienta nebo v obou směrech. Rychlost zvyšuje i výkonná binární serializace do formátu Protocol Buffers, který je též úsporný při přenosu po síti.

Protobuf

Protocol Buffers představují multiplatformní a jazykově neutrální mechanismus pro binární serializaci dat. Protobuf je jednoduchý předpis, který popisuje webovou službu a zprávy, které odesílá a přijímá. Bohatá nabídka nástrojů pro různé platformy umožňuje na základě specifikace Protobuf generovat například klientské knihovny nebo dokumentaci. Serializace pomocí Protobuf je výrazně rychlejší než v případě jiných formátů (JSON, XML) a zároveň úspornější z hlediska přenosu dat.

Návrh gRPC služeb

Kromě formátu Protobuf je možné navrhovat gRPC služby výhradně s využitím jazyka C# a .NET frameworku. Tento přístup vyhovuje zejména týmům přecházejícím z WCF frameworku a firmám, které svá API používají pro vnitrofiremní komunikaci v rámci .NET platformy. Vývoj a komunikace s gRPC službami se tak výrazně zjednodušuje, protože veškeré kontrakty lze sdílet mezi projekty ve formě NuGet balíčků.

Reflection

Pro účely vystavení kontraktů a testování gRPC služeb lze použít tzv. reflection services. Ty dokáží zpětně objevit veškeré API endpointy včetně kontraktů a vystavit endpoint se specifikací gRPC služby. Reflection je velmi podobný mechanismu Swashbuckle Swagger, který se používá u REST API. Mechanismus lze použít jak v režimu práce s Protobuf soubory, tak v případě přístupu Code-First bez souborů proto.

Nástroje

Zkombinujete-li osvědčené přístupy pro návrh gRPC služeb, otevře se vám cesta k několika nástrojům pro testování gRPC služeb. Tyto nástroje Vám umožní zkoumat gRPC služby z příkazové řádky (CLI) nebo pomocí grafického rozhraní. Spustit je lze lokálně na vývojářském počítači a kromě základních scénářů typu request-response testovat i práci se streamy.

Web a gRPC

Dnes už nejsou gRPC jen službami pro výměnu dat mezi aplikačními systémy. V prostředí .NETu lze gRPC použít i ve scénáři klient - server, kde je klientem například webová aplikace napsaná v Blazoru. Kombinace UI frameworku a gRPC služeb výrazně zrychluje komunikaci. Vše je postaveno na tzv. proxy, kterou lze v případě .NET platformy používat v nativní podobě middlewaru.

Hlavní nabídka

🏚️ Úvod do gRPC
✍️ Historie a .NET
✍️ Komunikace
✍️ Protobuf
✍️ Návrh služeb
✍️ Reflection
✍️ Cheatsheet
🧑‍🎓 Školení

Miroslav Holec

Miroslav Holec

Jsem nezávislý konzultant a lektor na volné noze se zaměřením na vývojářské technologie Microsoftu. Školím ve firmách po celé České republice a na Slovensku.

kontakt zde

Dotazy, poptávky a objednávky

mirek@miroslavholec.cz
Loading