Kubernetes ایڈونچر ڈیلی موشن: بادلوں میں انفراسٹرکچر بنانا + آن پریمیسس

Kubernetes ایڈونچر ڈیلی موشن: بادلوں میں انفراسٹرکچر بنانا + آن پریمیسس

نوٹ. ترجمہ: ڈیلی موشن دنیا کی سب سے بڑی ویڈیو ہوسٹنگ سروسز میں سے ایک ہے اور اس وجہ سے ایک قابل ذکر Kubernetes صارف ہے۔ اس مواد میں، سسٹم آرکیٹیکٹ ڈیوڈ ڈونچیز K8s پر مبنی کمپنی کے پروڈکشن پلیٹ فارم بنانے کے نتائج شیئر کرتے ہیں، جو GKE میں کلاؤڈ انسٹالیشن کے ساتھ شروع ہوا اور ایک ہائبرڈ حل کے طور پر ختم ہوا، جس نے بہتر ردعمل کے اوقات اور انفراسٹرکچر کے اخراجات میں بچت کی اجازت دی۔

کور API کو دوبارہ بنانے کا فیصلہ کرنا Dailymotion تین سال پہلے، ہم ایپلیکیشنز کی میزبانی کرنے اور اسے آسان بنانے کا ایک زیادہ موثر طریقہ تیار کرنا چاہتے تھے۔ ترقی اور پیداوار میں عمل. اس مقصد کے لیے، ہم نے ایک کنٹینر آرکیسٹریشن پلیٹ فارم استعمال کرنے کا فیصلہ کیا اور قدرتی طور پر Kubernetes کا انتخاب کیا۔

Kubernetes پر مبنی اپنا پلیٹ فارم بنانا کیوں قابل ہے؟

گوگل کلاؤڈ کا استعمال کرتے ہوئے بغیر کسی وقت پیداوار کی سطح کا API

موسم گرما 2016

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

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

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

آپ نے GKE کا انتخاب کیوں کیا؟

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

Kubernetes ایڈونچر ڈیلی موشن: بادلوں میں انفراسٹرکچر بنانا + آن پریمیسس
ڈیلی موشن میں GKE کلسٹرز

چونکہ ڈیلی موشن دنیا بھر میں دستیاب ایک ویڈیو پلیٹ فارم ہے، اس لیے ہم واقعی انتظار کے وقت کو کم کرکے سروس کے معیار کو بہتر بنانا چاہتے تھے۔ (تاخیر). پہلے ہمارا API صرف پیرس میں دستیاب تھا، جو کہ سب سے بہتر تھا۔ میں نہ صرف یورپ بلکہ ایشیا اور امریکہ میں بھی ایپلی کیشنز کی میزبانی کرنے کے قابل ہونا چاہتا ہوں۔

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

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

Kubernetes ایڈونچر ڈیلی موشن: بادلوں میں انفراسٹرکچر بنانا + آن پریمیسس
گوگل لوڈ بیلنسنگ کی نگرانی

ہمارا پلیٹ فارم بھی GPUs کا بھاری استعمال کرتا ہے۔ گوگل کلاؤڈ آپ کو انہیں براہ راست Kubernetes کلسٹرز میں بہت مؤثر طریقے سے استعمال کرنے کی اجازت دیتا ہے۔

اس وقت، بنیادی ڈھانچے کی ٹیم بنیادی طور پر فزیکل سرورز پر تعینات لیگیسی اسٹیک پر مرکوز تھی۔ اسی لیے ایک منظم سروس (بشمول Kubernetes ماسٹرز) کا استعمال ہماری ضروریات کو پورا کرتا ہے اور ہمیں ٹیموں کو مقامی کلسٹرز کے ساتھ کام کرنے کی تربیت دینے کی اجازت دیتا ہے۔

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

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

مقامی کنٹینر آرکیسٹریشن پلیٹ فارم ڈیلی موشن کا آغاز

خزاں 2016

ان حالات میں جب پورا اسٹیک پیداوار کے لیے تیار تھا، اور API پر کام کرتا ہے۔ جاری رکھا، یہ علاقائی کلسٹرز پر توجہ مرکوز کرنے کا وقت تھا۔

اس وقت صارفین ہر ماہ 3 ارب سے زیادہ ویڈیوز دیکھ رہے تھے۔ یقیناً، ہمارے پاس کئی سالوں سے مواد کی ترسیل کا اپنا وسیع نیٹ ورک ہے۔ ہم اس صورتحال سے فائدہ اٹھانا چاہتے تھے اور موجودہ ڈیٹا سینٹرز میں Kubernetes کلسٹرز کو تعینات کرنا چاہتے تھے۔

ڈیلی موشن کا انفراسٹرکچر چھ ڈیٹا سینٹرز میں 2,5 ہزار سے زیادہ سرورز پر مشتمل تھا۔ ان سب کو سالٹ اسٹیک کا استعمال کرتے ہوئے ترتیب دیا گیا ہے۔ ہم نے ماسٹر اور ورکر نوڈس کے ساتھ ساتھ ایک etcd کلسٹر بنانے کے لیے تمام ضروری ترکیبیں تیار کرنا شروع کر دیں۔

Kubernetes ایڈونچر ڈیلی موشن: بادلوں میں انفراسٹرکچر بنانا + آن پریمیسس

نیٹ ورک کا حصہ

ہمارا نیٹ ورک مکمل طور پر بند ہے۔ ہر سرور Exabgp کا استعمال کرتے ہوئے نیٹ ورک پر اپنے IP کی تشہیر کرتا ہے۔ ہم نے کئی نیٹ ورک پلگ انز کا موازنہ کیا اور صرف ایک جو تمام ضروریات کو پورا کرتا ہے (استعمال شدہ L3 نقطہ نظر کی وجہ سے) کیلیکو۔. یہ موجودہ نیٹ ورک انفراسٹرکچر ماڈل میں بالکل فٹ بیٹھتا ہے۔

