QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

جوش ايوانز Netflix microservices جي افراتفري ۽ رنگين دنيا جي باري ۾ ڳالهائي ٿو، بلڪل بنيادي ڳالهين سان شروع ٿئي ٿو - مائڪرو سروسز جي اناتومي، ورهايل سسٽم سان لاڳاپيل چئلينج، ۽ انهن جا فائدا. هن بنياد تي تعمير ڪندي، هو ثقافتي، آرڪيٽيڪچرل، ۽ عملياتي عملن کي ڳولي ٿو جيڪي مائڪرو سروس جي مهارت کي ڏسندا آهن.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 1
QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 2
QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 3

آپريشنل drift جي برعڪس، خدمت جي بين الاقواميت لاء نئين ٻولين جو تعارف ۽ نئين ٽيڪنالاجيون جهڙوڪ ڪنٽينرز ماحول ۾ نئين پيچيدگي کي شامل ڪرڻ لاء شعوري فيصلا آهن. منهنجي آپريشنز ٽيم Netflix لاءِ بهترين ٽيڪنالاجي روڊ ميپ تي معياري بڻيل هئي، جيڪا جاوا ۽ EC2 جي بنياد تي اڳواٽ بيان ڪيل بهترين طريقن ۾ رکيل هئي، پر جيئن جيئن ڪاروبار وڌندو ويو، ڊولپرز نوان جزا شامل ڪرڻ شروع ڪيا جهڙوڪ Python، Ruby، Node-JS، ۽ Docker.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

مون کي تمام گهڻو فخر آهي ته اسان پهريون ماڻهو هئاسين جيڪي اسان جي پراڊڪٽ لاءِ وڪيل هئاسين بغير گراهڪ جي شڪايتن جو انتظار ڪرڻ کان سواءِ عظيم ڪم ڪرڻ لاءِ. اهو سڀ ڪجهه سادو شروع ٿيو - اسان وٽ Python ۾ آپريٽنگ پروگرام هئا ۽ روبي ۾ ڪجهه بيڪ-آفيس ايپليڪيشنون، پر شيون تمام گهڻيون دلچسپ ٿي ويون جڏهن اسان جي ويب ڊولپرز اعلان ڪيو ته اهي JVM کي ختم ڪرڻ وارا آهن ۽ ويب کي منتقل ڪرڻ وارا آهن. نوڊ سافٽ ويئر پليٽ فارم تي ايپليڪيشن. js. Docker جي تعارف کان پوء، شيون وڌيڪ پيچيده ٿي ويون. اسان منطق جي پيروي ڪئي ۽ ٽيڪنالاجيون جيڪي اسان سان گڏ آيا هئا حقيقت بڻجي ويا جڏهن اسان انهن کي گراهڪن لاء لاڳو ڪيو ڇاڪاڻ ته انهن تمام گهڻو احساس ڪيو. مان توکي ٻڌايان ٿو ته ائين ڇو آهي.

API گيٽ وي اصل ۾ عظيم اسڪرپٽ کي ضم ڪرڻ جي صلاحيت رکي ٿو جيڪي UI ڊولپرز لاءِ آخري پوائنٽ جي طور تي ڪم ڪري سگهن ٿيون. انهن انهن مان هر هڪ اسڪرپٽ کي اهڙي طرح تبديل ڪيو ته تبديليون ڪرڻ کان پوءِ اهي انهن کي پروڊڪشن ۽ پوءِ يوزر ڊيوائسز تي ڊيپلائي ڪري سگھن ٿيون، ۽ اهي سڀ تبديليون ان پوائنٽس سان هم وقت ڪيون ويون جيڪي API گيٽ وي ۾ هلنديون هيون.

بهرحال، هي هڪ نئين monolith ٺاهڻ جو مسئلو ٻيهر ورجائي ٿو جتي API سروس ڪوڊ سان اوورلوڊ ڪيو ويو هو اهڙي طرح مختلف ناڪامي منظرنامي واقع ٿي. مثال طور، ڪي آخري پوائنٽس ختم ڪيا ويا، يا اسڪرپٽ بي ترتيب طور تي ٺاهيا ويا ڪيترن ئي نسخن جي ڪنهن به شيءَ جو نسخو API سروس جي سڀني موجود ياداشتن کي ورتو.

