Skip to content

gRPC

Protobuf, স্ট্রিমিং, ইন্টারসেপ্টর, TLS

0/11 অধ্যায় · 0 XP অর্জিত

  1. 00 gRPC তৈরি — রোডম্যাপ দশটি অধ্যায় যা আপনাকে 'protobuf একটা config language' থেকে শুরু করে একটা polyglot, mTLS দিয়ে সুরক্ষিত, observable gRPC service পর্যন্ত নিয়ে যাবে — যা nginx-এর পেছনে চলছে, streaming RPC আর টাইট deadline সহ।
  2. 01 gRPC কী আর কখন ব্যবহার করবেন gRPC হলো HTTP/2, সাথে protobuf, সাথে codegen। এই তিনটা মিলে আপনাকে একটা typed, দ্রুত, polyglot RPC system দেয়। প্রতিটা layer কী করছে সেটা জানাই এটা ভালোভাবে ব্যবহার করার অর্ধেক দক্ষতা।
  3. 02 Protocol Buffers Protobuf হলো schema language আর wire format। schema-র নিয়মগুলো ঠিকঠাক করুন, আপনার service গুলো এক দশক ধরে compatible থাকবে। ভুল করুন, একটা খারাপ commit-ই একসাথে প্রতিটা client ভেঙে ফেলবে।
  4. 03 নিচে যে HTTP/2 চলছে gRPC হলো HTTP/2 — একটা নির্দিষ্ট সেট হেডার আর protobuf বাইটকে ফ্রেম করার একটা নির্দিষ্ট উপায় সহ। HTTP/2 আসলে কী করে সেটা জানলে প্রোডাকশনে আপনি যত gRPC failure mode-এ পড়বেন তার সবগুলোই ব্যাখ্যা হয়ে যায়।
  5. 04 আপনার প্রথম server আর client এক অধ্যায়ে end-to-end Go gRPC — proto, codegen, server, client, reflection, grpcurl। শেষে আপনার হাতে একটা সত্যিকারের binary থাকবে যা আপনি deploy করতে পারবেন।
  6. 05 Polyglot — Node আর Python client একই `.proto`, তিন ভাষা। gRPC-এর পুরো বক্তব্যই হলো wire শেয়ার্ড আর codegen ফ্রি। একবার করে ফেললে এটা আর জাদু মনে হয় না।
  7. 06 স্ট্রিমিং RPC স্ট্রিম হলো gRPC-র সেই অংশ যেখানে এটা আর REST-এর মতো দেখতে থাকে না। Server-streaming, client-streaming, আর bidirectional — তিনটা শেপ যা বদলে দেয় আপনি কেমন ধরনের সার্ভিস বানাতে পারবেন।
  8. 07 Errors, deadlines, metadata স্ট্যাটাস কোড একটা নির্দিষ্ট সেট, deadline context-এর সাথে বয়ে চলে, metadata প্রতিটা কলে সওয়ার হয়। তিনটা একসাথে একটা কাজ-করা gRPC সার্ভিসকে debuggable আর survivable বানিয়ে দেয়।
  9. 08 Interceptors Interceptor হলো gRPC-র middleware। Cross-cutting concern — auth, logging, tracing, retry, panic recovery — এখানে থাকে, একবার, প্রতিটা RPC-র জন্য। layering ঠিকঠাক করলে আপনার হ্যান্ডলার ছোট থেকে যায়।
  10. 09 TLS ও mTLS Server TLS ওয়্যার এনক্রিপ্ট করে এবং server-এর identity প্রমাণ করে। Mutual TLS ক্লায়েন্টদের জন্য একই প্রমাণ যোগ করে। দুটোই একই handshake-এর উপর চড়ে — আর একবার ছোট একটা CA থাকলে, দুটোই কয়েক লাইনের Go।
  11. 10 Production self-host এমন load balancing যা HTTP/2-কে সম্মান করে, এমন observability যা আপনি আসলেই কাজে লাগান, framework-সমর্থিত health check, এবং একটা VPS-এ পূর্ণ systemd + nginx deploy।