سروس ميش استعمال جا منظرنامو

سروس ميش استعمال جا منظرنامو

نوٽ. ترجمو: هن آرٽيڪل جو ليکڪ (Luc Perkins) CNCF تنظيم ۾ هڪ ڊولپر وڪيل آهي، جيڪو لنڪرڊ، ايس ايم آئي (سروس ميش انٽرفيس) ۽ ڪوما (رستي جي ذريعي، توهان اهو پڻ حيران ڪيو آهي ته Istio ڇو آهي؟ هن لسٽ تي نه؟ .). هڪ دفعو ٻيهر ڪوشش ڪري رهيو آهي DevOps ڪميونٽي کي بهتر سمجهڻ جي رجحان واري هائپ کي "سروس ميش" سڏيو وڃي ٿو، هو فهرست ڏئي ٿو 16 خاصيتون صلاحيتون جيڪي اهڙيون حل فراهم ڪن ٿيون.

اڄ خدمت ميش - سافٽ ويئر انجنيئرنگ جي شعبي ۾ سڀ کان وڌيڪ گرم موضوعن مان هڪ (۽ صحيح طور تي ائين!). منهنجو خيال آهي ته هي ٽيڪنالاجي ناقابل اعتماد حد تائين واعدو آهي ۽ ڏسڻ چاهيندو ته ان کي وڏي پيماني تي منظور ڪيو ويو آهي (جڏهن اهو احساس ٿئي ٿو، يقينا). تنهن هوندي، اهو اڃا تائين گھيرو ڪيو ويو آهي اسرار جي روشني سان اڪثر ماڻهن لاء. ساڳئي وقت، اهي به جيڪي مشهور ان سان گڏ، ان جي فائدن کي بيان ڪرڻ اڪثر ڏکيو آهي ۽ اهو ڇا آهي (بشمول توهان جي واقعي). هن آرٽيڪل ۾ آئون مختلف فهرستن جي ذريعي صورتحال کي درست ڪرڻ جي ڪوشش ڪندس ڪيس استعمال ڪريو "سروس ميشز"*.

* نوٽ ترجمو: هتي ۽ اڳتي مضمون ۾ بلڪل هي ترجمو (“سروس ميش”) اڃا نئين اصطلاح سروس ميش لاءِ استعمال ڪيو ويندو.

پر پهريان آئون ڪجهه رايا ڏيڻ چاهيان ٿو:

  • مون ڪڏهن به سروس ميش سان ڪم نه ڪيو آهي يا انهن کي پنهنجي تعليم لاءِ شروع ڪيل منصوبن کان ٻاهر استعمال ڪيو آهي. ٻئي طرف، مان اهو آهيان جنهن 2015 ۾ Twitter جي اندروني سروس ميش لاء دستاويزن جو هڪ گروپ لکيو هو (ان کي ان وقت "سروس ميش" به نه سڏيو ويندو هو) ۽ ويب سائيٽ جي ترقي ۽ دستاويزن جي ترقي ۾ حصو ورتو. لنڪرڊ، تنهنڪري ان جو مطلب ڪجهه آهي.
  • منهنجي فهرست تقريبن ۽ نامڪمل آهي. ٿي سگهي ٿو استعمال جا ڪيس مون لاءِ اڻڄاتل هجن، ۽ وقت سان گڏ نوان آپشن به پيدا ٿيندا جيئن ٽيڪنالاجي ترقي ڪندي ۽ ان جي مقبوليت وڌندي.
  • ساڳئي وقت، هر موجوده سروس ميش تي عمل درآمد سڀني فهرستن جي استعمال جي ڪيسن جي حمايت نه ڪندو آهي. تنهن ڪري، منهنجو بيان جهڙوڪ "سروس ميش ڪري سگهي ٿو ..." پڙهڻ گهرجي "انفرادي، ۽ شايد تمام مشهور سروس ميش لاڳو ڪري سگهن ٿا ...".
  • مثالن جي ترتيب ۾ ڪو به فرق نٿو پوي.

مختصر فهرست:

  • خدمت جي دريافت؛
  • انڪرپشن؛
  • تصديق ۽ اختيار؛
  • لوڊ توازن؛
  • سرڪٽ ٽوڙڻ؛
  • خودڪار اسڪيلنگ؛
  • ڪينري لڳائڻ؛
  • نيري-سائي تعینات؛
  • صحت جي چڪاس؛
  • لوڊ شيڊنگ؛
  • ٽرئفڪ آئيني؛
  • موصري ؛
  • درخواست جي شرح کي محدود ڪرڻ، ٻيهر ڪوششون ۽ وقت ختم ڪرڻ؛
  • ٽيلي ميٽري؛
  • جاچ
  • بصري ڪرڻ.

1. سروس دريافت

TL؛ DR: سادو نالا استعمال ڪندي نيٽ ورڪ تي ٻين خدمتن سان ڳنڍيو.

خدمتون پاڻمرادو "ڳولڻ" جي قابل ٿيڻ گهرجن مناسب نالا استعمال ڪندي - مثال طور، service.api.production, pets/staging يا cassandra. ڪلائوڊ ماحوليات لچڪدار آهن، ۽ ھڪڙو نالو ھڪڙي خدمت جي ڪيترن ئي مثالن کي لڪائي سگھي ٿو. اهو واضح آهي ته اهڙي صورتحال ۾ سڀني IP پتي کي هارڊ ڪوڊ ڪرڻ جسماني طور تي ناممڪن آهي.

