سروس میش کیا ہے؟

دوبارہ ہیلو!.. کورس کے آغاز کے موقع پر "سافٹ ویئر آرکیٹیکٹ" ہم نے ایک اور مفید ترجمہ تیار کیا ہے۔

سروس میش کیا ہے؟

سروس میش ایک قابل ترتیب، کم لیٹنسی انفراسٹرکچر پرت ہے جو ایپلیکیشن پروگرامنگ انٹرفیس (APIs) کے درمیان نیٹ ورک پر مبنی انٹر پروسیس کمیونیکیشن کی بڑی مقدار کو سنبھالنے کے لیے درکار ہے۔ سروس میش کنٹینرائزڈ اور اکثر عارضی ایپلی کیشن انفراسٹرکچر سروسز کے درمیان تیز، قابل اعتماد اور محفوظ مواصلت کو قابل بناتا ہے۔ سروس میش خدمات کی دریافت، لوڈ بیلنسنگ، انکرپشن، شفافیت، ٹریس ایبلٹی، تصدیق اور اجازت، اور آٹو شٹ ڈاؤن پیٹرن سپورٹ (سرکٹ بریکر).
ایک سروس میش عام طور پر ہر سروس مثال کو پراکسی مثال کے ساتھ فراہم کرکے لاگو کیا جاتا ہے، جسے کہا جاتا ہے سائیڈ کار۔ سائیڈ کار خدمات کے درمیان مواصلات کو سنبھالنا، حفاظتی مسائل کی نگرانی اور حل کرنا، یعنی ہر وہ چیز جو انفرادی خدمات سے خلاصی کی جا سکتی ہے۔ اس طرح، ڈویلپرز سروسز میں ایپلیکیشن کوڈ لکھ سکتے ہیں، برقرار رکھ سکتے ہیں اور پیش کر سکتے ہیں، اور سسٹم ایڈمنسٹریٹر سروس میش کے ساتھ کام کر سکتے ہیں اور ایپلیکیشن چلا سکتے ہیں۔

گوگل، آئی بی ایم اور لیفٹ کا اسٹیو فی الحال سب سے مشہور سروس میش فن تعمیر ہے۔ اور Kubernetes، جو اصل میں گوگل پر تیار کیا گیا تھا، اب واحد کنٹینر آرکیسٹریشن فریم ورک ہے جسے Istio کے ذریعے سپورٹ کیا جاتا ہے۔ دکاندار Istio کے تجارتی طور پر تعاون یافتہ ورژن بنانے کی کوشش کر رہے ہیں۔ یہ دیکھنا دلچسپ ہوگا کہ وہ اوپن سورس پروجیکٹ میں کون سی نئی چیزیں لا سکتے ہیں۔

تاہم، Istio واحد آپشن نہیں ہے کیونکہ دیگر سروس میش کے نفاذ کو تیار کیا جا رہا ہے۔ پیٹرن sidecar proxy سب سے زیادہ مقبول نفاذ ہے، جیسا کہ Buoyant، HashiCorp، Solo.io اور دیگر پروجیکٹس سے اندازہ لگایا جا سکتا ہے۔ متبادل آرکیٹیکچرز بھی ہیں: نیٹ فلکس ٹیکنالوجی ٹول کٹ ان طریقوں میں سے ایک ہے جہاں سروس میش کی فعالیت کو ربن، ہائسٹرکس، یوریکا، آرکیئس لائبریریوں کے ساتھ ساتھ Azure سروس فیبرک جیسے پلیٹ فارم کے ذریعے لاگو کیا جاتا ہے۔