اهو منطقي هو انهن پوائنٽن کي وٺڻ ۽ انهن کي API سروس مان ٻاهر ڪڍڻ. هن کي ڪرڻ لاء، اسان Node.js اجزاء ٺاهيا جيڪي ڊاکر ڪنٽينرز ۾ ننڍيون ايپليڪيشنن وانگر هلن ٿيون. هي اسان کي انهن نوڊ ايپليڪيشنن جي ڪري ڪنهن به مسئلن ۽ حادثن کي الڳ ڪرڻ جي اجازت ڏني.

انهن تبديلين جي قيمت ڪافي وڏي آهي ۽ هيٺين عنصرن تي مشتمل آهي:

  • پيداوار جا اوزار. نئين ٽيڪنالاجي کي منظم ڪرڻ لاءِ نون اوزارن جي ضرورت هئي ڇو ته UI ٽيم، هڪ موثر ماڊل ٺاهڻ لاءِ تمام سٺيون اسڪرپٽ استعمال ڪندي، انفراسٽرڪچر کي منظم ڪرڻ لاءِ گهڻو وقت خرچ ڪرڻ جي ضرورت نه هئي، انهن کي صرف اسڪرپٽ لکڻو پوندو هو ۽ انهن جي ڪارڪردگي کي جانچڻ لاءِ.
    موقعي جي بصيرت ۽ ترتيب ڏيڻ - هڪ اهم مثال ڪارڪردگي ڊرائيور جي معلومات کي بي نقاب ڪرڻ لاء نئين اوزار جي ضرورت آهي. اهو ڄاڻڻ ضروري هو ته پروسيسر تي ڪيترو قبضو هو، ميموري ڪيئن استعمال ٿي رهي هئي، ۽ ان معلومات کي گڏ ڪرڻ لاءِ مختلف اوزارن جي ضرورت هئي.
  • بنيادي تصويرن جو ٽڪرا - سادو بنيادي AMI وڌيڪ ٽڪرا ۽ خاص ٿي چڪو آهي.
  • نوڊ جو انتظام. هتي ڪو به آف دي شيلف آرڪيٽيڪچر يا ٽيڪنالاجي موجود ناهي جيڪا توهان کي بادل ۾ نوڊس کي منظم ڪرڻ جي اجازت ڏئي ٿي، تنهنڪري اسان ٽائيٽس ٺاهيو، هڪ ڪنٽينر مئنيجمينٽ پليٽ فارم جيڪو اسپيبلبل ۽ قابل اعتماد ڪنٽينر جي جوڙجڪ ۽ Amazon AWS سان ڪلائوڊ انٽيگريشن مهيا ڪري ٿو.
  • لائبريري يا پليٽ فارم جو نقل. پليٽ فارم جي ساڳي بنيادي ڪارڪردگي سان نئين ٽيڪنالاجي مهيا ڪرڻ جي ضرورت آهي ان کي ڪلائوڊ بيسڊ Node.js ڊولپر ٽولز ۾ نقل ڪرڻ.
  • سکيا وکر ۽ صنعتي تجربو. نئين ٽيڪنالاجي جو تعارف ناگزير طور تي نوان چئلينج پيدا ڪري ٿو جن تي غالب ٿيڻ گهرجي ۽ انهن مان سکڻ گهرجي.

اهڙيء طرح، اسان پاڻ کي هڪ "پکي روڊ" تائين محدود نه ڪري سگهيا آهيون ۽ اسان جي ٽيڪنالاجي کي اڳتي وڌائڻ لاء مسلسل نوان طريقا ٺاهي رهيا هئاسين. قيمتن کي گهٽائڻ لاءِ، اسان محدود مرڪزي مدد ڪئي ۽ JVM، نون نوڊس، ۽ ڊاڪر تي ڌيان ڏنو. اسان اثرائتي اثر کي ترجيح ڏني، ٽيمن کي سندن فيصلن جي قيمت بابت آگاهي ڏني، ۽ انھن کي حوصلا افزائي ڪئي ته اھي طريقا ڳولڻ لاءِ جيڪي انھن اعليٰ اثر وارن حلن کي ٻيهر استعمال ڪرڻ لاءِ جيڪي انھن اڳ ۾ ئي ٺاھيا آھن. اسان هي طريقو استعمال ڪيو جڏهن خدمت کي پرڏيهي ٻولين ۾ ترجمو ڪري پراڊڪٽ کي بين الاقوامي گراهڪن تائين پهچائڻ لاءِ. مثالن ۾ شامل آهن نسبتاً سادو ڪلائنٽ لائبرريون جيڪي پاڻمرادو ٺاهي سگھجن ٿيون، ته جيئن پٿون ورجن، هڪ روبي ورجن، هڪ جاوا ورجن وغيره ٺاهڻ بلڪل آسان آهي.

