آئیستیوں کے ساتھ سروس میش کا ماسٹر

آئیستیوں کے ذریعے مائیکروسروسز کی طاقت کو بے نقاب کریں۔

آئیستیوں کے ساتھ سروس میش آرکیٹیکچر کا ماسٹر

1. تعارف

سروس میش آرکیٹیکچر کی جادوئی دنیا کو دریافت کریں اور دیکھیں کہ یہ آپ کے تقسیم شدہ نظاموں کو کس طرح طاقتور بناتا ہے۔

آئیستیوں میں گہرائی تک جائیں، جو سروس میش کا ستارہ ہے، اور سیکھیں کہ یہ آپ کے کیوبیرنیٹس کلسٹر کو کس طرح بہترین انداز میں منظم کرتا ہے۔

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

مونولیتھک ایپلیکیشنز اب چھوٹے، خود مختار سروسز میں تبدیل ہو چکی ہیں۔ یہ تبدیلی کلاؤڈ نیٹیو کمپیوٹنگ اور مائیکروسروسز آرکیٹیکچر کے ساتھ بے حد مقبول ہوئی۔ ڈوکر اور کیوبیرنیٹس جیسے ٹولز نے اس رجحان کو تیز کر دیا۔

کیوبیرنیٹس جیسے پلیٹ فارم پر مائیکروسروسز بے شمار فوائد پیش کرتے ہیں، لیکن یہ پیچیدگیاں بھی لاتے ہیں۔ ان تقسیم شدہ سروسز کے درمیان رابطے کا انتظام کرنے کے لئے تلاش، روٹنگ، دوبارہ کوشش، اور ناکامی کی بحالی پر غور کرنا ضروری ہے۔

مزید چیلنجز میں سیکیورٹی اور نگرانی شامل ہیں۔

مشین A
سروس A
ٹریفک مینجمنٹ
سیکیورٹی
نگرانی
مشین B
سروس B
ٹریفک مینجمنٹ
سیکیورٹی
نگرانی

ہر سروس میں کمیونیکیشن کی صلاحیتیں شامل کرنا وقت طلب ہے، خاص طور پر جب سروس کا منظر نامہ بڑھتا ہے۔ یہی وہ جگہ ہے جہاں سروس میش چمکتا ہے۔ یہ ایک تقسیم شدہ نظام کے اندر تمام سروس-ٹو-سروس کمیونیکیشن کا خیال رکھتا ہے۔

سروس میش یہ کام نیٹ ورک پروکسیوں کے ذریعے کرتا ہے۔ سروسز کے درمیان درخواستیں ان پروکسیوں کے ذریعے روٹ کی جاتی ہیں، جو خدمات کے باہر بنیادی ڈھانچے کی سطح پر موجود ہوتی ہیں:

مشین A
پروکسی
سروس A
ٹریفک مینجمنٹ
سیکیورٹی
نگرانی
مشین B
پروکسی
سروس B
ٹریفک مینجمنٹ
سیکیورٹی
نگرانی

یہ پروکسی سروسز کے لئے ایک میش نیٹ ورک بناتی ہیں، اسی لئے اسے سروس میش کہا جاتا ہے۔ سروس میش سروس-ٹو-سروس کمیونیکیشن کے ہر پہلو کو کنٹرول کرتا ہے، جس سے یہ تقسیم شدہ کمپیوٹنگ کی آٹھ غلطیوں کا سامنا کرنے کے قابل ہو جاتا ہے۔

3. سروس میش کی سپر پاورز

اپنی خدمات کی مکمل صلاحیت کو آزاد کریں سروس میش کے ساتھ! دریافت کریں کہ یہ جادوئی ٹول آپ کی ایپلیکیشن کے منظر نامے کو کیسے تبدیل کر سکتا ہے۔

چلو اس جادو کو تین بنیادی صلاحیتوں میں توڑتے ہیں: ٹریفک کی جادوگری، مضبوط سیکیورٹی، اور شفاف بصیرت۔

3.1. ٹریفک کی جادوگری

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

غیر یقینی روابط کو الوداع کہیں! سروس میش آپ کی خدمات کو قابل اعتماد کی نرم چادر میں لپیٹتا ہے، جو دوبارہ کوششیں، وقت کی حدیں، شرح کی حد بندی، اور سرکٹ بریکر فراہم کرتا ہے تاکہ آپ کے ایپلیکیشنز کو بے قاعدگیوں سے بچا سکے۔

3.2. مضبوط سیکیورٹی

اپنی خدمات کو ناقابل تسخیر قلعے کے ساتھ محفوظ کریں! سروس میش تمام مواصلات کو مضبوط MTLS کے ساتھ خفیہ کرتا ہے، سخت تصدیق کے ساتھ شناختوں کی تصدیق کرتا ہے، اور حتمی تحفظ کے لئے رسائی کے قواعد نافذ کرتا ہے۔

خفیہ سیکیورٹی کی سپر پاورز کو دریافت کریں! خدمات کو الگ کریں، آڈٹ کے لئے ہر اقدام کا سراغ لگائیں، اور سروس میش کے ساتھ اپنے ایپلیکیشن کے ارد گرد ایک محفوظ دائرہ بنائیں۔