ان سان گڏ، جڏهن هڪ خدمت ٻي ڳولهي ٿي، اهو انهي خدمت تي درخواستون موڪلڻ جي قابل هوندو بغير خوف جي ته اهي ان جي ڀڃڪڙي مثال جي ان پٽ تي ختم ٿي ويندا. ٻين لفظن ۾، سروس ميش کي لازمي طور تي سڀني خدمت جي مثالن جي صحت جي نگراني ڪرڻ گهرجي ۽ ميزبان جي فهرست کي ممڪن طور تي تاريخ تائين رکڻ گهرجي.

هر سروس ميش سروس دريافت جي ميڪانيزم کي مختلف طور تي لاڳو ڪري ٿو. هن وقت، سڀ کان وڌيڪ عام طريقو آهي نمائندو خارجي عملن جهڙوڪ ڪبرنيٽس DNS. ماضي ۾ Twitter تي اسان هن مقصد لاءِ نالو ڏيڻ وارو نظام استعمال ڪيو فنگل. ان کان علاوه، سروس ميش ٽيڪنالاجي اهو ممڪن بڻائي ٿو ته ڪسٽم جي نالي جي ميڪانيزم کي ظاهر ڪرڻ لاء (جيتوڻيڪ مون اڃا تائين اهڙي ڪارڪردگي سان ايس ايم تي عمل درآمد نه ڏٺو آهي).

2. انڪرپشن

TL؛ DR: خدمتن جي وچ ۾ غير انڪرپٽ ٿيل ٽرئفڪ کان نجات حاصل ڪريو ۽ هن عمل کي خودڪار ۽ اسڪيلبل ٺاهيو.

اهو ڄاڻڻ سٺو آهي ته حملو ڪندڙ توهان جي اندروني نيٽ ورڪ ۾ داخل نٿا ڪري سگهن. فائر والز هن جو وڏو ڪم ڪن ٿا. پر ڇا ٿيندو جيڪڏهن هڪ هيڪر اندر داخل ٿئي؟ ڇا هو انٽرا سروس ٽريفڪ سان جيڪو به چاهي اهو ڪري سگهندو؟ اچو ته اميد رکون ته اهو سڀ ڪجهه نه ٿيندو. ھن منظر کي روڪڻ لاءِ، توھان کي ھڪ صفر اعتماد وارو نيٽ ورڪ لاڳو ڪرڻ گھرجي جنھن ۾ خدمتن جي وچ ۾ سڀ ٽريفڪ انڪوڊ ٿيل آھي. گهڻيون جديد سروس ميشز هن کي باهمي ذريعي حاصل ڪن ٿيون TLS (باہمي TLS، mTLS). ڪجهه حالتن ۾، mTLS سڄي بادلن ۽ ڪلسترن ۾ ڪم ڪري ٿو (منهنجو خيال آهي ته بين الاقوامي ڪميونيڪيشن ڪنهن ڏينهن ساڳئي طرح ترتيب ڏني ويندي).

يقينا، mTLS سروس ميش لاءِ اختياري. هر خدمت پنهنجي TLS جو خيال رکي سگهي ٿي، پر ان جو مطلب اهو آهي ته توهان کي سرٽيفڪيٽ ٺاهڻ، انهن کي سروس ميزبانن ۾ ورهائڻ، ۽ ايپليڪيشن ۾ ڪوڊ شامل ڪرڻ جو طريقو ڳولڻو پوندو جيڪو فائلن مان اهي سرٽيفڪيٽ لوڊ ڪندو. ها، انهن سرٽيفڪيٽن کي باقاعده وقفن تي تجديد ڪرڻ نه وساريو. خدمت meshes خودڪار طريقي سان mTLS سان سسٽم جهڙوڪ SPIFFE، جيڪو، موڙ ۾، سرٽيفڪيٽ جاري ڪرڻ ۽ گھمڻ واري عمل کي خودڪار ڪري ٿو.

3. تصديق ۽ اختيار

TL؛ DR: قائم ڪريو درخواست ڪندڙ ڪير آهي ۽ وضاحت ڪريو ته انهن کي ڇا ڪرڻ جي اجازت آهي ان کان اڳ جو درخواست سروس تائين پهچي وڃي.

خدمتون اڪثر ڄاڻڻ چاهيندا آهن ڪير آهي درخواست انجام ڏئي ٿو (تصديق)، ۽ هن معلومات کي استعمال ڪندي، فيصلو ڪري ٿو ته هڪ ڏنل ادارو ڪرڻ جي اجازت آهي (اجازت ڏيڻ). هن معاملي ۾، ضمير "ڪير" لڪائي سگهي ٿو:

  1. ٻيون خدمتون. ان کي سڏيو ويندو آهي "تصديق" ساٿي" مثال طور، خدمت web خدمت تائين رسائي ڪرڻ چاهي ٿو db. سروس ميش عام طور تي ايم ٽي ايل ايس استعمال ڪندي اهڙن مسئلن کي حل ڪن ٿا: هن صورت ۾ سرٽيفڪيٽ ضروري سڃاڻپ ڪندڙ طور ڪم ڪن ٿا.
  2. ڪجھ انساني استعمال ڪندڙ. ان کي سڏيو ويندو آهي "تصديق" درخواست" مثال طور، استعمال ڪندڙ haxor69 هڪ نئون چراغ خريد ڪرڻ چاهي ٿو. سروس ميش مختلف ميکانيزم مهيا ڪن ٿا، مثال طور JSON ويب ٽوکنز.

    اسان مان ڪيترن ئي اهو ڪيو آهي ايپليڪيشن ڪوڊ ۾. هڪ درخواست اچي ٿو، اسان ٽيبل ذريعي ڏسو users، استعمال ڪندڙ کي ڳولھيو ۽ ڳجھو لفظ ڳولھيو، پوءِ ڪالم چيڪ ڪريو permissions وغيره خدمت ميش جي صورت ۾، اهو ٿئي ٿو ان کان اڳ جو درخواست سروس تائين پهچي وڃي.

