पाठ 20 / 26

Gateway या Mesh चुनना

लोकप्रिय विकल्पों की सुविधाओं, संचालन और लागत पर तुलना करें।

कोई सार्वभौमिक विजेता नहीं

Gateways के लिए: NGINX और HAProxy तेज़, आज़माए हुए reverse proxies हैं जो files से configure होते हैं; Kong और Apache APISIX (NGINX/OpenResty पर बने) plugins, admin API और developer ecosystem जोड़ते हैं; Envoy programmable proxy है जो कई gateways और meshes को चलाता है; Traefik container और Kubernetes auto-discovery के लिए लोकप्रिय है; managed gateways (Amazon API Gateway, Azure API Management, Google Cloud API Gateway/Apigee) vendor lock-in और प्रति-अनुरोध लागत के बदले संचालन हटाते हैं। Meshes के लिए: Istio सबसे सुविधा-संपन्न (और जटिल) है, Linkerd सरलता और कम overhead को प्राथमिकता देता है, Consul मिश्रित VM और Kubernetes परिवेशों के लिए ठीक है, और Cilium networking व वैकल्पिक mesh सुविधाओं के लिए eBPF उपयोग करता है। टीम के कौशल, platform (Kubernetes हो या नहीं), अनुपालन आवश्यकताओं और आप कितना संचालन-काम उठा सकते हैं, इससे चुनें। Features और उत्पाद नाम जल्दी बदलते हैं, इसलिए मौजूदा दस्तावेज़ देखें।

Tools, trade-offs, जाल

ज़रूरत पूरी करने वाला सबसे सरल tool चुनें और योजना बनाएँ कि उसे कैसे चलाएँगे, upgrade करेंगे और debug करेंगे।

तीन सवाल: कौन-सा tool, कैसे चलाएँ, क्या बिगड़ सकता है।
चित्र 6.1 — कौन-सा tool, कैसे चलाएँ और क्या बिगड़ सकता है।

निर्णय मार्गदर्शिका

विकल्प घटाने का शुरुआती बिंदु; छोटे proof of concept से पुष्टि करें।

Need                                           Reasonable starting choice
Simple routing + TLS + rate limit, few services  NGINX / HAProxy / Traefik
Public API with keys, plans, portal, analytics   Kong / APISIX / managed API gateway
No ops team, all-in on one cloud                 managed cloud API gateway
Kubernetes, want mTLS + retries + canaries       Linkerd (simple) or Istio (feature-rich)
Mixed VMs + Kubernetes                           Consul
< ~10 services, one team                         probably no mesh at all

त्वरित जाँच: Service mesh शायद कब अनावश्यक है?

  • कई भाषाओं में सैकड़ों services हों
  • एक टीम के पास मुट्ठी भर services हों
  • जब हर जगह mTLS अनिवार्य हो
  • जब टीमों को एक-से retries और telemetry चाहिए
Answer

एक टीम के पास मुट्ठी भर services हों — Mesh जटिलता जोड़ता है जो बड़े पैमाने और बहुभाषी टीमों में फ़ायदा देती है।