3.3. شفاف بصیرت

اپنے تقسیم شدہ نظام کی پیچیدگیوں میں آسانی سے نیویگیٹ کریں! سروس میش آپ کی ایپلیکیشن کے اندرونی کاموں میں بے مثال بصیرت فراہم کرتا ہے۔

قیمتی بصیرت کو بے شمار میٹرکس، لاگ اور کارکردگی کے اعداد و شمار کے ساتھ دریافت کریں۔ اپنی خدمات کو بہتر بنائیں اور مسائل کو پیشہ ور کی طرح حل کریں۔

4. آئیستیوں کا انکشاف

آئیستیوں، IBM، Google، اور Lyft کی ایک اوپن سورس سروس میش، غیر مرئی طور پر تقسیم شدہ ایپلیکیشنز کو ٹریفک کے انتظام، سیکیورٹی، اور کارکردگی کی بصیرت کے ساتھ بہتر بناتا ہے۔

آئیستیوں کو آن پرمیس، کلاؤڈ، کیوبیرنیٹس میں، یا ورچوئل مشینوں پر لچکدار طور پر تعینات کیا جا سکتا ہے، اور یہ کیوبیرنیٹس پر مائیکروسروسز کے ساتھ چمکتا ہے۔ اگرچہ یہ پلیٹ فارم سے آزاد ہے، یہ کنٹینرائزڈ ماحول کے لئے قدرتی طور پر موزوں ہے۔

آئیستیوں کے بنیادی میں، یہ ہر مائیکروسروس کے ساتھ سائیڈکار کے طور پر Envoy پروکسی تعینات کرتا ہے:

پود A
سروس A
انگریس ٹریفک
اینوائے پروکسی
پود A
سروس A
میش ٹریفک
اینوائے پروکسی
ایگریس ٹریفک
ڈیٹا پلین

یہ پروکسی نیٹ ورک آئیستیوں کے ڈیٹا پلین کی تشکیل کرتا ہے، جسے کنٹرول پلین کی طرف سے منظم کیا جاتا ہے:

پود A
سروس A
انگریس ٹریفک
اینوائے پروکسی
پود A
سروس A
میش ٹریفک
اینوائے پروکسی
ایگریس ٹریفک
ڈیٹا پلین
آئیستیود
پائلٹ
سیٹل
گیلی
کنٹرول پلین

کنٹرول پلین، آئیستیوں کا دماغ، Envoy پروکسیوں کو دریافت، تشکیل، اور سرٹیفکیٹ کے انتظام کے ساتھ بااختیار بناتا ہے۔

آئیستیوں کی صلاحیت کو آزاد کریں، جہاں آپ کے متعدد جڑے ہوئے مائیکروسروسز سائیڈکار پروکسیوں کے ذریعہ ایک مضبوط سروس میش کی بنیادی ڈھانچے کی تشکیل کرتے ہیں:

آئیستیوں کنٹرول پلین
اینوائے
اینوائے
اینوائے
اینوائے
اینوائے
اینوائے
اینوائے
اینوائے
اینوائے
اینوائے
اینوائے
اینوائے

آئیستیوں کی لچک ایکسٹرنل لاگنگ، ٹیلی میٹری، اور پالیسی کے نظاموں کے ساتھ ہموار انضمام میں چمکتی ہے۔

5. آئیستیوں کے بنیادی اجزاء کا انکشاف

آئیستیوں کا آرکیٹیکچر ایک متحرک جوڑا ہے: ڈیٹا پلین اور کنٹرول پلین۔ یہ دونوں آئیستیوں کی صلاحیتوں کے پیچھے جادو کی تشکیل کرتے ہیں۔ آئیستیوں کے مرکزی اجزاء کی بنیادی تفصیلات میں ڈوب جائیں۔

آئیستیوں کے بنیادی اجزاء کی تفصیلات جاننے کے لئے تیار رہیں۔

5.1. ڈیٹا پلین: اینوائے کا مرکز

آئیستیوں کا ڈیٹا پلین دراصل اینوائے پروکسی کا ایک بڑھا ہوا ورژن ہے۔ یہ اوپن سورس شاندار نیٹ ورک کی پیچیدگیوں کا خیال رکھتا ہے، ایپلیکیشنز کو اپنے بنیادی کاروبار پر توجہ مرکوز کرنے کی آزادی دیتا ہے۔ ایپلیکیشنز بے فکر ہو کر آپس میں بات چیت کرتی ہیں، پیچیدہ نیٹ ورک کی بنیادی ڈھانچے سے بے خبر۔

اس کے بنیادی میں، اینوائے ایک نیٹ ورک کا جادوگر ہے جو OSI ماڈل کی تہوں 3 اور 4 پر کام کرتا ہے۔ یہ کنکشنز کا انتظام کرنے کے لئے ایک موافقت پذیر نیٹ ورک فلٹرز کی زنجیر کا استعمال کرتا ہے۔ اس کے علاوہ، اینوائے کی L7 تہہ کا فلٹر اسے HTTP ٹریفک کو ہنر مندی سے سنبھالنے کا اختیار دیتا ہے۔ اور یہ سب نہیں - یہ HTTP/2 اور gRPC پروٹوکولز کے ساتھ بھی قدرتی ہے۔