اسان مسلسل ثابت ڪيل ٽيڪنالاجيون استعمال ڪرڻ جا موقعا ڳولي رهيا هئاسين جيڪي پاڻ کي هڪ هنڌ ۽ ٻين ساڳئي حالتن ۾ ثابت ڪري چڪا هئا.

اچو ته آخري عنصر بابت ڳالهايون - تبديليون، يا تبديليون. ڏسو ته ڪيئن اسان جي پراڊڪٽ جو استعمال اڻ برابريءَ سان هفتي جي ڏينهن ۽ ڪلاڪ جي حساب سان سڄي ڏينهن ۾ مختلف ٿئي ٿو. توھان چئي سگھوٿا ته صبح 9 وڳي Netflix لاءِ سڀ کان ڏکيو وقت آھي، جڏھن سسٽم تي لوڊ وڌ ۾ وڌ پهچي وڃي.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

اسان ڪيئن حاصل ڪري سگهون ٿا تيز رفتار سافٽ ويئر جي جدت تي عمل درآمد جي، يعني سسٽم ۾ مسلسل نيون تبديليون آڻيندي، سروس پهچائڻ ۾ رڪاوٽ پيدا ڪرڻ ۽ اسان جي گراهڪن کي تڪليف پيدا ڪرڻ کان سواءِ؟ Netflix اهو حاصل ڪيو Spinnaker جي استعمال ذريعي، هڪ نئون عالمي بادل تي ٻڌل انتظام ۽ مسلسل پهچائڻ (CD) پليٽ فارم.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

تنقيدي طور تي، Spinnaker اسان جي بهترين عملن کي ضم ڪرڻ لاءِ ڊزائين ڪيو ويو هو ته جيئن اسان اجزاء کي پيداوار ۾ ترتيب ڏيون ٿا، اسان پيداوار کي سڌو سنئون اسان جي ميڊيا پهچائڻ واري ٽيڪنالاجي ۾ ضم ڪري سگهون ٿا.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

اسان اسان جي ترسيل پائپ لائن ۾ ٻه ٽيڪنالاجيون شامل ڪرڻ جي قابل ٿي چڪا آهيون جن کي اسان تمام گهڻو اهميت ڏيون ٿا: خودڪار ڪينري تجزيو ۽ اسٽيج ٿيل ڊيپلائيمينٽ. ڪينري تجزيي جو مطلب آهي ته اسان ڪوڊ جي نئين ورزن ڏانهن ٽرئفڪ جي هڪ چال کي سڌو رستو ڏيکاريندا آهيون، ۽ باقي پيداوار واري ٽرئفڪ کي پراڻي ورزن ذريعي گذري ٿو. پوء اسان چيڪ ڪريون ٿا ته نئون ڪوڊ ڪيئن ڪم سان نقل ڪري ٿو - موجوده هڪ کان بهتر يا بدتر.

هڪ ٺهڪندڙ رول آئوٽ جو مطلب آهي ته جيڪڏهن هڪ علائقي ۾ هڪ رول آئوٽ مسئلو آهي، اسان ٻئي علائقي ۾ رول آئوٽ ڏانهن وڃو. انهي صورت ۾، مٿي ڄاڻايل چيڪ لسٽ ۾ پيداوار جي پائپ لائن ۾ شامل ٿيڻ گهرجي. مان توھان جو ڪجھ وقت بچائيندس ۽ توھان کي صلاح ڏيندس توھان کي ڏسو منھنجي پوئين ڳالھ، انجنيئرنگ گلوبل نيٽ فلڪس آپريشنز ان ڪلائوڊ ۾، جيڪڏھن توھان چاھيو ٿا ته ھن موضوع کي وڌيڪ گہرا ڪرڻ ۾. تقرير جي وڊيو رڪارڊنگ سلائيڊ جي هيٺان ڏنل لنڪ تي عمل ڪندي ڏسي سگهجي ٿي.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

ڳالهين جي آخر ۾، مان مختصر طور تي Netflix جي تنظيم ۽ فن تعمير بابت ڳالهائيندس. شروعات ۾ اسان وٽ هڪ اسڪيم هئي جنهن کي اليڪٽرڪ ڊيليوري سڏيو ويندو هو، جيڪو NRDP 1.x ميڊيا اسٽريمنگ جو پهريون نسخو هو. اصطلاح "backstream" هتي استعمال ڪري سگهجي ٿو ڇاڪاڻ ته شروعاتي طور تي صارف صرف ڊوائيس تي بعد ۾ پلے بیک لاء مواد ڊائون لوڊ ڪري سگهي ٿو. Netflix جو پهريون ڊجيٽل ترسيل پليٽ فارم، واپس 2009 ۾، ڪجهه هن طرح ڏٺو.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