سروس میش کی سروس کے اجزاء اور افعال کے لیے بھی اپنی اصطلاحات ہیں:

  • کنٹینر آرکیسٹریشن فریم ورک. چونکہ ایپلی کیشن کے بنیادی ڈھانچے میں زیادہ سے زیادہ کنٹینرز شامل کیے جاتے ہیں، کنٹینرز کی نگرانی اور انتظام کے لیے ایک علیحدہ ٹول کی ضرورت ہے - ایک کنٹینر آرکیسٹریشن فریم ورک۔ Kubernetes نے اس جگہ پر مضبوطی سے قبضہ کر لیا ہے، یہاں تک کہ اس کے اہم حریف Docker Swarm اور Mesosphere DC/OS متبادل کے طور پر Kubernetes کے ساتھ انضمام کی پیشکش کرتے ہیں۔
  • خدمات اور مثالیں (Kubernetes Pods). ایک مثال مائیکرو سروس کی واحد چلتی ہوئی کاپی ہے۔ بعض اوقات ایک مثال ایک کنٹینر ہوتی ہے۔ Kubernetes میں، ایک مثال آزاد کنٹینرز کے ایک چھوٹے سے گروپ پر مشتمل ہوتی ہے جسے پوڈ کہتے ہیں۔ کلائنٹ شاذ و نادر ہی کسی مثال یا پوڈ تک براہ راست رسائی حاصل کرتے ہیں؛ زیادہ کثرت سے، وہ ایک سروس تک رسائی حاصل کرتے ہیں، جو ایک جیسی، توسیع پذیر اور غلطی برداشت کرنے والی مثالوں یا پوڈز (رپلیکس) کا مجموعہ ہے۔
  • سائیڈ کار پراکسی. سائیڈ کار پراکسی ایک مثال یا پوڈ کے ساتھ کام کرتا ہے۔ سائیڈ کار پراکسی کا نقطہ اس کنٹینر سے آنے والی پراکسی ٹریفک کو روٹ کرنا ہے جس کے ساتھ یہ کام کرتا ہے اور ٹریفک کو واپس کرتا ہے۔ Sidecar دوسرے Sidecar Proxies کے ساتھ بات چیت کرتا ہے اور اس کا نظم آرکیسٹریشن فریم ورک کے ذریعے کیا جاتا ہے۔ بہت سے سروس میش نفاذ Sidecar Proxy کو کسی مثال یا پوڈ کے اندر اور باہر تمام ٹریفک کو روکنے اور ان کا نظم کرنے کے لیے استعمال کرتے ہیں۔
  • سروس کی دریافت. جب کسی مثال کو کسی دوسری سروس کے ساتھ بات چیت کرنے کی ضرورت ہوتی ہے، تو اسے دوسری سروس کی صحت مند اور دستیاب مثال تلاش کرنے (دریافت) کرنے کی ضرورت ہوتی ہے۔ عام طور پر، مثال DNS تلاش کرتی ہے۔ کنٹینر آرکیسٹریشن فریم ورک ان مثالوں کی فہرست کو برقرار رکھتا ہے جو درخواستیں وصول کرنے کے لیے تیار ہیں اور DNS سوالات کے لیے ایک انٹرفیس فراہم کرتا ہے۔
  • وزن کو متوازن کرنا. زیادہ تر کنٹینر آرکیسٹریشن فریم ورک پرت 4 (ٹرانسپورٹ) پر بوجھ میں توازن فراہم کرتے ہیں۔ سروس میش لیئر 7 (ایپلی کیشن لیول) پر زیادہ پیچیدہ لوڈ بیلنسنگ کو لاگو کرتی ہے، جو الگورتھم سے بھرپور اور ٹریفک کے انتظام میں زیادہ موثر ہے۔ API کا استعمال کرتے ہوئے لوڈ بیلنسنگ کی ترتیبات کو تبدیل کیا جا سکتا ہے، جس سے آپ نیلے سبز یا کینری تعیناتیوں کو آرکیسٹریٹ کر سکتے ہیں۔
  • خفیہ کاری۔. سروس میش درخواستوں اور جوابات کو خفیہ اور ڈکرپٹ کر سکتا ہے، اس بوجھ کو خدمات سے ہٹاتا ہے۔ سروس میش موجودہ مستقل کنکشن کو ترجیح دے کر یا دوبارہ استعمال کر کے کارکردگی کو بہتر بنا سکتا ہے، نئے کنکشن بنانے کے لیے مہنگے حساب کی ضرورت کو کم کر سکتا ہے۔ ٹریفک کی خفیہ کاری کا سب سے عام نفاذ ہے۔ باہمی TLS (mTLS)جہاں ایک عوامی کلیدی بنیادی ڈھانچہ (PKI) Sidecar Proxy کے استعمال کے لیے سرٹیفکیٹس اور کلیدیں تیار اور تقسیم کرتا ہے۔
  • تصدیق اور اجازت. سروس میش درخواست کے باہر یا اندر سے کی جانے والی درخواستوں کی اجازت اور تصدیق کر سکتا ہے، صرف تصدیق شدہ درخواستوں کو مثال کے طور پر بھیجتا ہے۔
  • آٹو شٹ ڈاؤن پیٹرن سپورٹ. سروس میش سپورٹ کرتا ہے۔ آٹو بند پیٹرن، جو غیر صحت مند مثالوں کو الگ تھلگ کرتا ہے اور پھر ضرورت پڑنے پر آہستہ آہستہ انہیں صحت مند مثالوں کے تالاب میں واپس کرتا ہے۔