آئیستیوں کی متعدد نمایاں خصوصیات دراصل اینوائے کی تعمیر میں شامل خصوصیات سے وراثت میں ملی ہیں:

  • ٹریفک کنٹرول: اینوائے HTTP، gRPC، WebSocket، اور TCP ٹریفک پر تفصیلی کنٹرول حاصل کرتا ہے، اسے درست طریقے سے روٹ کرتا ہے۔
  • نیٹ ورک کی استحکام: خودکار دوبارہ کوششیں، سرکٹ توڑنے، اور غلطی کے انفیکشن کی مدد سے نیٹ ورک کی ناقابل یقین اعتماد کو یقینی بنایا جاتا ہے۔
  • سیکیورٹی: اپنی مواصلات کو مضبوط سیکیورٹی کی پالیسیوں، رسائی کنٹرول، اور شرح کی حد بندی کے ساتھ محفوظ رکھیں۔

اینوی کے حقیقی امکانات اس وقت چمکتے ہیں جب اسے آئیستیوں کے ساتھ جوڑا جاتا ہے۔ اس کی توسیع پذیری، جو WebAssembly کی طاقت سے ہے، حسب ضرورت پالیسی کی نافذ اور ٹیلی میٹری کے لئے ایک گیم چینجر ہے۔ اس کے علاوہ، آئیستیوں کا Proxy-Wasm سینڈ باکس API اینوائے کی مزید حسب ضرورت کی راہیں کھولتا ہے۔

5.2. کنٹرول پلین: آئیستیود کا معمار

آئیستیود، آئیستیوں کے کنٹرول پلین کے سمفنی کا کنڈکٹر ہے۔ یہ معمار اعلی سطحی روٹنگ کے قوانین اور ٹریفک کے انتظام کی ہدایات کو اینوائے-دوست تشکیل میں تبدیل کرتا ہے، انہیں سائیڈکاروں میں ہموار طور پر تقسیم کرتا ہے۔

آئیستیوں کی پچھلی آرکیٹیکچر کی یاد کریں جس میں اس کے انفرادی اجزاء تھے؟ تو آسانی کے لئے، ان اجزاء کو ایک متحد آئیستیود میں ضم کر دیا گیا۔ لیکن فکر نہ کریں، بنیادی فعالیتیں محفوظ ہیں۔

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

آئیستیود سیکیورٹی کی ذمہ داری بھی سنبھالتا ہے، سروس-ٹو-سروس اور اختتامی صارف کی تصدیق کو مضبوط بناتا ہے، اپنی اندرونی شناخت اور سند کے انتظام کے نظام کے ساتھ۔ سروس کی شناخت کی بنیاد پر تفصیلی سیکیورٹی کی پالیسیاں نافذ کریں۔ مزید برآں، آئیستیود ایک معتبر سرٹیفکیٹ اتھارٹی (CA) کے طور پر کام کرتا ہے، سروسز کے درمیان رابطوں کی سیکیورٹی کے لئے سرٹیفکیٹ جاری کرتا ہے۔

6. آئیستیوں کا کام کیسے ہوتا ہے

ہم نے سروس میش کی عام خصوصیات کا جائزہ لیا ہے اور آئیستیوں کے آرکیٹیکچر اور بنیادی اجزاء کا تجزیہ کیا ہے۔ اب، آئیستیوں یہ خصوصیات اپنے بنیادی اجزاء کا استعمال کرتے ہوئے کیسے فراہم کرتا ہے، یہ جانچیں گے۔

ہم دوبارہ ان ہی خصوصیات کی اقسام کا دورہ کریں گے جن کا ہم نے پہلے جائزہ لیا۔

6.1. ٹریفک کا انتظام

آئیستیوں کا ٹریفک کا انتظام API سروس میش کی ٹریفک پر تفصیلی کنٹرول پیش کرتا ہے۔ ان APIs کا استعمال کرتے ہوئے ٹریفک کی تشکیل کی تخصیص کریں اور کیوبیرنیٹس کے حسب ضرورت وسائل کی تعریف کریں (CRDs)۔ ٹریفک کی روٹنگ کے لئے اہم API وسائل مجازی خدمات اور منزل کے قواعد ہیں:

سروس A
سروس B
منزل کا قاعدہ - v1
75%
منزل کا قاعدہ - v2
25%
سروس B- v1
سروس B- v2

ایک مجازی سروس یہ طے کرتی ہے کہ درخواستیں آئیستیوں کی میش میں کسی سروس کی طرف کیسے روٹ کی جائیں گی۔ اس میں ایک یا زیادہ روٹنگ کے قواعد شامل ہوتے ہیں جو ترتیب میں جانچے جاتے ہیں۔ مجازی سروس کی روٹنگ کے بعد، منزل کے قواعد لاگو ہوتے ہیں تاکہ کسی منزل کی طرف ٹریفک کا کنٹرول کیا جا سکے، جیسے کہ سروس کی مختلف حالتوں کو ورژن کے لحاظ سے گروپ کرنا۔

