gRPC: Up and Running. بناء تطبيقات سحابية باستخدام Go و gRPC
gRPC: Up and Running. بناء تطبيقات سحابية باستخدام Go و gRPC
ملخص:
مقدمة
كتاب «gRPC: Up and Running» (المؤلفان Kasun Indrasiri و Danesh Kuruppu، عام 2020، 265 صفحة) هو دليل عملي لبناء تطبيقات سحابية حديثة باستخدام إطار عمل gRPC بلغة Go (Golang). على الرغم من أن موقع PythonLib مخصص للغة Python، إلا أن هذا الكتاب يستحق اهتمام أي مطور مهتم بهندسة الخدمات المصغرة وبروتوكولات الاتصال عالية الأداء. gRPC هي تقنية تُستخدم بنشاط في نظام Python البيئي (على سبيل المثال، من خلال مكتبات grpcio)، وفهم أساسياتها من خلال مثال Go يعطي فهماً عميقاً للمبادئ التي يمكن نقلها بسهولة إلى Python.
عن ماذا يتحدث الكتاب
يقدم الكتاب القارئ إلى gRPC بشكل متسلسل: من التثبيت والإعداد إلى النشر في بيئة الإنتاج. يبدأ المؤلفون بالأساسيات - ما هو gRPC، وكيف يختلف عن REST، وكيف يعمل HTTP/2 و Protocol Buffers. ثم ينتقلون إلى إنشاء الخوادم والعملاء بلغة Go، والعمل مع التدفقات (streaming)، ومعالجة الأخطاء، والمصادقة، وموازنة التحميل، والمراقبة. تم تخصيص فصول منفصلة للتكامل مع Kubernetes و gRPC-web.
لمن هذا الكتاب
الكتاب موجه للمطورين الذين هم على دراية بلغة Go بالفعل (على الرغم من أن الأمثلة الأساسية واضحة حتى للمبتدئين). سيكون مفيداً لـ:
- مطوري Go الذين يرغبون في إتقان gRPC للخدمات المصغرة؛
- مطوري Python الذين يريدون فهم gRPC من الداخل (العديد من المفاهيم متطابقة)؛
- المهندسين المعماريين الذين يصممون أنظمة عالية الأداء؛
- كل من ينتقل من REST إلى gRPC.
ماذا سيتعلم القارئ
بعد القراءة، ستتمكن من:
- فهم مبادئ gRPC واختلافاته عن REST؛
- إنشاء ملفات .proto فعالة وتوليد الكود؛
- تنفيذ RPC أحادي (unary) وتدفقي (streaming) (server-streaming, client-streaming, bidirectional)؛
- إعداد المصادقة (SSL/TLS, الرموز المميزة)؛
- دمج gRPC مع Kubernetes و Envoy؛
- تصحيح الأخطاء وتحليل أداء خدمات gRPC.
نقاط القوة
الميزة الرئيسية للكتاب هي التوجه العملي. يحتوي كل فصل على أمثلة جاهزة للكود بلغة Go يمكن تشغيلها فوراً. يهتم المؤلفون ليس فقط بالنظرية، ولكن أيضاً بالمشكلات الحقيقية: المهلات الزمنية، وإعادة المحاولات، وموازنة التحميل. الكتاب مكتوب بلغة حية، ويتم شرح المفاهيم المعقدة من خلال المقارنات. تجدر الإشارة بشكل خاص إلى الفصل الخاص بـ gRPC-web - وهذا أمر نادر في أدبيات عام 2020.
لمن يُوصى به
أوصي بهذا الكتاب لكل من يعمل مع الخدمات المصغرة، بغض النظر عن اللغة الأساسية. بالنسبة لمطوري Python، سيكون إضافة ممتازة للوثائق الرسمية لـ grpcio، حيث يظهر "وجهة نظر من الخارج" - بلغة Go، ولكن بنفس المبادئ. إذا كنت تريد فهم gRPC بعمق والبدء في استخدامه في مشاريعك - فهذه أفضل بداية.