چونکہ ہم تمام دستیاب بنیادی ڈھانچے کے عناصر کو استعمال کرنا چاہتے تھے، اس لیے سب سے پہلے ہمیں اپنے گھریلو نیٹ ورک کی افادیت کا پتہ لگانا تھا (تمام سرورز پر استعمال کیا جاتا ہے): اسے Kubernetes نوڈس کے ساتھ نیٹ ورک پر IP ایڈریس رینج کی تشہیر کرنے کے لیے استعمال کریں۔ ہم نے کیلیکو کو پوڈز کو آئی پی ایڈریسز تفویض کرنے کی اجازت دی، لیکن نیٹ ورک آلات پر BGP سیشنز کے لیے استعمال نہیں کیا اور اب بھی نہیں کیا۔ درحقیقت، روٹنگ کو Exabgp کے ذریعے سنبھالا جاتا ہے، جو Calico کے زیر استعمال ذیلی نیٹس کی تشہیر کرتا ہے۔ یہ ہمیں اندرونی نیٹ ورک سے کسی بھی پوڈ تک پہنچنے کی اجازت دیتا ہے (اور خاص طور پر لوڈ بیلنسرز سے)۔

ہم داخلے کی ٹریفک کو کیسے منظم کرتے ہیں۔

آنے والی درخواستوں کو مطلوبہ سروس پر ری ڈائریکٹ کرنے کے لیے، Ingress کنٹرولر کو استعمال کرنے کا فیصلہ کیا گیا کیونکہ یہ Kubernetes ingress وسائل کے ساتھ انضمام ہے۔

تین سال پہلے، nginx-ingress-controller سب سے زیادہ بالغ کنٹرولر تھا: Nginx ایک طویل عرصے سے موجود تھا اور اپنے استحکام اور کارکردگی کے لیے جانا جاتا تھا۔

اپنے سسٹم میں، ہم نے کنٹرولرز کو 10 گیگا بٹ بلیڈ سرورز پر رکھنے کا فیصلہ کیا۔ ہر کنٹرولر متعلقہ کلسٹر کے kube-apiserver اینڈ پوائنٹ سے جڑا ہوا تھا۔ ان سرورز نے Exabgp کو عوامی یا نجی IP پتوں کی تشہیر کے لیے بھی استعمال کیا۔ ہماری نیٹ ورک ٹوپولوجی ہمیں ان کنٹرولرز سے BGP استعمال کرنے کی اجازت دیتی ہے تاکہ NodePort جیسی سروس کا استعمال کیے بغیر تمام ٹریفک کو براہ راست پوڈ تک پہنچایا جا سکے۔ یہ نقطہ نظر نوڈس کے درمیان افقی ٹریفک سے بچنے میں مدد کرتا ہے اور کارکردگی کو بہتر بناتا ہے۔

Kubernetes ایڈونچر ڈیلی موشن: بادلوں میں انفراسٹرکچر بنانا + آن پریمیسس
انٹرنیٹ سے پوڈ تک ٹریفک کی نقل و حرکت

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

گوگل کلاؤڈ سے ڈیلی موشن انفراسٹرکچر میں ٹریفک کی منتقلی۔

خزاں 2018

تقریباً دو سال کی تعمیر، جانچ اور ٹیوننگ کے بعد، آخر کار ہمارے پاس کچھ ٹریفک کو قبول کرنے کے لیے ایک مکمل Kubernetes اسٹیک تیار ہے۔

Kubernetes ایڈونچر ڈیلی موشن: بادلوں میں انفراسٹرکچر بنانا + آن پریمیسس

موجودہ روٹنگ کی حکمت عملی کافی آسان ہے، لیکن ضروریات کو پورا کرنے کے لیے کافی ہے۔ عوامی IPs کے علاوہ (گوگل کلاؤڈ اور ڈیلی موشن پر)، AWS روٹ 53 کا استعمال پالیسیاں ترتیب دینے اور صارفین کو ہماری پسند کے کلسٹر پر بھیجنے کے لیے کیا جاتا ہے۔

Kubernetes ایڈونچر ڈیلی موشن: بادلوں میں انفراسٹرکچر بنانا + آن پریمیسس
روٹ 53 کا استعمال کرتے ہوئے روٹنگ پالیسی کی مثال

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

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

چونکہ ہمارے GKE کلسٹرز کو کسٹم میٹرکس کا استعمال کرتے ہوئے آٹو اسکیل کے لیے کنفیگر کیا گیا ہے، اس لیے وہ آنے والی ٹریفک کی بنیاد پر اوپر/نیچے پیمانے پر کرتے ہیں۔

عام موڈ میں، تمام علاقائی ٹریفک کو مقامی کلسٹر کی طرف بھیج دیا جاتا ہے، اور مسائل کی صورت میں GKE ایک ریزرو کے طور پر کام کرتا ہے (روٹ 53 کے ذریعے صحت کی جانچ پڑتال کی جاتی ہے)۔

...

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

مترجم سے PS

آپ Kubernetes کے بارے میں ایک اور حالیہ Dailymotion پوسٹ میں بھی دلچسپی لے سکتے ہیں۔ یہ بہت سے Kubernetes کلسٹرز پر Helm کے ساتھ ایپلی کیشنز کی تعیناتی کے لیے وقف ہے اور شائع کیا گیا تھا تقریباً ایک ماہ پہلے

ہمارے بلاگ پر بھی پڑھیں:

ماخذ: www.habr.com

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