6.2. سیکیورٹی

آئیستیوں کی سیکیورٹی کی بنیاد ہر سروس کے لئے مضبوط شناختیں ہیں۔ آئیستیوں ایجنٹس ہر اینوائے پروکسی کے ساتھ مل کر آئیستیود کے ساتھ چابی اور سرٹیفکیٹ کی گردش کو خودکار کرتے ہیں:

سروس
آئیستیوں ایجنٹ
سرٹیفکیٹ
دستخط کرنے کی درخواست
دستخط شدہ
سرٹیفکیٹ
اینوائے پروکسی
سرٹیفکیٹ اتھارٹی
Istio
تصدیق کی پالیسی
اجازت کی پالیسی

آئیستیوں دو قسم کی تصدیق کی حمایت کرتا ہے: ہمسایہ کی تصدیق اور درخواست کی تصدیق۔ ہمسایہ کی تصدیق آئیستیوں کے میوچل TLS حل کے ساتھ سروس-ٹو-سروس مواصلات کو محفوظ بناتی ہے۔ درخواست کی تصدیق اختتامی صارف کی تصدیق کو ایک حسب ضرورت تصدیق فراہم کنندہ یا اوپن آئی ڈی کنیکٹ (OIDC) فراہم کنندہ کے ذریعہ JWT کی توثیق کے ذریعے سنبھالتی ہے۔

آئیستیوں رسائی کے کنٹرول کو سیکیورٹی کی پالیسیوں کے نفاذ کے ذریعہ نافذ کرتا ہے۔ یہ پالیسیاں اینوائے پروکسی میں اندرونی ٹریفک کو منظم کرتی ہیں، جس سے میش، نیAMESPACE، اور سروس کی سطح پر رسائی کنٹرول کی اجازت ملتی ہے۔

6.3. نگرانی

آئیستیوں ہر سروس مواصلت کے لئے تفصیلی ٹیلی میٹری تیار کرتا ہے، جس میں میٹرکس، تقسیم شدہ نشانات، اور رسائی کے لاگ شامل ہیں۔ یہ ٹیلی میٹری پروکسی کی سطح، سروس کی نوعیت، اور کنٹرول پلین کی میٹرکس کو شامل کرتی ہے۔

پہلے، مکسٹر آئیستیوں کی ٹیلی میٹری کی آرکیٹیکچر میں مرکزی جزو تھا۔ تاہم، ٹیلی میٹری v2 مکسٹر کی خصوصیات کو اینوائے پروکسی پلگ ان کے ساتھ تبدیل کرتی ہے:

پرومیتھیئس
پروکسی کی سطح کی میٹرکس
سروس کی سطح کی میٹرکس
پلگ ان
پلگ ان
پلگ ان
اینوائے پروکسی
سروس A
پروکسی کی سطح کی میٹرکس
سروس کی سطح کی میٹرکس
پلگ ان
پلگ ان
پلگ ان
اینوائے پروکسی
سروس B

آئیستیوں اینوائے پروکسی کے ذریعے تقسیم شدہ نشانات پیدا کرتا ہے اور مختلف نشانی بیک اینڈ جیسے Zipkin، Jaeger، Lightstep، اور Datadog کی حمایت کرتا ہے۔ نشانی پیدا کرنے کی نمونہ کی شرح قابل ترتیب ہوتی ہے۔ مزید برآں، آئیستیوں اپنی خدمات کی ٹریفک کے لئے حسب ضرورت شکلوں میں رسائی کے لاگ پیدا کرتا ہے۔

7. آئیستیوں میں غوطہ لگائیں

کافی پس منظر، آئیستیوں کو عمل میں دیکھیں! ہم ایک کیوبیرنیٹس کلسٹر پر آئیستیوں کو نصب کریں گے اور اس کی طاقت کو دکھانے کے لئے ایک سادہ مائیکروسروسز ایپلیکیشن کا استعمال کریں گے۔

7.1 تنصیب

آئیستیوں کئی طریقوں سے نصب کیا جا سکتا ہے، لیکن آپ کے آپریٹنگ سسٹم (جیسے Windows) کے لئے تازہ ترین ریلیز کو ڈاؤن لوڈ کرنا اور نکالنا سب سے آسان ہے۔ نکالا گیا پیکج آپ کے بن فولڈر میں istioctl کلائنٹ شامل کرتا ہے۔ اس کے بعد آئیستیوں کو اپنے کیوبیرنیٹس کلسٹر پر نصب کرنے کے لئے istioctl کا استعمال کریں:

istioctl install --set profile=demo -y

یہ آئیستیوں کے اجزاء کو ڈیفالٹ کیوبیرنیٹس کلسٹر پر ڈیمو پروفائل کے ذریعے نصب کرتا ہے۔ اگر ضرورت ہو تو 'ڈیمو' کو کسی دوسرے فراہم کنندہ-خصوصی پروفائل سے تبدیل کریں۔

اگلا، آئیستیوں کو بتائیں کہ جب اس کیوبیرنیٹس کلسٹر میں ایپس کی تعیناتی ہو تو خود بخود اینوائے سائیڈکار پروکسیوں کو شامل کرے:

kubectl label namespace default istio-injection=enabled

ہم یہاں kubectl کا استعمال کر رہے ہیں، اس خیال کے ساتھ کہ آپ کے پاس ایک کیوبیرنیٹس کلسٹر (جیسے Minikube) اور کیوبیرنیٹس CLI kubectl سیٹ اپ ہے۔

7.2 نمونہ ایپلیکیشن

اس مظاہرے کے لئے ایک سادہ آن لائن آرڈرنگ ایپلیکیشن کا تصور کریں۔ اس میں تین مائیکروسروسز شامل ہیں جو آرڈرز کی تکمیل کے لئے مل کر کام کرتی ہیں:

بکنگ سروس
انویٹری سروس
شپنگ سروس

ہم مائیکروسروس کی تفصیلات میں نہیں جائیں گے، لیکن انہیں اسپرنگ بوٹ اور REST APIs کے ساتھ بنانا آسان ہے۔ اہم بات یہ ہے کہ ان مائیکروسروسز کے لئے کیوبیرنیٹس پر تعینات کرنے کے لئے ڈاکر امیجز بنائیں۔

7.3 تعیناتی

کیوبیرنیٹس کلسٹروں جیسے Minikube پر کنٹینرائزڈ ورک لوڈز کی تعیناتی آسان ہے۔ ورک لوڈ کا اعلان کرنے اور اس تک رسائی کے لئے تعیناتی اور سروس کے وسائل کا استعمال کریں۔ عام طور پر، انہیں ایک YAML فائل میں بیان کریں:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: order-service
  namespace: default
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: order-service
        version: v1
    spec:
      containers:
      - name: order-service
        image: kchandrakant/order-service:v1
        resources:
          requests:
            cpu: 0.1
            memory: 200
---
apiVersion: v1
kind: Service
metadata:
  name: order-service
spec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    app: order-service

یہ آرڈر سروس کے لئے ایک بنیادی تعیناتی اور سروس کی وضاحت ہے۔ انوینٹری سروس اور شپنگ سروس کے لئے اسی طرح کی YAML فائلیں بنائیں۔

ان وسائل کو kubectl کا استعمال کرتے ہوئے آسانی سے تعینات کریں:

kubectl apply -f booking-service.yaml -f inventory-service.yaml -f shipping-service.yaml

چونکہ ہم نے ڈیفالٹ نیAMESPACE کے لئے اینوائے سائیڈکار پروکسیوں کی خودکار تعمیر کو فعال کیا ہے، سب کچھ سنبھالا گیا ہے۔ یا، istioctl کے kube-inject کمانڈ کا استعمال کرتے ہوئے دستی طور پر اینوائے سائیڈکار پروکسیوں کو شامل کریں۔

7.4 ایپلیکیشن تک رسائی

آئیستیوں بنیادی طور پر میش کی ٹریفک کو سنبھالتا ہے۔ پیش فرض طور پر، میش کے اندر یا باہر آنے یا جانے والی ٹریفک بلاک کی جاتی ہے۔ آئیستیوں گیٹ ویز کا استعمال کرتا ہے تاکہ ان باؤنڈ اور آؤٹ باؤنڈ میش ٹریفک کا انتظام کرے، جس سے آپ کو یہ کنٹرول ملتا ہے کہ کیا داخل ہوتا ہے یا نکلتا ہے۔ آئیستیوں پیش کنفیگرڈ گیٹ وے پروکسی کی تعیناتیاں پیش کرتا ہے: istio-ingressgateway اور istio-egressgateway۔

اپنی ایپلیکیشن کے لئے ایک گیٹ وے اور ورچوئل سروس بنائیں:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: booking-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: booking
spec:
  hosts:
  - "*"
  gateways:
  - booking-gateway
  http:
  - match:
    - uri:
        prefix: /api/v1/booking
    route:
    - destination:
        host: booking-service
        port:
          number: 8080

ہم یہاں ڈیفالٹ آئیستیوں کے انگریس کنٹرولر کا استعمال کر رہے ہیں۔ اس کے علاوہ، ہم نے بکنگ سروس کے لئے درخواستیں روٹ کرنے کے لئے ایک ورچوئل سروس کی وضاحت کی ہے۔

آپ آؤٹ باؤنڈ میش ٹریفک کے لئے بھی ایک ایگریس گیٹ وے کی وضاحت کر سکتے ہیں۔

8. آئیستیوں کے عام استعمال کے کیسز

ہم نے آئیستیوں کے ساتھ کیوبیرنیٹس پر ایک سادہ ایپلیکیشن تعینات کی ہے۔ آئیستیوں کی طاقتور خصوصیات کو دریافت کریں اور دیکھیں کہ وہ ہماری ایپلیکیشن کو کس طرح بہتر بنا سکتی ہیں۔

8.1 درخواست کی روٹنگ

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

اس کے حصول کے لئے ورچوئل سروس کی روٹنگ کے قواعد کا استعمال کریں۔

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: shipping-service
spec:
  hosts:
    - shipping-service
  http:
  - route:
    - destination:
        host: shipping-service
        subset: v1
      weight: 90
    - destination:
        host: shipping-service
        subset: v2
      weight: 10
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: shipping-service
spec:
  host: shipping-service
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2