سروس میش ایپلی کیشن کا وہ حصہ جو مثالوں کے درمیان نیٹ ورک ٹریفک کا انتظام کرتا ہے کہلاتا ہے۔ ڈیٹا پلین. رویے کو کنٹرول کرنے والی ترتیب بنائیں اور تعینات کریں۔ ڈیٹا پلین، ایک علیحدہ استعمال کرتے ہوئے انجام دیا جاتا ہے۔ طیارہ کنٹرول کریں. طیارہ کنٹرول کریں عام طور پر ایپلی کیشن کو کنٹرول کرنے کے لیے کسی API، CLI، یا GUI سے جڑنے کے لیے شامل یا ڈیزائن کیا گیا ہے۔

سروس میش کیا ہے؟
سروس میش میں کنٹرول پلین سائیڈ کار پراکسی اور ڈیٹا پلین کے درمیان کنفیگریشن کو تقسیم کرتا ہے۔

سروس میش فن تعمیر کو اکثر کنٹینرز اور مائیکرو سروسز کا استعمال کرتے ہوئے پیچیدہ آپریشنل مسائل کو حل کرنے کے لیے استعمال کیا جاتا ہے۔ میدان میں علمبردار مائیکرو سروسز Lyft، Netflix اور Twitter جیسی کمپنیاں ہیں، جو دنیا بھر کے لاکھوں صارفین کو مستحکم خدمات فراہم کرتی ہیں۔ (Netflix کو درپیش تعمیراتی چیلنجوں میں سے کچھ پر ایک تفصیلی نظر ہے۔)۔ کم مطالبہ ایپلی کیشنز کے لئے، آسان فن تعمیر کا امکان کافی ہوگا.

سروس میش فن تعمیر کا کبھی بھی تمام ایپلیکیشن آپریشن اور ڈیلیوری کے مسائل کا جواب ہونے کا امکان نہیں ہے۔ آرکیٹیکٹس اور ڈویلپرز کے پاس ٹولز کا ایک بہت بڑا ہتھیار ہے، اور ان میں سے صرف ایک ہتھوڑا ہے، جسے بہت سے کاموں میں سے، صرف ایک کو حل کرنا ہوگا - ہتھوڑے کے ناخن۔ NGINX سے مائیکرو سروسز کا حوالہ آرکیٹیکچرمثال کے طور پر، کئی مختلف ماڈلز شامل ہیں جو مائیکرو سروسز کا استعمال کرتے ہوئے مسائل کو حل کرنے کے لیے ایک تسلسل فراہم کرتے ہیں۔

وہ عناصر جو سروس میش آرکیٹیکچر میں اکٹھے ہوتے ہیں، جیسے کہ NGINX، کنٹینرز، Kubernetes، اور مائیکرو سروسز بطور تعمیراتی نقطہ نظر، نان سروس میش کے نفاذ میں یکساں طور پر نتیجہ خیز ثابت ہو سکتے ہیں۔ مثال کے طور پر، Istio کو ایک مکمل سروس میش آرکیٹیکچر کے طور پر ڈیزائن کیا گیا تھا، لیکن اس کی ماڈیولرٹی کا مطلب ہے کہ ڈویلپر صرف ان ٹیکنالوجی کے اجزاء کو منتخب اور لاگو کر سکتے ہیں جن کی انہیں ضرورت ہے۔ اس بات کو ذہن میں رکھتے ہوئے، سروس میش کے تصور کی واضح سمجھ پیدا کرنا ضروری ہے، یہاں تک کہ اگر آپ کو یقین نہیں ہے کہ آپ اسے اپنی درخواست میں مکمل طور پر لاگو کرنے کے قابل ہو جائیں گے۔

ماڈیولر monoliths اور DDD

ماخذ: www.habr.com

نیا تبصرہ شامل کریں