يوزر ڊيوائس Netflix ايپليڪيشن تي مشتمل آهي، جنهن ۾ UI انٽرفيس، سيڪيورٽي ماڊلز، سروس ايڪٽيويشن ۽ پلے بیک شامل آهي، NRDP پليٽ فارم تي ٻڌل آهي - Netflix تيار ڊيوائس پليٽ فارم.

ان وقت يوزر انٽرفيس تمام سادو هو. ان ۾ شامل ھوندو ھو جنھن کي Queque Reader سڏيو ويندو ھو، ۽ استعمال ڪندڙ سائيٽ ڏانھن ويندو ھو Queque ۾ ڪجھ شامل ڪرڻ لاءِ ۽ پوءِ شامل ڪيل مواد کي پنھنجي ڊوائيس تي ڏسي. هاڪاري ڳالهه اها هئي ته فرنٽ اينڊ ٽيم ۽ پوئين آخر ٽيم جو تعلق هڪ ئي اليڪٽرانڪ ڊليوري تنظيم سان هو ۽ انهن جو ويجهو ڪم ڪندڙ تعلق هو. ادا لوڊ XML جي بنياد تي ٺاهي وئي. ساڳئي وقت، ڊي وي ڊي ڪاروبار لاء Netflix API ٺاهي وئي، جيڪا ٽئين پارٽي جي ايپليڪيشنن کي اسان جي خدمت ڏانهن ٽرئفڪ کي سڌو ڪرڻ لاء همٿايو.

بهرحال، Netflix API اسان کي هڪ جديد يوزر انٽرفيس سان مدد ڪرڻ لاءِ چڱيءَ طرح تيار ڪيو ويو، جنهن ۾ سڀني مواد جي ميٽاڊيٽا، ڪهڙيون فلمون موجود هيون بابت معلومات، جنهن واچ لسٽون ٺاهڻ جي صلاحيت پيدا ڪئي. اهو هڪ عام REST API جي بنياد تي JSON اسڪيما، HTTP رسپانس ڪوڊ، ساڳيو ئي جديد فن تعمير ۾ استعمال ڪيو ويو، ۽ هڪ OAuth سيڪيورٽي ماڊل، جيڪو هو ان وقت گهربل هو جيڪو فرنٽ-اينڊ ايپليڪيشن لاءِ گهربل هو. هن اهو ممڪن بڻايو ته عوامي ماڊل جي اسٽريمنگ مواد جي ترسيل مان هڪ خانگي ڏانهن.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

منتقلي سان مسئلو ٽڪرا ٽڪرا هو، ڇاڪاڻ ته هاڻي اسان جو سسٽم آپريشن جي مڪمل طور تي مختلف اصولن جي بنياد تي ٻه خدمتون هلائي رهيو آهي - هڪ باقي، JSON ۽ OAuth تي، ٻيو RPC، XML تي ۽ هڪ صارف سيڪيورٽي ميڪانيزم تي ٻڌل NTBA ٽوڪن سسٽم تي. هي پهريون هائيبرڊ فن تعمير هو.

اسان جي ٻن ٽيمن جي وچ ۾ بنيادي طور تي هڪ فائر وال هئي ڇاڪاڻ ته شروعات ۾ API NCCP سان تمام سٺو پيماني تي نه هئي ۽ اهو ٽيمن جي وچ ۾ ڇڪتاڻ جو سبب بڻيو. فرق سروسز، پروٽوڪول، سرڪٽس، سيڪيورٽي ماڊلز ۾ هئا، ۽ ڊولپرز کي اڪثر ڪري مڪمل طور تي مختلف حوالن جي وچ ۾ تبديل ڪرڻو پوندو هو.

QCon ڪانفرنس. ماسٽرنگ افراتفري: مائڪرو سروسز لاءِ نيٽ فلڪس گائيڊ. حصو 4