روٹنگ کے قواعد ہیڈرز یا دیگر خصوصیات کی بنیاد پر ٹریفک کو بھی فلٹر کر سکتے ہیں۔ منزل کے میدان میں مخصوص درخواستوں کے لئے ہدف سروس کو طے کرتا ہے۔

8.2 سرکٹ توڑنا

سرکٹ بریکر کے ساتھ زنجیری ناکامیوں کو روکیں۔ یہ پیٹرن غلطیوں کا پتہ لگاتا ہے اور ناکام سروسز کو عارضی طور پر ٹریفک روک دیتا ہے، آپ کی ایپلیکیشن کی مجموعی صحت کی حفاظت کرتا ہے۔

آئیستیوں کی منزل کے قواعد آپ کو ان خدمات کے لئے سرکٹ توڑنے کے طرز عمل کی تشکیل کرنے کی اجازت دیتا ہے جیسے کہ انوینٹری سروس۔

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: inventory-service
spec:
  host: inventory-service
  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 1
      http:
        http1MaxPendingRequests: 1
        maxRequestsPerConnection: 1
    outlierDetection:
      consecutive5xxErrors: 1
      interval: 1s
      baseEjectionTime: 3m
      maxEjectionPercent: 100

زیادہ سے زیادہ کنکشنز، زیر التواء درخواستیں، اور کنکشن فی درخواست کی درخواستوں کی حد لگا کر آپ مؤثر طریقے سے ٹریفک کا انتظام کر سکتے ہیں اور اضافے سے بچ سکتے ہیں۔

8.3 میوچل TLS کو فعال کرنا

میوچل TLS خدمات کے درمیان محفوظ مواصلات کو یقینی بناتا ہے، دونوں فریقوں کی تصدیق کی ضرورت ہوتی ہے۔ آئیستیوں اپنے پروکسیوں کا استعمال کرتے ہوئے خدمات کے لئے خود بخود میوچل TLS کو فعال کرتا ہے۔

جبکہ آئیستیوں پروکسی کی خدمات کے درمیان میوچل TLS کو نافذ کرتا ہے، سادہ ٹیکسٹ کی ٹریفک پروکسی کے بغیر خدمات تک بھی پہنچ سکتی ہے۔ اپنے پورے میش میں میوچل TLS کو نافذ کرنے کے لئے PeerAuthentication پالیسیوں کا استعمال کریں۔

apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
  name: "default"
  namespace: "istio-system"
spec:
  mtls:
    mode: STRICT

آپ میش، نیAMESPACE، یا سروس کی سطح پر میوچل TLS کو نافذ کر سکتے ہیں۔ سروس مخصوص پالیسیاں نیAMESPACE بھر میں کی ترتیبات کو ختم کرتی ہیں۔

8.4 JWT کے ساتھ رسائی کنٹرول

JSON ویب ٹوکن (JWT) صارف کی معلومات کو محفوظ طریقے سے منتقل کرنے کے لئے ایک معیاری ہے۔ انہیں تصدیق اور اجازت کے لئے وسیع پیمانے پر استعمال کیا جاتا ہے۔

آئیستیوں کی اجازت کی پالیسی آپ کو جیسے سروسز تک رسائی کنٹرول کرنے کی اجازت دیتی ہے جیسے کہ بکنگ سروس JWT دعووں کی بنیاد پر۔

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: require-jwt
  namespace: default
spec:
  selector:
    matchLabels:
      app: booking-service
  action: ALLOW
  rules:
  - from:
    - source:
       requestPrincipals: ["[email protected]/[email protected]"]

مجاز رسائی کے لئے مخصوص دعووں کے ساتھ درست JWT کی ضرورت ہوتی ہے۔ آئیستیوں JWT کے جاری کنندہ اور موضوع کے دعووں سے requestPrincipal کی خصوصیت تخلیق کرتا ہے۔

9. اختتامی خیالات

آئیستیوں تقسیم شدہ مائیکروسروس آرکیٹیکچر میں عام چیلنجز کے انتظام کو آسان بناتا ہے۔ تاہم، اس کی پیچیدگی تعیناتیوں میں اضافی بوجھ ڈال سکتی ہے۔ جیسے کہ کوئی بھی ٹول، آئیستیوں جادوئی حل نہیں ہے اور اس پر غور و فکر کی ضرورت ہے۔

9.1. کیا سروس میش ہمیشہ ضروری ہے؟

جبکہ سروس میش فوائد پیش کرتے ہیں، ان نقصانات پر غور کریں:

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

سروس میش فوائد پیش کرتے ہیں، لیکن آپ کی ایپلیکیشن کی پیچیدگی کا محتاط اندازہ لگانا بہت ضروری ہے۔ فوائد کا وزن کریں اور اضافی پیچیدگی کے خلاف۔

9.2. آئیستیوں کے متبادل

آئیستیوں ایک مقبول سروس میش ہے جو صنعت کے رہنماوں کی حمایت حاصل ہے، لیکن یہ واحد اختیار نہیں ہے۔ یہاں Linkerd اور Consul کا مختصر جائزہ ہے۔

