ھيٺ ڏنل قدمن تي عمل ڪرڻ لاءِ نسبتاً سادو آھي پر ان جو وڏو اثر آھي. جيڪڏھن توھان انھن کي اڳي ئي نه آزمايو آھي، توھان حيران ٿي ويندا اھم سڌارن تي.
بنيادي ڍانچي جي طور تي ڪوڊ
مشوري جو پهريون حصو بنيادي ڍانچي کي ڪوڊ طور لاڳو ڪرڻ آهي. ان جو مطلب اهو آهي ته توهان وٽ لازمي طور تي هڪ پروگرامي طريقو هوندو جيڪو پوري انفراسٽرڪچر کي ترتيب ڏيڻ لاءِ. اهو پيچيده آواز آهي، پر اسان اصل ۾ هيٺ ڏنل ڪوڊ بابت ڳالهائي رهيا آهيون:
هر دفعي هن اسٽيج تي توهان سوال جو جواب ڏيو ٿا: ڇا منهنجي اسيمبلي گڏ ڪندي ۽ ٽيسٽ پاس ڪندي، ڇا اهو صحيح آهي؟ اهو شايد گهٽ بار وانگر لڳي ٿو، پر اهو ڪيترن ئي مسئلن کي حل ڪري ٿو.
تنهن ڪري، اسان ٽريفڪ کي ريڊائريڪٽ ڪرڻ لاءِ لوڊ بيلنس هلائڻ چاهيون ٿا ۽ سڀني نوڊس تي برابر لوڊ کي يقيني بڻايو وڃي يا ناڪامي جي صورت ۾ خدمت جاري رهي:
هڪ لوڊ بيلنس عام طور تي ٽرئفڪ کي ورهائڻ جو سٺو ڪم ڪندو آهي. بهترين عمل اوور بيلنس ڪرڻ آهي ته جيئن توهان وٽ ناڪامي جو هڪ نقطو نه هجي.
عام طور تي، لوڊ بيلنس ترتيب ڏنل بادل ۾ توهان استعمال ڪندا آهيو.
RayID، رابطي جي ID يا درخواستن لاءِ UUID
ڇا توهان ڪڏهن هن طرح جي پيغام سان ايپليڪيشن جي غلطي سان منهن ڪيو آهي: ”ڪجهه غلط ٿيو. هن آئي ڊي کي محفوظ ڪريو ۽ ان کي اسان جي سپورٽ ٽيم ڏانهن موڪليو“?
هڪ منفرد سڃاڻپ ڪندڙ، رابطي واري ID، RayID، يا ڪنهن به قسم جي تبديلي، هڪ منفرد سڃاڻپ ڪندڙ آهي جيڪو توهان کي اجازت ڏئي ٿو ته درخواست کي ان جي سڄي زندگي ۾ ٽريڪ ڪرڻ جي. هي توهان کي لاگ ان ۾ پوري درخواست جي رستي کي ٽريڪ ڪرڻ جي اجازت ڏئي ٿو.
صارف سسٽم A کي درخواست ڪري ٿو، پوء A رابطو B، جيڪو C سان رابطو ڪري ٿو، ان کي X ۾ ذخيرو ڪري ٿو، ۽ پوء درخواست A ڏانهن واپس ڪئي وئي آهي.
جيڪڏهن توهان دور دراز سان ورچوئل مشينن سان ڳنڍڻ چاهيندا هئا ۽ درخواست جي رستي کي ٽريڪ ڪرڻ جي ڪوشش ڪندا هئا (۽ دستي طور تي رابطو ڪريو جيڪي ڪالون ڪيون وينديون آهن)، توهان چريو ٿي ويندا. هڪ منفرد سڃاڻپ ڪندڙ هجڻ زندگي کي تمام آسان بڻائي ٿو. هي هڪ آسان ترين شين مان آهي جيڪو توهان ڪري سگهو ٿا وقت بچائڻ لاءِ جيئن توهان جي خدمت وڌي ٿي.
وچولي سطح
هتي جي صلاح اڳين کان وڌيڪ پيچيده آهي، پر صحيح اوزار ڪم کي آسان بڻائي ٿو، سيڙپڪاري تي واپسي فراهم ڪري ٿو جيتوڻيڪ ننڍن ۽ وچولي سائيز جي ڪمپنين لاء.
مرڪزي لاگنگ
مبارڪون! توهان 100 ورچوئل مشينون لڳايون آهن. ٻئي ڏينهن، سي اي او اچي ٿو ۽ خدمت جي جاچ دوران حاصل ڪيل غلطي بابت شڪايت ڪري ٿو. اهو لاڳاپيل ID جي رپورٽ ڪري ٿو جنهن بابت اسان مٿي ڳالهايو آهي، پر توهان کي 100 مشينن جي لاگز ذريعي ڏسڻو پوندو ته اهو ڳولڻ لاء جيڪو حادثي جو سبب بڻيو. ۽ اهو سڀاڻي جي پيشڪش کان اڳ ڳولڻ جي ضرورت آهي.
جڏهن ته اهو آواز هڪ مزيدار ايڊونچر وانگر آهي، اهو بهترين آهي پڪ ڪرڻ لاءِ ته توهان وٽ سڀني رسالن کي هڪ جڳهه تي ڳولڻ جي صلاحيت آهي. مون ELK اسٽيڪ جي تعمير ٿيل ڪارڪردگي استعمال ڪندي لاگز کي مرڪزي ڪرڻ جو مسئلو حل ڪيو: اهو ڳولا لائق لاگ گڏ ڪرڻ جي حمايت ڪري ٿو. اهو واقعي هڪ مخصوص جرنل ڳولڻ جي مسئلي کي حل ڪرڻ ۾ مدد ڪندو. بونس طور، توھان ٺاھي سگھوٿا چارٽ ۽ ٻيون مزيدار شيون جھڙوڪ.
ننڍي کان وچولي درجي جي منصوبن لاءِ، مان سفارش ڪريان ٿو پوسٽمن لاءِ نگراني ۽ دستاويز ڪرڻ APIs. پر عام طور تي، توهان صرف اهو پڪ ڪرڻ چاهيو ٿا ته توهان وٽ اهو ڄاڻڻ جو هڪ طريقو آهي جڏهن هڪ بند ٿي وئي آهي ۽ بروقت طريقي سان اطلاع ڏنو وڃي.
لوڊ تي منحصر خودڪار اسڪيلنگ
اهو تمام سادو آهي. جيڪڏهن توهان وٽ VM سروسنگ درخواستون آهن ۽ اهو 80٪ ميموري استعمال جي ويجهو اچي رهيو آهي، توهان يا ته ان جا وسيلا وڌائي سگهو ٿا يا ڪلستر ۾ وڌيڪ VM شامل ڪري سگهو ٿا. انهن عملن جي خودڪار عملدرآمد لوڊ هيٺ لچڪدار طاقت جي تبديلين لاء بهترين آهي. پر توهان کي هميشه محتاط رهڻ گهرجي ته توهان ڪيترو پئسا خرچ ڪيو ۽ مناسب حدون مقرر ڪريو.
گھڻن ڪلائوڊ سروسز سان، توھان ان کي ترتيب ڏئي سگھوٿا آٽو اسڪيل تي وڌيڪ سرور يا وڌيڪ طاقتور سرور استعمال ڪندي.
تجرباتي نظام
محفوظ طريقي سان تازه ڪاري ڪرڻ جو هڪ سٺو طريقو آهي 1٪ صارفين لاءِ هڪ ڪلاڪ لاءِ ڪجهه ٽيسٽ ڪرڻ جي قابل. توهان، يقينا، عمل ۾ اهڙي ميڪانيزم ڏٺو آهي. مثال طور، فيس بوڪ سامعين جا حصا مختلف رنگ ڏيکاري ٿو يا فونٽ جي سائيز کي تبديل ڪري ٿو ڏسڻ لاءِ ته صارفين تبديلين کي ڪيئن ٿا سمجهن. ھن کي A/B جاچ چئبو آھي.
ايستائين جو هڪ نئين خصوصيت کي جاري ڪرڻ هڪ تجربي جي طور تي شروع ڪري سگهجي ٿو ۽ پوءِ طئي ڪيو وڃي ٿو ته ان کي ڪيئن ڇڏڻو آهي. توهان کي "ياد رکڻ" جي صلاحيت پڻ حاصل آهي يا اڏام تي ترتيب کي تبديل ڪرڻ جي فنڪشن جي بنياد تي جيڪو توهان جي خدمت ۾ تباهي جو سبب بڻيل آهي.
اعليٰ ليول
هتي ٽوٽڪا آهن جن تي عمل ڪرڻ ڪافي ڏکيو آهي. توھان کي شايد ٿورڙي وڌيڪ وسيلن جي ضرورت پوندي، تنھنڪري ھڪڙي ننڍڙي يا وچولي سائيز واري ڪمپني کي ھن کي منظم ڪرڻ ۾ مشڪل وقت ھوندو.
نيري-سائي تعیناتي
اهو ئي آهي جنهن کي مان "ارلنگ" سڏيو ويندو آهي ظاهر ڪرڻ جو طريقو. جڏهن ٽيليفون ڪمپنيون ظاهر ٿيو ته Erlang وڏي پيماني تي استعمال ڪيو ويو. ٽيليفون ڪالن کي روٽ ڪرڻ لاءِ سافٽ سوئچ استعمال ٿيڻ شروع ٿيا. انهن سوئچز تي سافٽ ويئر جو بنيادي مقصد سسٽم اپ گريڊ دوران ڪالز نه ڇڏڻ هو. Erlang هڪ نئون ماڊل لوڊ ڪرڻ جو هڪ سٺو طريقو آهي بغير اڳوڻي هڪ حادثي جي.
اهو قدم لوڊ بيلنس جي موجودگي تي منحصر آهي. اچو ته تصور ڪريو ته توهان وٽ توهان جي سافٽ ويئر جو ورجن N آهي، ۽ پوءِ توهان ورزن N+1 کي ترتيب ڏيڻ چاهيو ٿا.
توهان اسان ڪري سگهون ٿا بس سروس کي روڪيو ۽ ايندڙ ورزن کي رول آئوٽ ڪريو ان وقت جيڪو توهان جي استعمال ڪندڙن لاءِ ڪم ڪري ۽ ڪجهه دير جو وقت حاصل ڪريو. پر فرض ڪريو توهان وٽ آهي حقيقت آهي سخت SLA شرطون. تنهن ڪري، SLA 99,99٪ جو مطلب آهي ته توهان آف لائن ٿي سگهو ٿا صرف 52 منٽ في سال.
جيڪڏهن توهان واقعي چاهيو ٿا ته اهڙن اشارن کي حاصل ڪريو، توهان کي هڪ ئي وقت ۾ ٻه ترتيب ڏيڻ جي ضرورت آهي:
جيڪو هن وقت آهي (N)؛
ايندڙ نسخو (N+1).
توهان لوڊ بيلنسر کي چئو ٿا ته ٽرئفڪ جي فيصد کي نئين ورزن (N+1) ڏانهن ريڊائريڪٽ ڪريو جڏهن توهان فعال طور تي رجعت جي نگراني ڪندا آهيو.
هتي اسان وٽ هڪ سائي N جي جوڙجڪ آهي جيڪا ٺيڪ ڪم ڪري ٿي. اسان ڪوشش ڪري رهيا آهيون ته هن ترتيب جي ايندڙ ورزن ڏانهن
پهرين اسان هڪ ننڍڙو امتحان موڪليندا آهيون اهو ڏسڻ لاءِ ته ڇا اسان جي N+1 جي تعیناتي ٿوري ٽرئفڪ سان ڪم ڪري ٿي:
آخرڪار، اسان وٽ خودڪار چيڪن جو هڪ سيٽ آهي جيڪو اسان آخرڪار هلون ٿا جيستائين اسان جي تعیناتي مڪمل ٿي وڃي. جيڪڏهن اوهان تمام گهڻو محتاط رھو، توھان پڻ محفوظ ڪري سگھوٿا پنھنجي N جي تعیناتي کي ھميشه لاءِ جلدي رولبڪ لاءِ خراب رجعت جي صورت ۾:
جيڪڏهن توهان چاهيو ٿا ته اڃا به وڌيڪ ترقي يافته سطح تي، هر شيء کي نيري-سائي جي ترتيب ۾ خودڪار طريقي سان هلائڻ ڏيو.