سروس میش آرکیٹیکچر کی جادوئی دنیا کو دریافت کریں اور دیکھیں کہ یہ آپ کے تقسیم شدہ نظاموں کو کس طرح طاقتور بناتا ہے۔
آئیستیوں میں گہرائی تک جائیں، جو سروس میش کا ستارہ ہے، اور سیکھیں کہ یہ آپ کے کیوبیرنیٹس کلسٹر کو کس طرح بہترین انداز میں منظم کرتا ہے۔
مونولیتھک ایپلیکیشنز اب چھوٹے، خود مختار سروسز میں تبدیل ہو چکی ہیں۔ یہ تبدیلی کلاؤڈ نیٹیو کمپیوٹنگ اور مائیکروسروسز آرکیٹیکچر کے ساتھ بے حد مقبول ہوئی۔ ڈوکر اور کیوبیرنیٹس جیسے ٹولز نے اس رجحان کو تیز کر دیا۔
کیوبیرنیٹس جیسے پلیٹ فارم پر مائیکروسروسز بے شمار فوائد پیش کرتے ہیں، لیکن یہ پیچیدگیاں بھی لاتے ہیں۔ ان تقسیم شدہ سروسز کے درمیان رابطے کا انتظام کرنے کے لئے تلاش، روٹنگ، دوبارہ کوشش، اور ناکامی کی بحالی پر غور کرنا ضروری ہے۔
مزید چیلنجز میں سیکیورٹی اور نگرانی شامل ہیں۔
ہر سروس میں کمیونیکیشن کی صلاحیتیں شامل کرنا وقت طلب ہے، خاص طور پر جب سروس کا منظر نامہ بڑھتا ہے۔ یہی وہ جگہ ہے جہاں سروس میش چمکتا ہے۔ یہ ایک تقسیم شدہ نظام کے اندر تمام سروس-ٹو-سروس کمیونیکیشن کا خیال رکھتا ہے۔
سروس میش یہ کام نیٹ ورک پروکسیوں کے ذریعے کرتا ہے۔ سروسز کے درمیان درخواستیں ان پروکسیوں کے ذریعے روٹ کی جاتی ہیں، جو خدمات کے باہر بنیادی ڈھانچے کی سطح پر موجود ہوتی ہیں:
یہ پروکسی سروسز کے لئے ایک میش نیٹ ورک بناتی ہیں، اسی لئے اسے سروس میش کہا جاتا ہے۔ سروس میش سروس-ٹو-سروس کمیونیکیشن کے ہر پہلو کو کنٹرول کرتا ہے، جس سے یہ تقسیم شدہ کمپیوٹنگ کی آٹھ غلطیوں کا سامنا کرنے کے قابل ہو جاتا ہے۔
اپنی خدمات کی مکمل صلاحیت کو آزاد کریں سروس میش کے ساتھ! دریافت کریں کہ یہ جادوئی ٹول آپ کی ایپلیکیشن کے منظر نامے کو کیسے تبدیل کر سکتا ہے۔
چلو اس جادو کو تین بنیادی صلاحیتوں میں توڑتے ہیں: ٹریفک کی جادوگری، مضبوط سیکیورٹی، اور شفاف بصیرت۔
سروس میش آپ کا حتمی ٹریفک کا سپاہی ہے، سروس کے تعاملات کو درست طریقے سے ہدایت دیتا ہے۔ متحرک روٹنگ، سمارٹ دریافت، اور ٹریفک سائیڈنگ اور تقسیم جیسے ذہن کو حیران کردینے والے فیچرز سے لطف اٹھائیں جو آپ کے ایپلیکیشن کو بے عیب طریقے سے پیش کرنے اور اے/بی ٹیسٹنگ کے تجربات کے لئے ہیں۔
غیر یقینی روابط کو الوداع کہیں! سروس میش آپ کی خدمات کو قابل اعتماد کی نرم چادر میں لپیٹتا ہے، جو دوبارہ کوششیں، وقت کی حدیں، شرح کی حد بندی، اور سرکٹ بریکر فراہم کرتا ہے تاکہ آپ کے ایپلیکیشنز کو بے قاعدگیوں سے بچا سکے۔
اپنی خدمات کو ناقابل تسخیر قلعے کے ساتھ محفوظ کریں! سروس میش تمام مواصلات کو مضبوط MTLS کے ساتھ خفیہ کرتا ہے، سخت تصدیق کے ساتھ شناختوں کی تصدیق کرتا ہے، اور حتمی تحفظ کے لئے رسائی کے قواعد نافذ کرتا ہے۔
خفیہ سیکیورٹی کی سپر پاورز کو دریافت کریں! خدمات کو الگ کریں، آڈٹ کے لئے ہر اقدام کا سراغ لگائیں، اور سروس میش کے ساتھ اپنے ایپلیکیشن کے ارد گرد ایک محفوظ دائرہ بنائیں۔
اپنے تقسیم شدہ نظام کی پیچیدگیوں میں آسانی سے نیویگیٹ کریں! سروس میش آپ کی ایپلیکیشن کے اندرونی کاموں میں بے مثال بصیرت فراہم کرتا ہے۔
قیمتی بصیرت کو بے شمار میٹرکس، لاگ اور کارکردگی کے اعداد و شمار کے ساتھ دریافت کریں۔ اپنی خدمات کو بہتر بنائیں اور مسائل کو پیشہ ور کی طرح حل کریں۔
آئیستیوں، IBM، Google، اور Lyft کی ایک اوپن سورس سروس میش، غیر مرئی طور پر تقسیم شدہ ایپلیکیشنز کو ٹریفک کے انتظام، سیکیورٹی، اور کارکردگی کی بصیرت کے ساتھ بہتر بناتا ہے۔
آئیستیوں کو آن پرمیس، کلاؤڈ، کیوبیرنیٹس میں، یا ورچوئل مشینوں پر لچکدار طور پر تعینات کیا جا سکتا ہے، اور یہ کیوبیرنیٹس پر مائیکروسروسز کے ساتھ چمکتا ہے۔ اگرچہ یہ پلیٹ فارم سے آزاد ہے، یہ کنٹینرائزڈ ماحول کے لئے قدرتی طور پر موزوں ہے۔
آئیستیوں کے بنیادی میں، یہ ہر مائیکروسروس کے ساتھ سائیڈکار کے طور پر Envoy پروکسی تعینات کرتا ہے:
یہ پروکسی نیٹ ورک آئیستیوں کے ڈیٹا پلین کی تشکیل کرتا ہے، جسے کنٹرول پلین کی طرف سے منظم کیا جاتا ہے:
کنٹرول پلین، آئیستیوں کا دماغ، Envoy پروکسیوں کو دریافت، تشکیل، اور سرٹیفکیٹ کے انتظام کے ساتھ بااختیار بناتا ہے۔
آئیستیوں کی صلاحیت کو آزاد کریں، جہاں آپ کے متعدد جڑے ہوئے مائیکروسروسز سائیڈکار پروکسیوں کے ذریعہ ایک مضبوط سروس میش کی بنیادی ڈھانچے کی تشکیل کرتے ہیں:
آئیستیوں کی لچک ایکسٹرنل لاگنگ، ٹیلی میٹری، اور پالیسی کے نظاموں کے ساتھ ہموار انضمام میں چمکتی ہے۔
آئیستیوں کا آرکیٹیکچر ایک متحرک جوڑا ہے: ڈیٹا پلین اور کنٹرول پلین۔ یہ دونوں آئیستیوں کی صلاحیتوں کے پیچھے جادو کی تشکیل کرتے ہیں۔ آئیستیوں کے مرکزی اجزاء کی بنیادی تفصیلات میں ڈوب جائیں۔
آئیستیوں کے بنیادی اجزاء کی تفصیلات جاننے کے لئے تیار رہیں۔
آئیستیوں کا ڈیٹا پلین دراصل اینوائے پروکسی کا ایک بڑھا ہوا ورژن ہے۔ یہ اوپن سورس شاندار نیٹ ورک کی پیچیدگیوں کا خیال رکھتا ہے، ایپلیکیشنز کو اپنے بنیادی کاروبار پر توجہ مرکوز کرنے کی آزادی دیتا ہے۔ ایپلیکیشنز بے فکر ہو کر آپس میں بات چیت کرتی ہیں، پیچیدہ نیٹ ورک کی بنیادی ڈھانچے سے بے خبر۔
اس کے بنیادی میں، اینوائے ایک نیٹ ورک کا جادوگر ہے جو OSI ماڈل کی تہوں 3 اور 4 پر کام کرتا ہے۔ یہ کنکشنز کا انتظام کرنے کے لئے ایک موافقت پذیر نیٹ ورک فلٹرز کی زنجیر کا استعمال کرتا ہے۔ اس کے علاوہ، اینوائے کی L7 تہہ کا فلٹر اسے HTTP ٹریفک کو ہنر مندی سے سنبھالنے کا اختیار دیتا ہے۔ اور یہ سب نہیں - یہ HTTP/2 اور gRPC پروٹوکولز کے ساتھ بھی قدرتی ہے۔
آئیستیوں کی متعدد نمایاں خصوصیات دراصل اینوائے کی تعمیر میں شامل خصوصیات سے وراثت میں ملی ہیں:
اینوی کے حقیقی امکانات اس وقت چمکتے ہیں جب اسے آئیستیوں کے ساتھ جوڑا جاتا ہے۔ اس کی توسیع پذیری، جو WebAssembly کی طاقت سے ہے، حسب ضرورت پالیسی کی نافذ اور ٹیلی میٹری کے لئے ایک گیم چینجر ہے۔ اس کے علاوہ، آئیستیوں کا Proxy-Wasm سینڈ باکس API اینوائے کی مزید حسب ضرورت کی راہیں کھولتا ہے۔
آئیستیود، آئیستیوں کے کنٹرول پلین کے سمفنی کا کنڈکٹر ہے۔ یہ معمار اعلی سطحی روٹنگ کے قوانین اور ٹریفک کے انتظام کی ہدایات کو اینوائے-دوست تشکیل میں تبدیل کرتا ہے، انہیں سائیڈکاروں میں ہموار طور پر تقسیم کرتا ہے۔
آئیستیوں کی پچھلی آرکیٹیکچر کی یاد کریں جس میں اس کے انفرادی اجزاء تھے؟ تو آسانی کے لئے، ان اجزاء کو ایک متحد آئیستیود میں ضم کر دیا گیا۔ لیکن فکر نہ کریں، بنیادی فعالیتیں محفوظ ہیں۔
آئیستیود اپنے بنیادی میں اپنے پیشروؤں کے ساتھ وہی کوڈ اور APIs استعمال کرتا ہے۔ پائلٹ، مثال کے طور پر، سروس کی دریافت کا معمار ہے، جو پلیٹ فارم-خصوصی تفصیلات کو سائیڈکاروں کے ذریعے سمجھی جانے والی عالمی زبان میں تبدیل کرتا ہے۔ یہ لچک آئیستیوں کو کیوبیرنیٹس اور ورچوئل مشینوں جیسے مختلف ماحول کے ساتھ ہم آہنگ کرنے کی اجازت دیتی ہے۔
آئیستیود سیکیورٹی کی ذمہ داری بھی سنبھالتا ہے، سروس-ٹو-سروس اور اختتامی صارف کی تصدیق کو مضبوط بناتا ہے، اپنی اندرونی شناخت اور سند کے انتظام کے نظام کے ساتھ۔ سروس کی شناخت کی بنیاد پر تفصیلی سیکیورٹی کی پالیسیاں نافذ کریں۔ مزید برآں، آئیستیود ایک معتبر سرٹیفکیٹ اتھارٹی (CA) کے طور پر کام کرتا ہے، سروسز کے درمیان رابطوں کی سیکیورٹی کے لئے سرٹیفکیٹ جاری کرتا ہے۔
ہم نے سروس میش کی عام خصوصیات کا جائزہ لیا ہے اور آئیستیوں کے آرکیٹیکچر اور بنیادی اجزاء کا تجزیہ کیا ہے۔ اب، آئیستیوں یہ خصوصیات اپنے بنیادی اجزاء کا استعمال کرتے ہوئے کیسے فراہم کرتا ہے، یہ جانچیں گے۔
ہم دوبارہ ان ہی خصوصیات کی اقسام کا دورہ کریں گے جن کا ہم نے پہلے جائزہ لیا۔
آئیستیوں کا ٹریفک کا انتظام API سروس میش کی ٹریفک پر تفصیلی کنٹرول پیش کرتا ہے۔ ان APIs کا استعمال کرتے ہوئے ٹریفک کی تشکیل کی تخصیص کریں اور کیوبیرنیٹس کے حسب ضرورت وسائل کی تعریف کریں (CRDs)۔ ٹریفک کی روٹنگ کے لئے اہم API وسائل مجازی خدمات اور منزل کے قواعد ہیں:
ایک مجازی سروس یہ طے کرتی ہے کہ درخواستیں آئیستیوں کی میش میں کسی سروس کی طرف کیسے روٹ کی جائیں گی۔ اس میں ایک یا زیادہ روٹنگ کے قواعد شامل ہوتے ہیں جو ترتیب میں جانچے جاتے ہیں۔ مجازی سروس کی روٹنگ کے بعد، منزل کے قواعد لاگو ہوتے ہیں تاکہ کسی منزل کی طرف ٹریفک کا کنٹرول کیا جا سکے، جیسے کہ سروس کی مختلف حالتوں کو ورژن کے لحاظ سے گروپ کرنا۔
آئیستیوں کی سیکیورٹی کی بنیاد ہر سروس کے لئے مضبوط شناختیں ہیں۔ آئیستیوں ایجنٹس ہر اینوائے پروکسی کے ساتھ مل کر آئیستیود کے ساتھ چابی اور سرٹیفکیٹ کی گردش کو خودکار کرتے ہیں:
آئیستیوں دو قسم کی تصدیق کی حمایت کرتا ہے: ہمسایہ کی تصدیق اور درخواست کی تصدیق۔ ہمسایہ کی تصدیق آئیستیوں کے میوچل TLS حل کے ساتھ سروس-ٹو-سروس مواصلات کو محفوظ بناتی ہے۔ درخواست کی تصدیق اختتامی صارف کی تصدیق کو ایک حسب ضرورت تصدیق فراہم کنندہ یا اوپن آئی ڈی کنیکٹ (OIDC) فراہم کنندہ کے ذریعہ JWT کی توثیق کے ذریعے سنبھالتی ہے۔
آئیستیوں رسائی کے کنٹرول کو سیکیورٹی کی پالیسیوں کے نفاذ کے ذریعہ نافذ کرتا ہے۔ یہ پالیسیاں اینوائے پروکسی میں اندرونی ٹریفک کو منظم کرتی ہیں، جس سے میش، نیAMESPACE، اور سروس کی سطح پر رسائی کنٹرول کی اجازت ملتی ہے۔
آئیستیوں ہر سروس مواصلت کے لئے تفصیلی ٹیلی میٹری تیار کرتا ہے، جس میں میٹرکس، تقسیم شدہ نشانات، اور رسائی کے لاگ شامل ہیں۔ یہ ٹیلی میٹری پروکسی کی سطح، سروس کی نوعیت، اور کنٹرول پلین کی میٹرکس کو شامل کرتی ہے۔
پہلے، مکسٹر آئیستیوں کی ٹیلی میٹری کی آرکیٹیکچر میں مرکزی جزو تھا۔ تاہم، ٹیلی میٹری v2 مکسٹر کی خصوصیات کو اینوائے پروکسی پلگ ان کے ساتھ تبدیل کرتی ہے:
آئیستیوں اینوائے پروکسی کے ذریعے تقسیم شدہ نشانات پیدا کرتا ہے اور مختلف نشانی بیک اینڈ جیسے Zipkin، Jaeger، Lightstep، اور Datadog کی حمایت کرتا ہے۔ نشانی پیدا کرنے کی نمونہ کی شرح قابل ترتیب ہوتی ہے۔ مزید برآں، آئیستیوں اپنی خدمات کی ٹریفک کے لئے حسب ضرورت شکلوں میں رسائی کے لاگ پیدا کرتا ہے۔
کافی پس منظر، آئیستیوں کو عمل میں دیکھیں! ہم ایک کیوبیرنیٹس کلسٹر پر آئیستیوں کو نصب کریں گے اور اس کی طاقت کو دکھانے کے لئے ایک سادہ مائیکروسروسز ایپلیکیشن کا استعمال کریں گے۔
آئیستیوں کئی طریقوں سے نصب کیا جا سکتا ہے، لیکن آپ کے آپریٹنگ سسٹم (جیسے Windows) کے لئے تازہ ترین ریلیز کو ڈاؤن لوڈ کرنا اور نکالنا سب سے آسان ہے۔ نکالا گیا پیکج آپ کے بن فولڈر میں istioctl کلائنٹ شامل کرتا ہے۔ اس کے بعد آئیستیوں کو اپنے کیوبیرنیٹس کلسٹر پر نصب کرنے کے لئے istioctl کا استعمال کریں:
istioctl install --set profile=demo -y
یہ آئیستیوں کے اجزاء کو ڈیفالٹ کیوبیرنیٹس کلسٹر پر ڈیمو پروفائل کے ذریعے نصب کرتا ہے۔ اگر ضرورت ہو تو 'ڈیمو' کو کسی دوسرے فراہم کنندہ-خصوصی پروفائل سے تبدیل کریں۔
اگلا، آئیستیوں کو بتائیں کہ جب اس کیوبیرنیٹس کلسٹر میں ایپس کی تعیناتی ہو تو خود بخود اینوائے سائیڈکار پروکسیوں کو شامل کرے:
kubectl label namespace default istio-injection=enabled
ہم یہاں kubectl کا استعمال کر رہے ہیں، اس خیال کے ساتھ کہ آپ کے پاس ایک کیوبیرنیٹس کلسٹر (جیسے Minikube) اور کیوبیرنیٹس CLI kubectl سیٹ اپ ہے۔
اس مظاہرے کے لئے ایک سادہ آن لائن آرڈرنگ ایپلیکیشن کا تصور کریں۔ اس میں تین مائیکروسروسز شامل ہیں جو آرڈرز کی تکمیل کے لئے مل کر کام کرتی ہیں:
ہم مائیکروسروس کی تفصیلات میں نہیں جائیں گے، لیکن انہیں اسپرنگ بوٹ اور REST APIs کے ساتھ بنانا آسان ہے۔ اہم بات یہ ہے کہ ان مائیکروسروسز کے لئے کیوبیرنیٹس پر تعینات کرنے کے لئے ڈاکر امیجز بنائیں۔
کیوبیرنیٹس کلسٹروں جیسے 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 کمانڈ کا استعمال کرتے ہوئے دستی طور پر اینوائے سائیڈکار پروکسیوں کو شامل کریں۔
آئیستیوں بنیادی طور پر میش کی ٹریفک کو سنبھالتا ہے۔ پیش فرض طور پر، میش کے اندر یا باہر آنے یا جانے والی ٹریفک بلاک کی جاتی ہے۔ آئیستیوں گیٹ ویز کا استعمال کرتا ہے تاکہ ان باؤنڈ اور آؤٹ باؤنڈ میش ٹریفک کا انتظام کرے، جس سے آپ کو یہ کنٹرول ملتا ہے کہ کیا داخل ہوتا ہے یا نکلتا ہے۔ آئیستیوں پیش کنفیگرڈ گیٹ وے پروکسی کی تعیناتیاں پیش کرتا ہے: 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
ہم یہاں ڈیفالٹ آئیستیوں کے انگریس کنٹرولر کا استعمال کر رہے ہیں۔ اس کے علاوہ، ہم نے بکنگ سروس کے لئے درخواستیں روٹ کرنے کے لئے ایک ورچوئل سروس کی وضاحت کی ہے۔
آپ آؤٹ باؤنڈ میش ٹریفک کے لئے بھی ایک ایگریس گیٹ وے کی وضاحت کر سکتے ہیں۔
ہم نے آئیستیوں کے ساتھ کیوبیرنیٹس پر ایک سادہ ایپلیکیشن تعینات کی ہے۔ آئیستیوں کی طاقتور خصوصیات کو دریافت کریں اور دیکھیں کہ وہ ہماری ایپلیکیشن کو کس طرح بہتر بنا سکتی ہیں۔
تصور کریں کہ آپ شپنگ سروس جیسے مائیکروسروس کی کئی ورژنز تعینات کر رہے ہیں۔ آپ چاہتے ہیں کہ نئی خصوصیات کو مرحلہ وار متعارف کرایا جائے بغیر کہ تمام صارفین متاثر ہوں۔ درخواست کی روٹنگ آپ کو یہ کرنے کی اجازت دیتی ہے، ٹریفک کے ایک حصے کو تازہ ترین ورژن کی طرف ہدایت کر کے۔
اس کے حصول کے لئے ورچوئل سروس کی روٹنگ کے قواعد کا استعمال کریں۔
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
روٹنگ کے قواعد ہیڈرز یا دیگر خصوصیات کی بنیاد پر ٹریفک کو بھی فلٹر کر سکتے ہیں۔ منزل کے میدان میں مخصوص درخواستوں کے لئے ہدف سروس کو طے کرتا ہے۔
سرکٹ بریکر کے ساتھ زنجیری ناکامیوں کو روکیں۔ یہ پیٹرن غلطیوں کا پتہ لگاتا ہے اور ناکام سروسز کو عارضی طور پر ٹریفک روک دیتا ہے، آپ کی ایپلیکیشن کی مجموعی صحت کی حفاظت کرتا ہے۔
آئیستیوں کی منزل کے قواعد آپ کو ان خدمات کے لئے سرکٹ توڑنے کے طرز عمل کی تشکیل کرنے کی اجازت دیتا ہے جیسے کہ انوینٹری سروس۔
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
زیادہ سے زیادہ کنکشنز، زیر التواء درخواستیں، اور کنکشن فی درخواست کی درخواستوں کی حد لگا کر آپ مؤثر طریقے سے ٹریفک کا انتظام کر سکتے ہیں اور اضافے سے بچ سکتے ہیں۔
میوچل 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 بھر میں کی ترتیبات کو ختم کرتی ہیں۔
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 کی خصوصیت تخلیق کرتا ہے۔
آئیستیوں تقسیم شدہ مائیکروسروس آرکیٹیکچر میں عام چیلنجز کے انتظام کو آسان بناتا ہے۔ تاہم، اس کی پیچیدگی تعیناتیوں میں اضافی بوجھ ڈال سکتی ہے۔ جیسے کہ کوئی بھی ٹول، آئیستیوں جادوئی حل نہیں ہے اور اس پر غور و فکر کی ضرورت ہے۔
جبکہ سروس میش فوائد پیش کرتے ہیں، ان نقصانات پر غور کریں:
سروس میش فوائد پیش کرتے ہیں، لیکن آپ کی ایپلیکیشن کی پیچیدگی کا محتاط اندازہ لگانا بہت ضروری ہے۔ فوائد کا وزن کریں اور اضافی پیچیدگی کے خلاف۔
آئیستیوں ایک مقبول سروس میش ہے جو صنعت کے رہنماوں کی حمایت حاصل ہے، لیکن یہ واحد اختیار نہیں ہے۔ یہاں Linkerd اور Consul کا مختصر جائزہ ہے۔
Linkerd ایک کیوبیرنیٹس-نیٹو، اوپن سورس سروس میش ہے جو مقبولیت حاصل کر رہا ہے۔ یہ ایک CNCF انکیوبیٹنگ پروجیکٹ ہے اور آئیستیوں کی طرح TCP پروکسیز کا استعمال کرتا ہے۔ Linkerd کا Rust-based مائیکرو پروکسی Linkerd-proxy کہلاتا ہے۔
Linkerd عام طور پر آئیستیوں کی نسبت سادہ ہے کیونکہ اس کی توجہ کیوبیرنیٹس پر ہے۔ تاہم، اس کی خصوصیات کا سیٹ آئیستیوں سے ملتا جلتا ہے، اور اس کی بنیادی آرکیٹیکچر بھی ملتی جلتی ہے۔ Linkerd میں ایک صارف کے انٹرفیس، ڈیٹا پلین، اور کنٹرول پلین شامل ہیں۔
Consul ایک اوپن سورس سروس میش ہے جو HashiCorp کی جانب سے تیار کردہ ہے جو دیگر HashiCorp کے بنیادی ڈھانچے کے ٹولز کے ساتھ انضمام کرتا ہے۔ Consul کا ڈیٹا پلین پروکسی اور مقامی انضمام ماڈل دونوں کی حمایت کرتا ہے۔ یہ ایک بلٹ ان پروکسی پیش کرتا ہے، لیکن یہ اینوائے کے ساتھ بھی کام کر سکتا ہے۔
Consul کیوبیرنیٹس سے آگے چلتا ہے، جیسے کہ نومیڈ جیسے پلیٹ فارم کی حمایت کرتا ہے۔ یہ ہر نوڈ پر صحت کے چیک کے لئے ایجنٹس کا استعمال کرتا ہے اور ڈیٹا اسٹوریج اور دوبارہ پیدا کرنے کے لئے Consul سرورز کے ساتھ بات چیت کرتا ہے۔ اگرچہ یہ معیاری سروس میش کی خصوصیات پیش کرتا ہے، Consul کی تعیناتی اور انتظام زیادہ پیچیدہ ہے۔
اس ٹیوٹوریل نے سروس میش آرکیٹیکچر کی بنیادیات اور آئیستیوں کی طاقتور صلاحیتوں کا جائزہ لیا ہے۔ ہم نے آئیستیوں کے بنیادی ڈھانچے، اجزاء، اور عملی ایپلیکیشنز میں غور کیا ہے۔ آخر میں، آپ کو آئیستیوں کو عام منظرناموں کے لئے نصب اور استعمال کرنے کا ایک ٹھوس سمجھ بوجھ حاصل ہونا چاہئے۔
کسٹمر کا فیڈ بیک
درج ذیل جائزے ہماری ویب سائٹ پر جمع کیے گئے تھے۔
سوالات ہیں؟ نیچے جواب تلاش کریں!
ہمارے اکثر پوچھے گئے سوالات