ان حوالي سان ڪمپنيءَ جي هڪ سينيئر انجنيئر سان منهنجي ڳالهه ٻولهه ٿي، جنهن کان مون سوال پڇيو ته: ”صحيح ڊگهي مدي واري آرڪيٽيڪچر ڪهڙي هجڻ گهرجي؟ تنظيمي نتيجن جي باري ۾ - ڇا ٿيندو جيڪڏهن اسان انهن شين کي ضم ڪريون ٿا، ۽ اهي ٽوڙين ٿا جيڪو اسان سکيو آهي سٺو ڪرڻ؟ اهو طريقو Conway جي قانون سان تمام گهڻو لاڳاپيل آهي: "تنظيم جيڪي ڊزائين ڪيل سسٽم هڪ ڊزائن طرفان محدود آهن جيڪي انهي تنظيم جي مواصلاتي جوڙجڪ کي نقل ڪن ٿيون." هي هڪ تمام تجريدي وصف آهي، تنهنڪري مان هڪ وڌيڪ مخصوص کي ترجيح ڏيان ٿو: "سافٽ ويئر جو ڪو به ٽڪرو تنظيمي ڍانچي کي ظاهر ڪري ٿو جيڪو ان کي ٺاهيو." هتي منهنجو پسنديده اقتباس آهي ايريڪ ريمنڊ کان: "جيڪڏهن توهان وٽ ڊولپرز جون چار ٽيمون ڪم ڪندڙ تي ڪم ڪري رهيون آهن، ته توهان هڪ چار-پاس مرتب ڪندڙ سان ختم ڪنداسين." خير، Netflix وٽ هڪ چار-پاس مرتب ڪندڙ آهي، ۽ اهو اسان ڪيئن ڪم ڪريون ٿا.

اسان اهو چئي سگهون ٿا ته هن معاملي ۾، دم ڪتي کي ڇڪيندي آهي. اسان جي پهرين ترجيح حل نه آهي، پر تنظيم؛ اها تنظيم آهي جيڪا اسان جي فن تعمير کي هلائي ٿي. آهستي آهستي، خدمتن جي هڪ هٽي مان، اسان هڪ آرڪيٽيڪچر ڏانهن منتقل ڪيو جنهن کي اسان بليڊ رنر سڏيون ٿا، ڇاڪاڻ ته هتي اسان ايج سروسز ۽ اين سي سي پي جي صلاحيت جي باري ۾ ڳالهائي رهيا آهيون جيڪو سڌو سنئون زول پراکسي، API گيٽ وي، ۽ لاڳاپيل فنڪشنل ۾ الڳ ۽ ضم ٿيڻ جي صلاحيت آهي. "ٽڪرا" کي نئين مائڪرو سروسز ۾ تبديل ڪيو ويو آهي وڌيڪ جديد سيڪيورٽي، ريپلي، ڊيٽا جي ترتيب، وغيره خاصيتن سان.

ان ڪري، اهو چئي سگهجي ٿو ته ڊپارٽمينٽل ڍانچي ۽ ڪمپني جي متحرڪات سسٽم جي جوڙجڪ کي ترتيب ڏيڻ ۾ اهم ڪردار ادا ڪن ٿا ۽ هڪ عنصر آهي جيڪو تبديلي کي وڌايو يا روڪي ٿو. Microservices آرڪيٽيڪچر پيچيده ۽ نامياتي آهي، ۽ ان جي صحت نظم و ضبط ۽ متعارف ٿيل افراتفري تي ٻڌل آهي.

ٿورڙو اشتهار

اسان سان گڏ رهڻ لاء توهان جي مهرباني. ڇا توهان اسان جا مضمون پسند ڪندا آهيو؟ وڌيڪ دلچسپ مواد ڏسڻ چاهيو ٿا؟ آرڊر ڏيڻ يا دوستن کي سفارش ڪندي اسان جي مدد ڪريو، ڪلائوڊ VPS ڊولپرز لاءِ $4.99 کان, داخلا-سطح سرورز جو هڪ منفرد اينالاگ، جيڪو اسان توهان لاءِ ايجاد ڪيو هو: VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps جي باري ۾ سڄي حقيقت $19 کان يا سرور ڪيئن شيئر ڪجي؟ (RAID1 ۽ RAID10 سان دستياب آهي، 24 ڪور تائين ۽ 40GB DDR4 تائين).

ڊيل R730xd 2x سستا Equinix Tier IV ڊيٽا سينٽر ۾ Amsterdam ۾؟ صرف هتي 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV $199 کان هالينڊ ۾! ڊيل R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 کان! جي باري ۾ پڙهو انفراسٽرڪچر ڪارپوريشن ڪيئن ٺاهيو. ڪلاس ڊيل R730xd E5-2650 v4 سرورز جي استعمال سان 9000 يورو جي قيمت هڪ پني لاءِ؟

جو ذريعو: www.habr.com

تبصرو شامل ڪريو