Linkerd ایک کیوبیرنیٹس-نیٹو، اوپن سورس سروس میش ہے جو مقبولیت حاصل کر رہا ہے۔ یہ ایک CNCF انکیوبیٹنگ پروجیکٹ ہے اور آئیستیوں کی طرح TCP پروکسیز کا استعمال کرتا ہے۔ Linkerd کا Rust-based مائیکرو پروکسی Linkerd-proxy کہلاتا ہے۔

Linkerd عام طور پر آئیستیوں کی نسبت سادہ ہے کیونکہ اس کی توجہ کیوبیرنیٹس پر ہے۔ تاہم، اس کی خصوصیات کا سیٹ آئیستیوں سے ملتا جلتا ہے، اور اس کی بنیادی آرکیٹیکچر بھی ملتی جلتی ہے۔ Linkerd میں ایک صارف کے انٹرفیس، ڈیٹا پلین، اور کنٹرول پلین شامل ہیں۔

Consul ایک اوپن سورس سروس میش ہے جو HashiCorp کی جانب سے تیار کردہ ہے جو دیگر HashiCorp کے بنیادی ڈھانچے کے ٹولز کے ساتھ انضمام کرتا ہے۔ Consul کا ڈیٹا پلین پروکسی اور مقامی انضمام ماڈل دونوں کی حمایت کرتا ہے۔ یہ ایک بلٹ ان پروکسی پیش کرتا ہے، لیکن یہ اینوائے کے ساتھ بھی کام کر سکتا ہے۔

Consul کیوبیرنیٹس سے آگے چلتا ہے، جیسے کہ نومیڈ جیسے پلیٹ فارم کی حمایت کرتا ہے۔ یہ ہر نوڈ پر صحت کے چیک کے لئے ایجنٹس کا استعمال کرتا ہے اور ڈیٹا اسٹوریج اور دوبارہ پیدا کرنے کے لئے Consul سرورز کے ساتھ بات چیت کرتا ہے۔ اگرچہ یہ معیاری سروس میش کی خصوصیات پیش کرتا ہے، Consul کی تعیناتی اور انتظام زیادہ پیچیدہ ہے۔

10. اختتام

اس ٹیوٹوریل نے سروس میش آرکیٹیکچر کی بنیادیات اور آئیستیوں کی طاقتور صلاحیتوں کا جائزہ لیا ہے۔ ہم نے آئیستیوں کے بنیادی ڈھانچے، اجزاء، اور عملی ایپلیکیشنز میں غور کیا ہے۔ آخر میں، آپ کو آئیستیوں کو عام منظرناموں کے لئے نصب اور استعمال کرنے کا ایک ٹھوس سمجھ بوجھ حاصل ہونا چاہئے۔

کسٹمر کا فیڈ بیک

درج ذیل جائزے ہماری ویب سائٹ پر جمع کیے گئے تھے۔