هڪ دفعو اسان قائم ڪيو آهي ته درخواست ڪنهن کان آئي آهي، اسان کي اهو طئي ڪرڻو پوندو ته هن اداري کي ڇا ڪرڻ جي اجازت آهي. ڪجهه سروس ميشز توهان کي بنيادي پاليسين کي ترتيب ڏيڻ جي اجازت ڏين ٿا (جيڪو ڪير ڪري سگهي ٿو) جي طور تي YAML فائلن يا ڪمانڊ لائن تي، جڏهن ته ٻيا فريم ورڪ سان انضمام پيش ڪن ٿا جهڙوڪ اوپن پاليسي ايجنٽ. حتمي مقصد توهان جي خدمتن لاءِ آهي ڪنهن به درخواست کي قبول ڪرڻ لاءِ، محفوظ طور تي فرض ڪيو ته اها هڪ قابل اعتماد ذريعن کان اچي ٿي и هن عمل جي اجازت آهي.

4. لوڊ توازن

TL؛ DR: هڪ مخصوص نمونن جي مطابق خدمت جي مثالن ۾ لوڊ ورهايو.

هڪ "خدمت" هڪ خدمت جي حصي ۾ اڪثر ڪري ڪيترن ئي هڪجهڙا مثالن تي مشتمل آهي. مثال طور، اڄ جي خدمت cache 5 ڪاپيون تي مشتمل آهي، ۽ سڀاڻي انهن جو تعداد 11 تائين وڌي سگهي ٿو cacheهڪ خاص مقصد جي مطابق تقسيم ڪيو وڃي. مثال طور، دير سان گھٽ ڪريو يا ڪم ڪندڙ مثال تي حاصل ڪرڻ جي امڪان کي وڌايو. سڀ کان وڌيڪ عام طور تي استعمال ٿيل الورورٿم آهي گول رابن، پر ٻيا ڪيترائي آهن - مثال طور، وزن وارو طريقو (وزن وارو) سوال (توهان ترجيحي هدف چونڊي سگهو ٿا)، انگوزي (منڊي) hashing (مسلسل هشنگ کي استعمال ڪندي اپ اسٽريم ميزبانن ۾) يا گهٽ ۾ گهٽ درخواست جو طريقو (ترجيح ڏني ويندي آهي مثال کي گهٽ ۾ گهٽ درخواستن سان).

کلاسک بيلنس وارا ٻيا ڪم آهن، جهڙوڪ HTTP ڪيشنگ ۽ DDoS تحفظ، پر اهي اوڀر-اولهه ٽريفڪ لاءِ بلڪل لاڳاپيل نه آهن (يعني ڊيٽا سينٽر جي اندر وهندڙ ٽريفڪ لاءِ - تقريباً ترجمو.) (سروس ميش جو عام دائرو). يقينن، اهو ضروري ناهي ته لوڊ بيلنسنگ لاءِ سروس ميش استعمال ڪيو وڃي، پر اهو توهان کي اجازت ڏئي ٿو ته هر خدمت لاءِ هڪ مرڪزي ڪنٽرول پرت مان بيلنس پاليسيون سيٽ ۽ ڪنٽرول ڪري، ان ڪري نيٽ ورڪ اسٽيڪ ۾ الڳ لوڊ بيلنس کي هلائڻ ۽ ترتيب ڏيڻ جي ضرورت کي ختم ڪري. .

5. سرڪٽ ٽوڙڻ

TL؛ DR: مشڪلاتي خدمت ڏانهن ٽرئفڪ کي روڪيو ۽ بدترين حالتن ۾ نقصان کي ڪنٽرول ڪريو.