4 ستارے کی بنیاد پر 130 جائزے
شاندار آئیستیوں سروس میش کا نفاذ
آئیستیوں سروس میش کا نفاذ ہمارے مائیکروسروسز کی آرکیٹیکچر کو نمایاں طور پر بہتر بناتا ہے، جس کے نتیجے میں 40% کی بڑھوتری ہوتی ہے۔
کی طرف سے جائزہ لیا گیا مسٹر سٹھیساک تھایناوات (سافٹ ویئر انجینئر)
مائیکروسروسز کے انتظام کے لئے سختی سے سفارش کی جاتی ہے
آئیستیوں سروس میش ایک گیم چینجر ثابت ہوا ہے، ہماری تاخیر کو 30% کم کر دیا ہے۔ سختی سے سفارش کی جاتی ہے!
کی طرف سے جائزہ لیا گیا مسز پینسی نی کونگپورن ٹھاتچاپھن (ڈیواپس اسپیشلسٹ)
ٹریفک کی انتظامیہ کے لئے بہترین ٹول
آئیستیوں سروس میش کا استعمال ٹریفک کی انتظامیہ میں ہمارے لوڈ بیلنسنگ کی صلاحیت کو 25% بہتر بناتا ہے۔
کی طرف سے جائزہ لیا گیا مسٹر جیراسک رینسک (آئی ٹی منیجر)
سیکیورٹی کی خصوصیات میں اضافہ
آئیستیوں سروس میش کی سیکیورٹی کی خصوصیات نے ہمارے نظام کو مزید مضبوط بنایا ہے، کمزوریوں کو 50% کم کر دیا ہے۔
کی طرف سے جائزہ لیا گیا مسٹر سومپونگ دیوفسیٹ (سائبر سیکیورٹی تجزیہ کار)
بصیرت اور نگرانی میں بہتری
آئیستیوں سروس میش کے نگاہ کے ٹولز نے ہماری نگرانی کی صلاحیتوں کو بہتر بنایا، مسئلے کی تلاش کا وقت 35% کم کر دیا۔
کی طرف سے جائزہ لیا گیا مسٹر چاتچائی وراتیووسین (سسٹم ایڈمنسٹریٹر)
سروس کے انتظام میں آسانی
آئیستیوں سروس میش کے ذریعے سروس کے انتظام کو آسان بناتا ہے، جس سے ہماری سروس کے وقت میں 45% کمی ہوئی ہے۔
کی طرف سے جائزہ لیا گیا مسٹر ایککاسیت چوٹیکاساتھیان (پروجیکٹ منیجر)
بڑے پیمانے پر تعیناتی کے لئے مؤثر
آئیستیوں سروس میش بڑے پیمانے پر تعیناتی کے لئے مؤثر ہے، تعیناتی کی رفتار میں 50% کی بہتری۔
کی طرف سے جائزہ لیا گیا مسٹر ویتیت لینیوتافونگ (کلاؤڈ آرکیٹیکٹ)
کیریئر کی ترقی کو آسان بنایا
کمپنی مختلف تربیتی کورسز کے ذریعے خود کی ترقی کے لئے کافی مواقع فراہم کرتی ہے، جس سے تیز رفتار کیریئر کی ترقی ممکن ہوتی ہے۔
کی طرف سے جائزہ لیا گیا مسٹر چایوات ٹیپیسیتفونگ (سیلز ڈائریکٹر)
مضبوط پالیسی انتظام
آئیستیوں سروس میش کے ساتھ پالیسی کا انتظام مضبوط ہے، جس سے پالیسی کی خلاف ورزیوں میں 40% کی کمی واقع ہوتی ہے۔
کی طرف سے جائزہ لیا گیا مسز لورا کرسٹی گون (CTO)
شاندار مدد اور دستاویزات
آئیستیوں سروس میش کے لئے مدد اور دستاویزات شاندار ہیں، جس سے ہماری آن بورڈنگ کے وقت میں 20% کی کمی واقع ہوتی ہے۔
کی طرف سے جائزہ لیا گیا مسٹر انیک پچیتسنگھ (ٹیکنیکل سپورٹ انجینئر)
متنوع اور مقیاس پذیر حل
آئیستیوں سروس میش ایک متنوع اور مقیاس پذیر حل ہے، جس نے ہمارے نظام کی مقیاس کی 35% بہتری کی ہے۔
کی طرف سے جائزہ لیا گیا مسز ارونی وونگپیاساتھیت (حل کے معمار)
سروس سے سروس مواصلات کو آسان بناتا ہے
سروس سے سروس کی مواصلات کو آسان بناتے ہوئے، آئیستیوں سروس میش نے ہمارے غلطی کی شرح میں 30% کی کمی کی ہے۔
کی طرف سے جائزہ لیا گیا مسٹر بوننام بوننامساپ (بیک اینڈ ڈویلپر)
لاگت کی موثر سروس میش حل
آئیستیوں سروس میش ایک لاگت کی موثر حل ہے، جو ہمیں اپنے کلاؤڈ کے بنیادی ڈھانچے کے اخراجات میں 20% کی بچت کرتی ہے۔
کی طرف سے جائزہ لیا گیا مسٹر رنگسن چنرکول (مالیاتی منیجر)

سوالات ہیں؟ نیچے جواب تلاش کریں!

ہمارے اکثر پوچھے گئے سوالات

آئیستیوں ایک اوپن سورس سروس میش ہے جو مائیکروسروسز کو محفوظ، جڑنے اور مشاہدہ کرنے کا ایک یکساں طریقہ فراہم کرتا ہے۔ یہ ٹریفک کے انتظام، سیکیورٹی، اور نگرانی کی صلاحیتیں پیش کرتا ہے، جو مائیکروسروس آرکیٹیکچر کی پیچیدگیوں کا انتظام کرنا آسان بناتا ہے۔
آئیستیوں ٹریفک کے رویے پر تفصیلی کنٹرول فراہم کرتا ہے، جس میں امیر روٹنگ کے قواعد، دوبارہ کوششیں، ناکامی کی بحالی، اور غلطی کے انفیکشن شامل ہیں۔ یہ مائیکروسروسز کے درمیان ٹریفک کے بہاؤ کو بہتر بناتا ہے، جس سے قابل اعتماد اور مضبوطی کو یقینی بنایا جاتا ہے۔
آئیستیوں مضبوط سیکیورٹی کی خصوصیات فراہم کرتا ہے جن میں سروس-ٹو-سروس کی تصدیق کے لئے میوچل TLS، کردار پر مبنی رسائی کنٹرول، اور پالیسی کے نفاذ شامل ہیں۔ یہ خصوصیات یہ یقینی بناتی ہیں کہ خدمات کے درمیان مواصلات محفوظ ہیں اور تنظیمی پالیسیوں کے مطابق ہیں۔
جی ہاں، آئیستیوں کو موجودہ CI/CD پائپ لائنوں کے ساتھ ضم کیا جا سکتا ہے تاکہ تعیناتی کو خودکار بنایا جا سکے اور مائیکروسروسز کی مسلسل ترسیل کو یقینی بنایا جا سکے۔ یہ انضمام سافٹ ویئر کی ترقی کے دورانیے کی چستی اور رفتار کو برقرار رکھنے میں مدد کرتا ہے۔