جيڪڏهن ڪجهه سببن لاء خدمت ٽرئفڪ سان مقابلو نه ڪري سگهي ٿي، خدمت ميش هن مسئلي کي حل ڪرڻ لاء ڪيترن ئي اختيارن کي مهيا ڪري ٿو (ٻين کي مناسب حصن ۾ بحث ڪيو ويندو). ٽريفڪ کان خدمت کي ختم ڪرڻ لاء سرڪٽ ٽوڙڻ سڀ کان وڌيڪ سخت اختيار آهي. جڏهن ته، پاڻ طرفان اهو احساس نٿو ڪري - هڪ بيڪ اپ پلان جي ضرورت آهي. پوئتي دٻاء مهيا ڪري سگھي ٿي (پوئتي دٻاءُ) انهن خدمتن ڏانهن جيڪي درخواستون ڏين ٿيون (بس هن لاءِ پنهنجي سروس ميش کي ترتيب ڏيڻ نه وساريو!)، يا، مثال طور، اسٽيٽس واري صفحي کي ڳاڙهي رنگ ڏيڻ ۽ استعمال ڪندڙن کي صفحي جي ٻئي ورجن ڏانهن ”گرڻ واري وهيل“ (“Twitter is. هيٺ").

خدمت meshes نه رڳو اوھان کي بيان ڪرڻ جي اجازت ڏئي ٿو جڏهن بند ڪرڻ جي پٺيان لڳندي ۽ ته هي پيروي ڪندو. انهي صورت ۾، "جڏهن" ۾ شامل ٿي سگھي ٿو ڪنهن به ميلاپ جي مخصوص پيٽرولن جو: هڪ خاص مدت لاءِ درخواستن جو ڪل تعداد، متوازي ڪنيڪشن جو تعداد، التوا واري درخواستون، فعال ٻيهر ڪوششون، وغيره.

توهان شايد سرڪٽ بريڪنگ کي غلط استعمال ڪرڻ نٿا چاهيو، پر اهو ڄاڻڻ سٺو آهي ته توهان وٽ ايمرجنسي جي صورت ۾ هڪ بيڪ اپ پلان آهي.

6. خودڪار اسڪيلنگ

TL؛ DR: مخصوص معيار جي بنياد تي خدمت جي مثالن جو تعداد وڌايو يا گھٽايو.

سروس ميش شيڊولر نه آهن، تنهنڪري اهي نه آهن پورو ڪريو پنهنجو پاڻ کي ماپڻ. بهرحال، اهي معلومات مهيا ڪري سگھن ٿا جن تي منصوبا ٺاهيندا انهن جي فيصلن جو بنياد. جيئن ته سروس ميشز کي خدمتن جي وچ ۾ سڀني ٽرئفڪ تائين رسائي هوندي آهي، انهن وٽ وسيع معلومات آهي ته ڇا ٿي رهيو آهي: ڪهڙيون خدمتون مشڪلاتن جو شڪار آهن، ڪهڙيون خدمتون تمام هلڪي لوڊ ٿيل آهن (انهن لاء مختص ڪيل صلاحيت ضايع ٿي وئي آهي)، وغيره.

مثال طور، Kubernetes اسڪيل سروسز جي بنياد تي پوڊ جي سي پي يو ۽ ياداشت جي استعمال تي (اسان جي رپورٽ ڏسو "Kubernetes ۾ خودڪار اسڪيلنگ ۽ وسيلن جو انتظام"- لڳ ڀڳ. ترجمو.), پر جيڪڏهن توهان فيصلو ڪيو ته ڪنهن ٻئي ميٽرڪ جي بنياد تي (اسان جي صورت ۾، ٽرئفڪ سان لاڳاپيل)، توهان کي هڪ خاص ميٽرڪ جي ضرورت پوندي. انتظام هن وانگر ڏيکاري ٿو ته اهو ڪيئن ڪجي دوها, استيو и Prometheus، پر عمل پاڻ کي ڪافي پيچيدو آهي. اسان چاهيون ٿا ته سروس ميش انهي کي آسان ڪرڻ جي اجازت ڏئي اسان کي صرف شرطن کي سيٽ ڪرڻ جي اجازت ڏئي جيئن "سروس جي مثالن جو تعداد وڌايو auth، جيڪڏهن التوا واري درخواستن جو تعداد هڪ منٽ اندر حد کان وڌي وڃي."

7. ڪينري ڊيپلائيزيشن

TL؛ DR: نون فيچرز يا سروس ورزن کي استعمال ڪندڙن جي ذيلي سيٽ تي ٽيسٽ ڪريو.

اچو ته چئو ته توهان SaaS پراڊڪٽ ٺاهي رهيا آهيو ۽ ان جو هڪ نئون نئون ورزن رول ڪرڻ جو ارادو ڪيو آهي. توھان ان کي اسٽيجنگ ۾ آزمايو ۽ اھو وڏو ڪم ڪيو. پر حقيقي حالتن ۾ هن جي رويي بابت اڃا به ڪجهه خدشا آهن. ٻين لفظن ۾، توهان کي نئين نسخي کي جانچڻ جي ضرورت آهي حقيقي مسئلن تي بغير صارف جي اعتماد کي خطرو ڪرڻ کان سواء. هن لاءِ ڪينري جون تياريون وڏيون آهن. اهي توهان کي اجازت ڏين ٿا ته هڪ نئين خاصيت کي ظاهر ڪرڻ جي صارفين جي ذيلي سيٽ ڏانهن. ھي ذيلي سيٽ ٿي سگھي ٿو سڀ کان وڌيڪ وفادار استعمال ڪندڙ يا اھي جيڪي ڪم ڪن ٿا پراڊڪٽ جي مفت ورزن سان، يا اھي صارف جن کي ”گني پگز“ ٿيڻ جي خواهش جو اظهار ڪيو آھي.

سروس ميشز ان تي عمل ڪندي توهان کي معيار مقرر ڪرڻ جي اجازت ڏئي ٿي جيڪا اهو طئي ڪري ٿي ته ڪير ڏسندو ته ايپليڪيشن جو ڪهڙو نسخو، ۽ ٽرئفڪ جي رستي جي مطابق. تنهن هوندي به، ڪجھ به تبديل نه ڪيو خدمتن لاء پاڻ. خدمت جو نسخو 1.0 مڃي ٿو ته سڀئي درخواستون صارفين کان اچن ٿيون جيڪي ان کي ڏسڻ گهرجن، ۽ نسخو 1.1 ان جي استعمال ڪندڙن لاءِ ساڳيو ئي مڃي ٿو. ان کان علاوه، توھان تبديل ڪري سگھو ٿا ٽريفڪ جو سيڪڙو پراڻن ۽ نئين ورزن جي وچ ۾، صارفين جي وڌندڙ تعداد کي نئين ڏانھن ريڊائريڪٽ ڪري جيڪڏھن اھو مستحڪم ڪم ڪري ۽ توھان جو ”گني پگز“ اڳتي وڌندو.

8. نيري-سائي ڊيپلائيزيشن

TL؛ DR: هڪ بهترين نئين خاصيت رول آئوٽ ڪريو، پر فوري طور تي هر شي کي واپس وٺڻ لاءِ تيار ٿي وڃو.

مطلب نيري-سائي تعیناتي هڪ نئين ”نيرو“ سروس کي رول آئوٽ ڪرڻ آهي، ان کي پراڻن ”سبز“ سان متوازي شروع ڪندي. جيڪڏهن هر شي آسان ٿي وڃي ٿي ۽ نئين خدمت چڱي طرح انجام ڏئي ٿي، پوء پراڻي هڪ کي سستي طور تي بند ڪري سگهجي ٿو. (افسوس، ڪنهن ڏينهن هي نئين ”نيرو“ سروس ”سبز“ واري قسمت کي ورجائيندي ۽ غائب ٿي ويندي...) نيري-سائي ڊيپلائيشنز ڪينري وارن کان مختلف آهن ان ۾ نئين فنڪشن جو احاطو هرڪو هڪ ڀيرو استعمال ڪندڙ (حصو نه)؛ هتي نقطو اهو آهي ته ”محفوظ بندرگاهه“ تيار ٿيڻ جي صورت ۾ ڪجهه غلط ٿي وڃي.

سروس ميش هڪ تمام آسان طريقو پيش ڪري ٿو "نيرو" خدمت کي جانچڻ ۽ فوري طور تي ڪم ڪندڙ "سائي" ڏانهن سوئچ ڪرڻ لاءِ مسئلن جي صورت ۾. انهي حقيقت جو ذڪر نه ڪرڻ گهرجي ته رستي ۾ اهي "نيرو" جي ڪم بابت تمام گهڻي معلومات مهيا ڪن ٿا (هيٺ ڏنل "ٽيليميٽري" ڏسو)، جيڪو اهو سمجهڻ ۾ مدد ڪري ٿو ته ڇا اهو مڪمل آپريشن لاء تيار آهي.

نوٽ. ترجمو: توهان Kubernetes ۾ مختلف مقرري جي حڪمت عملين بابت وڌيڪ پڙهي سگهو ٿا (بشمول ذڪر ڪيل ڪينري، نيري/سائي ۽ ٻيا) اهو مضمون.

9. صحت جي چڪاس

TL؛ DR: ٽريڪ رکو ته ڪھڙي خدمت جا مثال فعال آھن ۽ انھن کي جواب ڏيو جيڪي ھاڻي ڪم نه آھن.

صحت جي چڪاس (صحت جي چڪاس) فيصلو ڪرڻ ۾ مدد ڪري ٿي ته ڇا خدمت جا مثال ٽريفڪ کي قبول ڪرڻ ۽ پروسيس ڪرڻ لاءِ تيار آهن. مثال طور، HTTP خدمتن جي صورت ۾، هڪ صحت جي چڪاس ٿي سگهي ٿي GET درخواست جي آخر ۾ /health... جواب 200 OK مطلب ته مثال صحتمند آهي، ٻيو ڪو - ته اهو ٽرئفڪ حاصل ڪرڻ لاء تيار ناهي. سروس ميش توهان کي ٻنهي طريقن جي وضاحت ڪرڻ جي اجازت ڏئي ٿي جنهن ۾ ڪارڪردگي جي جانچ ڪئي ويندي ۽ تعدد جنهن سان هي چيڪ ڪيو ويندو. اها معلومات وري ٻين مقصدن لاءِ استعمال ٿي سگهي ٿي - مثال طور، لوڊ بيلنسنگ ۽ سرڪٽ ٽوڙڻ لاءِ.

اهڙيء طرح، صحت جي چڪاس هڪ اسٽينڊ اڪيلو استعمال ڪيس ناهي، پر عام طور تي ٻين مقصدن کي حاصل ڪرڻ لاء استعمال ڪيو ويندو آهي. انهي سان گڏ، صحت جي چڪاس جي نتيجن تي منحصر ڪري، ٻين خدمت جي ميش هدفن جي ٻاهران ڪارناما گهربل هوندا: مثال طور، اسٽيٽس پيج کي اپڊيٽ ڪرڻ، GitHub تي مسئلو پيدا ڪرڻ، يا JIRA ٽڪيٽ ڀرڻ. ۽ سروس ميش پيش ڪري ٿو هڪ آسان ميکانيزم انهي کي خودڪار ڪرڻ لاءِ.

10. لوڊشيڊنگ

TL؛ DR: استعمال ۾ عارضي اسپيڪ جي جواب ۾ ٽرئفڪ کي ريڊائريٽ ڪريو.

جيڪڏهن ڪا خاص خدمت ٽريفڪ سان اوور لوڊ ٿيل آهي، ته توهان عارضي طور تي هن ٽرئفڪ مان ڪجهه کي ٻئي هنڌ ڏانهن منتقل ڪري سگهو ٿا (جيڪو آهي، "ڊمپ"، "منتقلي" (ڇڏي) هو اتي). مثال طور، هڪ بيڪ اپ سروس يا ڊيٽا سينٽر ڏانهن، يا مستقل ڏانهن پنولر موضوع. نتيجي طور، سروس مڪمل طور تي پروسيسنگ کي تباهه ڪرڻ ۽ روڪڻ جي بدران ڪجهه درخواستن تي عمل ڪندي. لوڊشيڊنگ سرڪٽ ٽوڙڻ بجاءِ بهتر آهي، پر پوءِ به ان جو غلط استعمال ڪرڻ مناسب ناهي. اهو cascading ناڪامين کي روڪڻ ۾ مدد ڪري ٿو جيڪا هيٺيون خدمتون سرانجام ڏيڻ جو سبب بڻجندي آهي.

11. ٽريفڪ متوازي / آئيني

TL؛ DR: هڪ درخواست ڪيترن ئي هنڌن تي هڪ ڀيرو موڪليو.

ڪڏهن ڪڏهن هڪ ئي وقت ڪيترن ئي خدمتن ڏانهن هڪ درخواست موڪلڻ جي ضرورت آهي (يا درخواستن جو هڪ خاص انتخاب). هڪ عام مثال پيداوار ٽرئفڪ جو حصو موڪلڻ واري خدمت ڏانهن موڪلي رهيو آهي. مکيه پيداوار ويب سرور هڪ درخواست موڪلي ٿو نازل وهڪرو خدمت products.production ۽ صرف هن کي. ۽ سروس ميش ذهانت سان هن درخواست کي نقل ڪري ٿو ۽ ان کي موڪلي ٿو products.staging، جنهن جي ويب سرور کي به خبر ناهي.

هڪ ٻي لاڳاپيل خدمت ميش استعمال ڪيس جنهن کي لاڳو ڪري سگهجي ٿو ٽريفڪ parallelization جي چوٽي تي رجعت جي جاچ. ان ۾ شامل آهي ساڳيون درخواستون سروس جي مختلف ورزن ڏانهن موڪلڻ ۽ چيڪ ڪرڻ ته ڇا سڀ ورجن ساڳيو ئي رويو رکن ٿا. مان اڃا تائين هڪ خدمت ميش تي عمل درآمد نه ڪيو آهي هڪ مربوط ريگريشن ٽيسٽنگ سسٽم سان اختلاف، پر خيال پاڻ کي واعدو لڳي ٿو.

12. موصليت

TL؛ DR: پنھنجي سروس ميش کي ميني نيٽ ورڪ ۾ ٽوڙيو.

پڻ سڃاتو وڃي ٿو ورهائڻIsolation هڪ خدمت ميش کي منطقي طور تي مختلف حصن ۾ ورهائڻ جو فن آهي جيڪي هڪ ٻئي بابت ڪجهه به نٿا ڄاڻن. اڪيلائي ٿورو آهي ورچوئل پرائيويٽ نيٽ ورڪ ٺاهڻ وانگر. بنيادي فرق اهو آهي ته توهان اڃا تائين خدمت ميش جي سڀني فائدن مان لطف اندوز ڪري سگھو ٿا (جهڙوڪ سروس دريافت)، پر اضافي سيڪيورٽي سان. مثال طور، جيڪڏهن ڪو حملو ڪندڙ هڪ سب نيٽ تي هڪ خدمت داخل ڪرڻ جي قابل هوندو، هو اهو نه ڏسي سگهندو ته ڪهڙيون خدمتون ٻين سبنيٽس تي هلنديون آهن يا انهن جي ٽرئفڪ کي روڪيندي.

ان کان علاوه، فائدا پڻ تنظيمي ٿي سگھي ٿو. توھان توھان چاھيو ٿا توھان جي خدمتن کي پنھنجي ڪمپني جي جوڙجڪ جي بنياد تي ذيلي نيٽ ورڪ ڪرڻ ۽ ڊولپرز کي پوري سروس ميش کي ذهن ۾ رکڻ جي سنجيدگي واري لوڊ مان نجات ڏياري.

13. درخواست جي شرح کي محدود ڪرڻ، ٻيهر ڪوششون ۽ وقت ختم ڪرڻ

TL؛ DR: توھان کي ھاڻي پنھنجي ڪوڊ بيس ۾ نِٽي-گرٽي درخواست انتظامي ڪمن کي شامل ڪرڻ جي ضرورت نه آھي.

اهي سڀئي شيون الڳ الڳ استعمال جا ڪيس سمجهي سگهجن ٿيون، پر مون انهن کي گڏ ڪرڻ جو فيصلو ڪيو ڇاڪاڻ ته هڪ عام خصوصيت جي ڪري: اهي درخواست لائف سائيڪل مئنيجمينٽ ٽاسڪ تي کڻندا آهن عام طور تي ايپليڪيشن لائبريرين طرفان هٿ ڪيا ويندا آهن. جيڪڏهن توهان Ruby on Rails ۾ ويب سرور ٺاهي رهيا آهيو (سروس ميش سان ضم ٿيل نه آهي) جيڪو درخواست ڪري ٿو بيڪ اينڊ سروسز ذريعي جي آر پي سي، ايپليڪيشن کي فيصلو ڪرڻو پوندو ته ڇا ڪجي جيڪڏهن N درخواستون ناڪام ٿيون. توهان کي اهو پڻ معلوم ڪرڻو پوندو ته اهي خدمتون ڪيتري ٽرئفڪ کي پروسيس ڪرڻ جي قابل هوندا ۽ انهن پيٽرولن کي خاص لائبريري استعمال ڪندي هارڊ ڪوڊ. ان سان گڏ، ايپليڪيشن کي اهو فيصلو ڪرڻو پوندو ته اهو وقت ڏيڻ جو وقت آهي ۽ درخواست کي ختم ڪرڻ ڏيو (وقت ختم ٿيڻ جي بنياد تي). ۽ مٿين پيرا ميٽرن مان ڪنهن کي به تبديل ڪرڻ لاءِ، ويب سرور کي روڪڻو پوندو، ٻيهر ترتيب ڏيڻ ۽ ٻيهر شروع ڪرڻو پوندو.

انهن ڪمن کي سروس ميش ۾ بند ڪرڻ جو مطلب نه رڳو اهو آهي ته سروس ڊولپرز کي انهن بابت سوچڻ جي ضرورت ناهي، پر اهو پڻ آهي ته انهن کي وڌيڪ عالمي انداز ۾ ڏسي سگهجي ٿو. جيڪڏهن خدمتن جو هڪ پيچيده سلسلو استعمال ڪيو وڃي ٿو، چئو A -> B -> C -> D -> E، درخواست جي سڄي زندگي کي حساب ۾ رکڻ گهرجي. جيڪڏهن ڪم خدمت سي ۾ وقت ختم ڪرڻ آهي، اهو منطقي آهي ته اهو سڀ ڪجهه هڪ ڀيرو ڪرڻ، ۽ حصن ۾ نه: سروس ڪوڊ کي اپڊيٽ ڪندي ۽ انتظار ڪندي جيستائين پل جي درخواست قبول نه ڪئي وڃي ۽ سي آءِ سسٽم تازه ڪاري سروس کي ترتيب ڏئي.

14. ٽيليميٽري

TL؛ DR: خدمتن مان تمام ضروري (۽ بلڪل نه) معلومات گڏ ڪريو.

ٽيلي ميٽري هڪ عام اصطلاح آهي جنهن ۾ ميٽرڪس، ورهايل ٽريڪنگ، ۽ لاگ شامل آهن. سروس ميشز سڀني ٽن قسمن جي ڊيٽا گڏ ڪرڻ ۽ پروسيسنگ لاءِ ميکانيزم پيش ڪري ٿو. اھو اھو آھي جتي شيون ٿوريون blurry ٿين ٿيون ڇاڪاڻ ته ممڪن اختيارن جو تعداد تمام وڏو آھي. ميٽرڪ گڏ ڪرڻ لاء اتي موجود آهي Prometheus ۽ ٻيا اوزار جيڪي لاگ گڏ ڪرڻ لاءِ استعمال ڪري سگھجن ٿا رواني, لوکي, Vector ۽ ٻيا. (مثال طور ClickHouse سان اسان جي لاگ هائوس K8s لاءِ - تقريبن. ترجمو.)، ورهايل ٽريڪنگ لاءِ موجود آهي جهانگر ۽ ايئن. هر خدمت ميش ڪجهه اوزار جي حمايت ڪري سگهي ٿي ۽ نه ٻيا. اهو ڏسڻ لاء دلچسپ ٿيندو ته پروجيڪٽ ڪري سگهي ٿو ٽيليميٽري کوليو ڪجهه همراه مهيا ڪريو.

انهي صورت ۾، سروس ميش ٽيڪنالاجي جو فائدو اهو آهي ته سائڊ ڪار ڪنٽينرز، اصول ۾، انهن جي خدمتن مان مٿين سڀني ڊيٽا گڏ ڪري سگھن ٿا. ٻين لفظن ۾، توهان وٽ توهان جي اختيار ۾ هڪ واحد ٽيلي ميٽري گڏ ڪرڻ وارو نظام آهي، ۽ سروس ميش هن سڀني معلومات کي مختلف طريقن سان پروسيس ڪري سگهي ٿو. مثال طور:

  • CLI ۾ هڪ خاص خدمت مان tail logs؛
  • خدمت ميش ڊيش بورڊ کان درخواستن جي مقدار جي نگراني؛
  • ورهايل نشانن کي گڏ ڪريو ۽ انهن کي جيجر وانگر سسٽم ڏانهن موڪليو.

ڌيان، موضوعي فيصلو: عام طور تي ڳالهائڻ، ٽيليميٽري هڪ علائقو آهي جنهن ۾ سروس ميش کان مضبوط مداخلت ناپسنديده آهي. بنيادي معلومات گڏ ڪرڻ ۽ اڏام تي ٽريڪ ڪرڻ ڪجهه سونهري ميٽرڪس جهڙوڪ درخواست جي ڪاميابي جي شرح ۽ ويڪرائي ٺيڪ آهي، پر اچو ته اميد رکون ته اسان فرانڪينسٽن اسٽيڪ کي ظهور ۾ نه اينديون جيڪي خاص سسٽم کي تبديل ڪرڻ جي ڪوشش ڪندا آهن، جن مان ڪجهه اڳ ۾ ئي پاڻ کي ثابت ڪيو آهي ۽ چڱي طرح اڀياس ڪيو آهي.

15. آڊٽ

TL؛ DR: جيڪي تاريخ جا سبق وساري ڇڏيندا آهن انهن کي ورجائڻ لاءِ برباد ٿي ويندا آهن.

آڊيٽنگ هڪ سسٽم ۾ اهم واقعن کي ڏسڻ جو فن آهي. سروس ميش جي صورت ۾، ان جو مطلب ٿي سگھي ٿو ٽريڪنگ جيڪو مخصوص خدمتن لاءِ مخصوص آخري پوائنٽن تي درخواستون ڪيون، يا گذريل مهيني ۾ ڪيترا ڀيرا سيڪيورٽي سان لاڳاپيل واقعا پيش آيا.

اهو واضح آهي ته آڊيٽنگ تمام ويجهي سان لاڳاپيل آهي ٽيليميٽري سان. فرق اهو آهي ته ٽيلي ميٽري عام طور تي شين سان جڙيل آهي جهڙوڪ پيداوار ۽ ٽيڪنيڪل سالميت، جڏهن ته آڊيٽنگ قانوني ۽ ٻين مسئلن سان لاڳاپيل ٿي سگهي ٿي جيڪي سختي سان ٽيڪنيڪل دائري کان ٻاهر آهن (مثال طور، GDPR جي تعميل - ڊيٽا جي تحفظ تي EU جنرل ضابطو).

16. منظر نگاري

TL؛ DR: لانگ لائيو React.js - فينسي انٽرفيس جو هڪ ناقابل فراموش ذريعو.

ٿي سگهي ٿو هڪ بهتر اصطلاح، پر مون کي خبر ناهي. منهنجو مطلب صرف هڪ خدمت ميش جي گرافڪ نمائندگي يا ان جي ڪجهه حصن مان آهي. انهن نقشن ۾ شامل ٿي سگھي ٿو اشارن جهڙوڪ سراسري دير، سائڊ ڪار ترتيب جي معلومات، صحت جي چڪاس جا نتيجا، ۽ الرٽ.

خدمت تي مبني ماحول ۾ ڪم ڪرڻ ۾ سندس عظمت جي مونولٿ جي مقابلي ۾ تمام گهڻو وڌيڪ سنجيدگي وارو لوڊ شامل آهي. تنهن ڪري، سنجڪاتي دٻاء کي هر قيمت تي گهٽائڻ گهرجي. خدمت ميش لاءِ هڪ سادي گرافڪ انٽرفيس هڪ بٽڻ تي ڪلڪ ڪرڻ ۽ گهربل نتيجو حاصل ڪرڻ جي صلاحيت سان هن ٽيڪنالاجي جي مقبوليت جي واڌ لاءِ فيصلو ڪندڙ ٿي سگهي ٿو.

لسٽ ۾ شامل نه هئا

مون اصل ۾ ارادو ڪيو ته لسٽ ۾ ڪجھ وڌيڪ استعمال جا ڪيس شامل ڪيا وڃن، پر پوءِ فيصلو نه ڪيو. هتي اهي آهن، منهنجي فيصلي جي سببن سان گڏ:

  • ملٽي ڊيٽا سينٽر. منهنجي خيال ۾، هي ايترو گهڻو استعمال وارو معاملو نه آهي جيئن خدمت ميش جي ايپليڪيشن جي هڪ تنگ ۽ مخصوص علائقي يا خدمت جي دريافت وانگر افعال جي ڪجهه سيٽ.
  • داخل ٿيڻ ۽ نڪرڻ. اهو هڪ لاڳاپيل علائقو آهي، پر مون پاڻ کي محدود ڪيو آهي (شايد مصنوعي طور تي) "اوڀر-اولهه ٽرئفڪ" استعمال جي صورت ۾. داخل ٿيڻ ۽ نڪرڻ هڪ الڳ مضمون جا مستحق آهن.

ٿڪل

اهو سڀ ڪجهه هاڻي لاء آهي! ٻيهر، هي فهرست تمام خودمختيار آهي ۽ گهڻو ڪري نامڪمل آهي. جيڪڏهن توهان سوچيو ته مون ڪجهه وڃايو آهي يا ڪجهه غلط آهي، مهرباني ڪري مون سان رابطو ڪريو Twitter (@luckerkins). مھرباني ڪري شرافت جي ضابطن جو احترام ڪريو.

پي ايس مترجم کان

مضمون لاءِ عنوان جو مثال مضمون جي تصوير تي ٻڌل آهي “سروس ميش ڇا آهي (۽ جڏهن هڪ استعمال ڪجي)؟"(گريگوري ميڪنن پاران). اهو ڏيکاري ٿو ته ايپليڪيشنن مان ڪجهه ڪارڪردگي ڪيئن (سائي ۾) هڪ خدمت ميش ڏانهن منتقل ڪيو ويو آهي جيڪو انهن جي وچ ۾ ڪنيڪشن مهيا ڪري ٿو (نيرو ۾).

اسان جي بلاگ تي پڻ پڙهو:

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

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