هڪ رول آئوٽ ڪهاڻي جيڪا هر شي کي متاثر ڪيو

هڪ رول آئوٽ ڪهاڻي جيڪا هر شي کي متاثر ڪيو
حقيقت جا دشمن 12f-2 پاران

اپريل جي آخر ۾، جڏهن وائيٽ واڪز ونٽرفيل کي گهيرو ڪري رهيا هئا، اسان سان ڪجهه وڌيڪ دلچسپ ٿيو؛ اسان هڪ غير معمولي رول آئوٽ ڪيو. اصول ۾، اسان مسلسل نئين خاصيتن کي پيداوار ۾ آڻي رهيا آهيون (جهڙوڪ هر ڪنهن). پر اها ڳالهه مختلف هئي. ان جو پيمانو اهڙو هو ته ڪا به امڪاني غلطي جيڪا اسان ڪري سگهون ٿا اسان جي سڀني خدمتن ۽ استعمال ڪندڙن کي متاثر ڪري. نتيجي طور، اسان سڀڪنھن شيء کي منصوبي جي مطابق، منصوبابندي ۽ اعلان ڪيل مدت جي اندر اندر، سيلز جي نتيجن کان سواء. مضمون بابت آهي ته اسان اهو ڪيئن حاصل ڪيو ۽ ڪيئن ڪو به ان کي گهر ۾ ورجائي سگهي ٿو.

مان ھاڻي بيان نه ڪندس تعميراتي ۽ فني فيصلا جيڪي اسان ڪيا آھن، يا ٻڌايان ٿو ته اھو سڀ ڪيئن ڪم ڪري ٿو. اهي نه پر مارجن ۾ نوٽس آهن ته ڪيئن هڪ تمام ڏکيو رول آئوٽ جنهن جو مون مشاهدو ڪيو ۽ جنهن ۾ مان سڌو سنئون ملوث هو. مان مڪمل يا ٽيڪنيڪل تفصيل جي دعويٰ نٿو ڪريان؛ شايد اهي ٻئي مضمون ۾ ظاهر ٿيندا.

پس منظر + هي ڪهڙي قسم جي ڪارڪردگي آهي؟

اسان ڪلائوڊ پليٽ فارم ٺاهي رهيا آهيون Mail.ru ڪلائوڊ حل (MCS)، جتي آئون ٽيڪنيڪل ڊائريڪٽر طور ڪم ڪريان ٿو. ۽ ھاڻي اھو وقت آھي شامل ڪرڻ جو IAM (سڃاڻپ ۽ رسائي جو انتظام) اسان جي پليٽ فارم تي، جيڪو سڀني صارفن جي اڪائونٽن، صارفين، پاسورڊ، ڪردار، خدمتن ۽ وڌيڪ جو متحد انتظام مهيا ڪري ٿو. بادل ۾ اهو ڇو ضروري آهي هڪ واضح سوال آهي: سڀني صارفن جي معلومات ان ۾ ذخيرو ٿيل آهي.

عام طور تي اهڙيون شيون ڪنهن به منصوبي جي شروعات ۾ تعمير ٿيڻ شروع ٿينديون آهن. پر تاريخي طور تي شيون MCS ۾ ٿوري مختلف ٿي چڪيون آهن. MCS ٻن حصن ۾ ٺهيل هئي:

  • Openstack پنهنجي Keystone اختيار ڪرڻ واري ماڊل سان،
  • Hotbox (S3 اسٽوريج) Mail.ru Cloud پروجيڪٽ جي بنياد تي،

جنهن جي چوڌاري وري نئين خدمتون ظاهر ٿيون.

لازمي طور تي، اهي ٻه مختلف قسم جا اختيار هئا. ان سان گڏ، اسان ڪجھ الڳ Mail.ru ترقيات استعمال ڪيون، مثال طور، ھڪڙو عام Mail.ru پاسورڊ اسٽوريج، ۽ گڏوگڏ ھڪڙو خود لکيل اوپنڊ ڪنيڪٽر، جنھن جي مھرباني ڪري SSO (end-to-end authorization) Horizon پينل ۾ مهيا ڪيو ويو. مجازي مشينن جو (مقامي OpenStack UI).

اسان لاءِ IAM ٺاهڻ جو مطلب اهو آهي ته اهو سڀ هڪ واحد سسٽم ۾ ڳنڍڻ، مڪمل طور تي اسان جي پنهنجي. ساڳئي وقت، اسان رستي ۾ ڪا به ڪارڪردگي نه وڃائينداسين، پر مستقبل لاء هڪ بنياد ٺاهينداسين جيڪا اسان کي شفاف طور تي ان کي صاف ڪرڻ جي اجازت ڏيندو ۽ ڪارڪردگي جي لحاظ کان ان کي ماپڻ کان سواء. پڻ شروع ۾، صارفين کي خدمتن تائين رسائي لاء رول ماڊل (مرڪزي RBAC، ڪردار جي بنياد تي رسائي ڪنٽرول) ۽ ڪجهه ٻيون ننڍيون شيون هيون.

ڪم غير معمولي ٿي ويو: پٿون ۽ پرل، ڪيترائي پس منظر، آزاد طور تي لکيل خدمتون، ڪيترائي ترقياتي ٽيمون ۽ منتظم. ۽ سڀ کان وڌيڪ اهم، جنگي پيداوار واري نظام تي هزارين زندهه استعمال ڪندڙ آهن. اهو سڀ ڪجهه لکڻو هو ۽، سڀ کان اهم، بغير ڪنهن جاني نقصان جي ختم ٿي ويو.

اسان ڇا رول آئوٽ ڪرڻ وارا آهيون؟

ان کي تمام گهڻو رکڻ لاء، اٽڪل 4 مهينن ۾ اسان هيٺ ڏنل تيار ڪيو:

  • اسان ڪيترائي نوان ڊيمون ٺاھيا آھن جيڪي مجموعي طور تي ڪم ڪن ٿا جيڪي اڳي ئي انفراسٽرڪچر جي مختلف حصن ۾ ڪم ڪندا ھئا. باقي خدمتون انهن ڊيمن جي صورت ۾ هڪ نئون پس منظر پيش ڪيو ويو.
  • اسان اسان جي سڀني خدمتن لاءِ موجود پاسورڊ ۽ ڪيچز جو پنهنجو مرڪزي ذخيرو لکيو آهي، جن کي اسان جي ضرورت مطابق آزاديءَ سان تبديل ڪري سگهجي ٿو.
  • اسان Keystone لاءِ شروع کان 4 نوان پسمنظر لکيا (استعمال ڪندڙ، پروجيڪٽ، ڪردار، ڪردار اسائنمينٽس)، جن، حقيقت ۾، ان جي ڊيٽابيس کي تبديل ڪيو، ۽ ھاڻي اسان جي يوزر پاسورڊ لاءِ ھڪڙي ريپوزٽري طور ڪم ڪري ٿو.
  • اسان سيکاريو اسان جي سڀني Openstack خدمتن کي انهن جي پاليسين لاءِ ٽئين پارٽي جي پاليسي سروس ڏانهن وڃڻ بجاءِ انهن پاليسين کي هر سرور کان مقامي طور تي پڙهڻ (ها، اهو ڪيئن Openstack ڪم ڪري ٿو ڊفالٽ طور!)

اهڙي وڏي ڪم جي ضرورت آهي وڏي، پيچيده ۽، سڀ کان اهم، مختلف ترقياتي ٽيمن پاران لکيل ڪيترن ئي سسٽم ۾ هم وقت ساز تبديليون. هڪ ڀيرو گڏ ٿيڻ بعد، سڄو سسٽم ڪم ڪرڻ گهرجي.

اهڙين تبديلين کي ڪيئن وڌايو وڃي ۽ ان کي خراب نه ڪيو وڃي؟ پهرين اسان مستقبل ۾ ٿورو نظر ڪرڻ جو فيصلو ڪيو.

رول آئوٽ حڪمت عملي

  • اهو ممڪن ٿيندو ته پيداوار کي ڪيترن ئي مرحلن ۾ رول ڪيو وڃي، پر اهو ترقي جي وقت کي ٽي ڀيرا وڌائيندو. ان کان سواء، ڪجهه وقت لاء اسان وٽ ڊيٽابيس ۾ ڊيٽا جي مڪمل ڊسڪشنزيشن هوندي. توهان کي پنهنجو هم وقت سازي وارو اوزار لکڻو پوندو ۽ گهڻي وقت تائين ڪيترن ئي ڊيٽا اسٽورن سان گڏ رهڻو پوندو. ۽ اهو مختلف قسم جا خطرا پيدا ڪري ٿو.
  • هر شي جيڪا شفاف طور تي صارف لاءِ تيار ٿي سگهي ٿي اڳ ۾ ڪئي وئي هئي. اهو 2 مهينا ورتو.
  • اسان پاڻ کي ڪيترن ئي ڪلاڪن لاءِ بند ڪرڻ جي اجازت ڏني - صرف صارف جي عملن لاءِ وسيلن ٺاهڻ ۽ تبديل ڪرڻ لاءِ.
  • سڀني اڳ ۾ ئي پيدا ڪيل وسيلن جي آپريشن لاء، وقت جو وقت ناقابل قبول هو. اسان رٿابندي ڪئي ته رول آئوٽ دوران، وسيلن کي ڪم ڪرڻ گهرجي بغير وقت جي ڪم ڪرڻ ۽ گراهڪن لاءِ اثر انداز ٿيڻ گهرجي.
  • اسان جي گراهڪن تي اثر کي گهٽائڻ لاءِ جيڪڏهن ڪجهه غلط ٿي وڃي ، اسان فيصلو ڪيو آچر جي شام تي رول آئوٽ ڪرڻ. ٿورا گراهڪ رات جو ورچوئل مشينن جو انتظام ڪن ٿا.
  • اسان پنهنجن سڀني گراهڪن کي خبردار ڪيو آهي ته رول آئوٽ لاءِ چونڊيل عرصي دوران، سروس مئنيجمينٽ دستياب نه هوندي.

Digression: هڪ rollout ڇا آهي؟

<احتياط، فلسفو>

هر آئي ٽي ماهر آساني سان جواب ڏئي سگهي ٿو رول آئوٽ ڇا آهي. توهان CI/CD انسٽال ڪريو ٿا، ۽ هر شي پاڻمرادو اسٽور تي پهچائي ويندي آهي. 🙂

يقيناً هي سچ آهي. پر مشڪل اها آهي ته جديد ڪوڊ ڊليوري آٽوميشن ٽولز سان، رول آئوٽ جي سمجھ پاڻ وڃائي ويٺي آهي. جديد ٽرانسپورٽ کي ڏسندي جڏهن توهان سائيڪل جي ايجاد جي حيرت جي باري ۾ وساريو. هر شي ايترو خودڪار آهي ته رول آئوٽ اڪثر ڪري سڄي تصوير کي سمجهڻ کان سواء ڪيو ويندو آهي.

۽ سڄي تصوير هن طرح آهي. رول آئوٽ چار اهم حصن تي مشتمل آهي:

  1. ڪوڊ جي ترسيل، ڊيٽا جي ترميم سميت. مثال طور، سندن لڏپلاڻ.
  2. ڪوڊ رول بيڪ واپس وڃڻ جي صلاحيت آهي جيڪڏهن ڪجهه غلط ٿي وڃي. مثال طور، بيڪ اپ ٺاهڻ جي ذريعي.
  3. هر رول آئوٽ / رول بيڪ آپريشن جو وقت. توهان کي پهرين ٻن نقطن جي ڪنهن به آپريشن جي وقت کي سمجهڻ جي ضرورت آهي.
  4. متاثر ٿيل ڪارڪردگي. اهو ضروري آهي ته ٻنهي متوقع مثبت ۽ ممڪن منفي اثرات جو جائزو وٺو.

انهن سڀني پاسن کي هڪ ڪامياب رول آئوٽ لاء اڪائونٽ ۾ ورتو وڃي. عام طور تي صرف پهريون، يا بهترين طور تي ٻيو، پوائنٽ جو جائزو ورتو ويندو آهي، ۽ پوء رول آئوٽ ڪامياب سمجهيو ويندو آهي. پر ٽيون ۽ چوٿون ان کان به وڌيڪ اهم آهن. ڪهڙو صارف اهو پسند ڪندو جيڪڏهن رول آئوٽ هڪ منٽ بدران 3 ڪلاڪ وٺي؟ يا جيڪڏهن رول آئوٽ دوران ڪجهه غير ضروري متاثر ٿي وڃي؟ يا ڇا ھڪڙي خدمت جي گھٽتائي غير متوقع نتيجن کي ڏسندي؟

ايڪٽ 1..n، ڇڏڻ جي تياري

پهريان مون سوچيو ته اسان جي گڏجاڻين کي مختصر طور تي بيان ڪيو وڃي: پوري ٽيم، ان جا حصا، ڪافي پوائنٽس تي بحثن جا ڍير، دليل، ٽيسٽ، دماغي طوفان. پوءِ مون سوچيو ته اهو غير ضروري هوندو. ترقي جا چار مهينا هميشه هن تي مشتمل آهن، خاص طور تي جڏهن توهان ڪجهه نه لکي رهيا آهيو جيڪا مسلسل پهچائي سگهجي ٿي، پر هڪ لائيو سسٽم لاء هڪ وڏي خصوصيت. جيڪو سڀني خدمتن کي متاثر ڪري ٿو، پر "ويب انٽرفيس ۾ ھڪڙي بٽڻ" کانسواءِ صارفين لاءِ ڪجھ به تبديل نه ٿيڻ گھرجي.

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

جڏهن اسان مان هڪ کي شڪ هو ته رول آئوٽ اسان جي ورچوئل مشينن جي دستيابي تي اثرانداز ٿي سگهي ٿو، اسان ٽيسٽ، تجربا، ڪوڊ تجزيو ڪرڻ ۾ هڪ هفتو گذاريو ۽ هڪ واضح سمجهه حاصل ڪيو ته اهو اسان جي پيداوار ۾ نه ٿيندو، ۽ اڃا به تمام شڪي ماڻهو اتفاق ڪيو. هن سان.

ساڳئي وقت ۾، ٽيڪنيڪل سپورٽ مان ماڻهو پنهنجن آزاد تجربا ڪيا، گراهڪن لاء هدايتون لکڻ لاء ڪنيڪشن جي طريقن تي، جيڪي رول آئوٽ کان پوء تبديل ٿيڻ گهرجن. انهن يوزر يوڪس تي ڪم ڪيو، هدايتون تيار ڪيون ۽ ذاتي صلاحون ڏنيون.

اسان سڀني رول آئوٽ عملن کي خودڪار ڪيو جيڪي ممڪن هئا. هر آپريشن کي اسڪرپٽ ڪيو ويو، جيتوڻيڪ آسان ترين، ۽ ٽيسٽ مسلسل هلائي رهيا هئا. انهن بحث ڪيو ته خدمت کي بند ڪرڻ جو بهترين طريقو آهي - ڊيمن کي ختم ڪريو يا فائر وال سان سروس تائين رسائي کي بلاڪ ڪريو. اسان رول آئوٽ جي هر مرحلي لاءِ ٽيمن جي هڪ چيڪ لسٽ ٺاهي ۽ ان کي مسلسل اپڊيٽ ڪيو. اسان ٺاھيو ۽ مسلسل اپڊيٽ ڪيو ھڪڙو گانٽ چارٽ سڀني رول آئوٽ ڪم لاءِ، وقت سان.

۽ ائين…

آخري عمل، ٻاهر نڪرڻ کان اڳ

... اهو وقت ڦرڻ جو وقت آهي.

جيئن چوندا آهن، فن جو ڪم مڪمل نه ٿو ڪري سگهجي، صرف ان تي ڪم مڪمل ڪيو ويو آهي. توهان کي هڪ ڪوشش ڪرڻي آهي ارادي جي، اهو سمجهڻ ته توهان کي سڀ ڪجهه نه ملندو، پر يقين رکو ته توهان تمام معقول مفروضا ڪيا آهن، سڀني ممڪن ڪيسن لاءِ مهيا ڪيا ويا آهن، سڀني نازڪ بگ کي بند ڪيو آهي، ۽ سڀني شرڪت ڪندڙن اهو سڀ ڪجهه ڪيو جيڪي هو ڪري سگهيا. وڌيڪ ڪوڊ توهان رول آئوٽ ڪيو، وڌيڪ ڏکيو اهو آهي ته اهو پاڻ کي قائل ڪرڻ لاء (ان کان علاوه، هرڪو سمجهي ٿو ته اهو هر شيء جي اڳڪٿي ڪرڻ ناممڪن آهي).

اسان اهو فيصلو ڪيو ته اسان تيار آهيون ان وقت رول آئوٽ ڪرڻ لاءِ جڏهن اسان کي يقين ٿي ويو ته اسان غير متوقع اثرن ۽ دير جي وقتن سان لاڳاپيل اسان جي استعمال ڪندڙن لاءِ سڀني خطرن کي ڍڪڻ لاءِ هر ممڪن ڪوشش ڪئي آهي. اهو آهي، ڪجهه به غلط ٿي سگهي ٿو سواء:

  1. متاثر ڪريو (اسان لاءِ مقدس، تمام قيمتي) استعمال ڪندڙ انفراسٽرڪچر،
  2. ڪارڪردگي: رول آئوٽ کان پوء اسان جي خدمت جو استعمال ساڳيو هجڻ گهرجي جيئن ان کان اڳ.

ڦرڻ

هڪ رول آئوٽ ڪهاڻي جيڪا هر شي کي متاثر ڪيو
ٻه رول، 8 مداخلت نه ڪريو

اسان 7 ڪلاڪن لاءِ استعمال ڪندڙن جي سڀني درخواستن لاءِ ڊائون ٽائم وٺون ٿا. هن وقت، اسان وٽ هڪ رول آئوٽ پلان ۽ هڪ رول بيڪ پلان آهي.

  • رول آئوٽ پاڻ کي لڳ ڀڳ 3 ڪلاڪ لڳن ٿا.
  • ٽيسٽ لاء 2 ڪلاڪ.
  • 2 ڪلاڪ - تبديلين جي ممڪن رول بيڪ لاءِ محفوظ ڪريو.

هر عمل لاءِ هڪ گانٽ چارٽ تيار ڪيو ويو آهي، اهو ڪيترو وقت وٺندو آهي، ڇا ٿئي ٿو ترتيب سان، ڇا ڪيو ويو آهي متوازي.

هڪ رول آئوٽ ڪهاڻي جيڪا هر شي کي متاثر ڪيو
هڪ رول آئوٽ گانٽ چارٽ جو هڪ ٽڪرو، هڪ ابتدائي نسخو (بغير متوازي عمل جي). سڀ کان وڌيڪ قيمتي هم وقت سازي وارو اوزار

سڀني شرڪت ڪندڙن کي رول آئوٽ ۾ پنھنجو ڪردار مقرر ڪيو ويو آھي، اھي ڪھڙا ڪم ڪن ٿا، ۽ اھي ڇا جا ذميوار آھن. اسان ڪوشش ڪريون ٿا ته هر اسٽيج کي خودڪار طريقي سان آڻيو، ان کي رول آئوٽ ڪيو، ان کي واپس ڦيرايو، موٽ گڏ ڪيو ۽ ان کي ٻيهر رول آئوٽ ڪيو.

واقعن جي تاريخ

تنهن ڪري، 15 ماڻهو آچر، اپريل 29، رات 10 وڳي ڪم تي آيا. اهم شرڪت ڪندڙن کان علاوه، ڪجهه صرف ٽيم جي حمايت ڪرڻ لاء آيا، جن لاء انهن جي خاص مهرباني.

اهو پڻ قابل ذڪر آهي ته اسان جو اهم ٽيسٽر موڪلن تي آهي. بغير جانچ ڪرڻ کان سواءِ رول آئوٽ ڪرڻ ناممڪن آهي، اسان اختيارن کي ڳولي رهيا آهيون. هڪ ساٿي اسان کي موڪلن کان امتحان ڏيڻ تي اتفاق ڪري ٿو، جنهن لاء هوء سڄي ٽيم کان وڏي مهرباني حاصل ڪري ٿي.

00:00. روڪ
اسان صارف جي درخواستن کي روڪيو، ٽيڪنيڪل ڪم جي نشاني کي ڇڪايو. مانيٽرنگ رڙيون، پر سڀ ڪجهه عام آهي. اسان چيڪ ڪريون ٿا ته ٻيو ڪجهه به نه گريو سواءِ جيڪو ٿيڻو هو. ۽ اسان لڏپلاڻ تي ڪم شروع ڪيو.

هر ڪنهن وٽ هڪ ڇپيل رول آئوٽ پلان آهي پوائنٽ پوائنٽ، هرڪو ڄاڻي ٿو ته ڪير ڪري رهيو آهي ۽ ڪهڙي وقت تي. هر عمل کان پوء، اسان وقت جي جانچ ڪندا آهيون انهي کي يقيني بڻائڻ لاء اسان انهن کان وڌيڪ نه آهيون، ۽ هر شي منصوبي جي مطابق ٿيندي آهي. اهي جيڪي موجوده اسٽيج تي سڌو سنئون رول آئوٽ ۾ حصو نه وٺي رهيا آهن اهي هڪ آن لائن رانديڪا (Xonotic، ٽائپ 3 ڪوئڪس) شروع ڪري تياري ڪري رهيا آهن ته جيئن انهن جي ساٿين کي پريشان نه ٿئي. 🙂

02:00. ڦريل
هڪ خوشگوار تعجب - اسان اسان جي ڊيٽابيس ۽ لڏپلاڻ واري اسڪرپٽ جي اصلاح جي ڪري، هڪ ڪلاڪ اڳ رول آئوٽ ختم ڪيو. عام رڙ، "رول آئوٽ!" سڀ نوان ڪم پيداوار ۾ آهن، پر ايترو پري صرف اسان انهن کي انٽرفيس ۾ ڏسي سگهون ٿا. هرڪو ٽيسٽ موڊ ۾ وڃي ٿو، انهن کي گروپن ۾ ترتيب ڏئي ٿو، ۽ ڏسڻ شروع ٿئي ٿو ته آخر ۾ ڇا ٿيو.

اهو تمام سٺو نه نڪتو، اسان اهو محسوس ڪيو 10 منٽن کان پوء، جڏهن ڪجھ به ڳنڍيل ناهي يا ٽيم جي ميمبرن جي منصوبن ۾ ڪم ڪري رهيو آهي. جلدي هم وقت سازي، اسان اسان جي مسئلن کي آواز ڏيو، ترجيحات مقرر ڪريو، ٽيمن ۾ ٽوڙڻ ۽ ڊيبگنگ ۾ وڃو.

02:30. ٻه وڏا مسئلا چار اکين جي مقابلي ۾
اسان کي ٻه وڏا مسئلا ملن ٿا. اسان محسوس ڪيو ته گراهڪ ڪجهه ڳنڍيل خدمتون نه ڏسندا، ۽ ڀائيواري اڪائونٽن سان مسئلا پيدا ٿيندا. ٻئي سبب آهن نامڪمل لڏپلاڻ اسڪرپٽ ڪجهه ڪنڊ ڪيسن لاءِ. اسان کي هاڻي ان کي درست ڪرڻ جي ضرورت آهي.

اسان سوال لکندا آهيون جيڪي هن کي رڪارڊ ڪندا آهن، گهٽ ۾ گهٽ 4 اکين سان. اسان انهن کي اڳ-پيداوار دوران جانچيو ته پڪ ڪرڻ لاءِ اهي ڪم ڪن ٿا ۽ ڪجهه به نه ٽوڙين. توهان رول ڪري سگهو ٿا. ساڳئي وقت، اسان اسان جي باقاعده انضمام جي جاچ کي هلائيندا آهيون، جيڪو ڪجهه وڌيڪ مسئلن کي ظاهر ڪري ٿو. اهي سڀئي ننڍا آهن، پر انهن کي پڻ مرمت ڪرڻ جي ضرورت آهي.

03:00. -2 مسئلا +2 مسئلا
اڳيون ٻه وڏا مسئلا حل ڪيا ويا آهن، ۽ لڳ ڀڳ سڀئي ننڍا مسئلا پڻ. اهي سڀئي جيڪي فيڪس ۾ غير مشغول آهن انهن جي اڪائونٽن ۾ فعال طور تي ڪم ڪري رهيا آهن ۽ رپورٽ ڪري رهيا آهن جيڪي اهي ڳوليندا آهن. اسان ترجيح ڏيون ٿا، ٽيمن ۾ ورهايو، ۽ صبح لاء غير نازڪ شيون ڇڏي ڏيو.

اسان ٻيهر ٽيسٽ هلائيندا آهيون، اهي ٻه نوان وڏا مسئلا ڳوليندا آهن. نه سڀئي سروس پاليسيون صحيح طور تي پهتيون آهن، تنهنڪري ڪجهه صارف درخواستون اختيار نه ٿيون پاس ڪن. پلس پارٽنر اڪائونٽن سان هڪ نئون مسئلو. اچو ته جلدي ڏسو.

03:20. هنگامي هم وقت سازي
ھڪڙو نئون مسئلو حل ڪيو ويو آھي. ٻئي لاء، اسان هڪ هنگامي هم وقت سازي کي منظم ڪري رهيا آهيون. اسان سمجهون ٿا ته ڇا ٿي رهيو آهي: پوئين حل هڪ مسئلو حل ڪيو، پر ٻيو پيدا ڪيو. اسان هڪ وقفو وٺون ٿا اهو معلوم ڪرڻ لاءِ ته اهو ڪيئن ڪجي صحيح ۽ بغير نتيجن جي.

03:30. ڇهه اکيون
اسان سمجھون ٿا ته بنياد جي آخري حالت ڇا ھئڻ گھرجي ته جيئن سڀني ڀائيوارن لاءِ سڀ ڪجھ ٺيڪ ٿئي. اسان 6 اکين سان هڪ درخواست لکون ٿا، ان کي اڳ-پيداوار ۾ رول ڪريو، ان کي جانچيو، ان کي پيداوار لاء رول ڪريو.

04:00. سڀ ڪجهه ڪم ڪري رهيو آهي
سڀ ٽيسٽ پاس ڪيا ويا، ڪو به نازڪ مسئلو نظر نه ٿو اچي. وقت بوقت، ٽيم ۾ ڪا شيءِ ڪنهن لاءِ ڪم نه ڪندي آهي، اسان فوري طور تي رد عمل ڪندا آهيون. گهڻو ڪري الارم غلط آهي. پر ڪڏهن ڪڏهن ڪجهه نه ٿو اچي، يا هڪ الڳ صفحو ڪم نٿو ڪري. اسان ويھي رھيا آھيون، ٺيڪ ڪريو، درست ڪريو، درست ڪريو. هڪ الڳ ٽيم شروع ڪري رهي آهي آخري وڏي خصوصيت - بلنگ.

04:30. واپسي جو نقطو
نه موٽڻ جو نقطو ويجهو اچي رهيو آهي، يعني اهو وقت جڏهن، جيڪڏهن اسان پوئتي موٽڻ شروع ڪريون ٿا، ته اسان کي ڏنل وقت ختم نه ڪنداسين. بلنگ سان مسئلا آهن، جيڪي سڀ ڪجهه ڄاڻي ٿو ۽ رڪارڊ ڪري ٿو، پر ضد طور تي گراهڪن کان پئسا بند ڪرڻ کان انڪار ڪري ٿو. انفرادي صفحن، ڪارناما، ۽ اسٽيٽس تي ڪيترائي بگ آھن. مکيه ڪارڪردگي ڪم ڪري ٿو، سڀ ٽيسٽ ڪاميابيء سان گذري ٿو. اسان فيصلو ڪيو ته رول آئوٽ ٿي چڪو آهي، اسان واپس نه ڪنداسين.

06:00. UI ۾ سڀني لاءِ کوليو
غلطيون طئي ٿيل. ڪجھ جيڪي صارفين کي اپيل نٿا ڪن، بعد ۾ ڇڏي ويا آھن. اسان سڀني کي انٽرفيس کوليو. اسان بلنگ تي ڪم جاري رکون ٿا، صارف جي راءِ جو انتظار ۽ نتيجن جي نگراني ڪريون ٿا.

07:00. API لوڊ سان مسئلا
اهو واضح ٿئي ٿو ته اسان پنهنجي API تي لوڊ کي ٿورڙي غلط رٿابندي ڪئي ۽ هن لوڊ کي آزمايو، جيڪو مسئلو جي نشاندهي نه ڪري سگهيو. نتيجي طور، ≈5٪ درخواستون ناڪام ٿيون. اچو ته متحرڪ ڪريون ۽ سبب ڳوليون.

بلنگ ضد آهي ۽ ڪم ڪرڻ نٿو چاهي. اسان ان کي دير تائين ملتوي ڪرڻ جو فيصلو ڪريون ٿا ته جيئن تبديلين کي پرامن طريقي سان عمل ۾ آڻي سگهجي. اهو آهي، سڀئي وسيلا ان ۾ گڏ ڪيا ويا آهن، پر گراهڪن کان لکت جي ذريعي نه وڃو. يقينا، اهو هڪ مسئلو آهي، پر عام رول آئوٽ جي مقابلي ۾ اهو غير ضروري لڳي ٿو.

08:00. درست ڪريو API
اسان لوڊ ڪرڻ لاء هڪ حل ڪڍيو، ناڪامي ٿي ويا. اسان گهر وڃڻ شروع ڪيو.

10:00. سڀ
سڀ ڪجهه طئي ٿيل آهي. اها نگراني ۾ خاموش آهي ۽ گراهڪن جي جاءِ تي، ٽيم آهستي آهستي سمهي رهي ٿي. بلنگ رهي ٿي، سڀاڻي بحال ڪنداسين.

پوءِ ڏينهن جي دوران اتي رول آئوٽ هئا جيڪي مقرر ٿيل لاگز، نوٽيفڪيشن، واپسي جا ڪوڊ ۽ ڪسٽمائيزيشن اسان جي ڪجهه گراهڪن لاءِ.

تنهن ڪري، رولٽ ڪامياب ٿي ويو! اهو، يقينا، بهتر ٿي سگهي ٿو، پر اسان اهو نتيجو ڪڍيو آهي ته اسان لاء ڪمال حاصل ڪرڻ لاء ڪافي نه هو.

ڪل

رول آئوٽ جي فعال تياري جي 2 مھينن دوران، 43 ڪم مڪمل ڪيا ويا، جيڪي ڪجھ ڪلاڪن کان ڪيترن ڏينھن تائين جاري رھيا.

رولنگ دوران:

  • نئون ۽ تبديل ٿيل شيطان - 5 ٽڪر، 2 monoliths کي تبديل ڪرڻ؛
  • ڊيٽابيس اندر تبديليون - صارف جي ڊيٽا سان گڏ اسان جا سڀئي 6 ڊيٽابيس متاثر ٿيا آهن، ٽن پراڻن ڊيٽابيسن مان ڊائون لوڊ ڪيا ويا آهن هڪ نئين ۾؛
  • مڪمل طور تي ٺهيل فرنٽ اينڊ؛
  • ڊائون لوڊ ڪيل ڪوڊ جي رقم - نئين ڪوڊ جون 33 هزار لائينون، ٽيسٽ ۾ ڪوڊ جون 3 هزار لائينون، لڏپلاڻ ڪوڊ جون 5 هزار لائينون؛
  • سڀ ڊيٽا برقرار آهي، نه هڪ صارف جي مجازي مشين کي نقصان پهچايو ويو. 🙂

سٺو رول آئوٽ لاء سٺو عمل

هنن هن ڏکئي صورتحال ۾ اسان جي رهنمائي ڪئي. پر، عام طور تي ڳالهائڻ، اهو مفيد آهي ته انهن جي پيروي ڪرڻ دوران ڪنهن به رول آئوٽ دوران. پر وڌيڪ پيچيده رول آئوٽ، وڏو ڪردار اهي ادا ڪن ٿا.

  1. پهرين شيء جيڪا توهان کي ڪرڻ جي ضرورت آهي اهو سمجهڻ آهي ته رول آئوٽ ڪيئن ڪري سگهي ٿو يا صارفين کي متاثر ڪندو. اتي بند وقت ٿيندو؟ جيڪڏهن ائين آهي، بند وقت ڇا آهي؟ اهو صارفين کي ڪيئن متاثر ڪندو؟ ممڪن بهترين ۽ بدترين صورت حال ڇا آهن؟ ۽ خطرن کي ڍڪيو.
  2. هر شي جو منصوبو ٺاهيو. هر مرحلي تي، توهان کي رول آئوٽ جي سڀني حصن کي سمجهڻ جي ضرورت آهي:
    • ڪوڊ پهچائڻ؛
    • ڪوڊ رول بيڪ؛
    • هر آپريشن جو وقت؛
    • متاثر ٿيل ڪارڪردگي.
  3. منظرنامن جي ذريعي کيڏيو جيستائين رول آئوٽ جي سڀني مرحلن تي، ۽ انهي سان گڏ انهن مان هر هڪ تي خطرات، واضح ٿي وڃن. جيڪڏھن توھان کي ڪو شڪ آھي، توھان ھڪڙو وقفو وٺي سگھوٿا ۽ الڳ الڳ سوال واري مرحلي کي جانچي سگھو ٿا.
  4. هر اسٽيج ٿي سگهي ٿو ۽ بهتر ٿيڻ گهرجي جيڪڏهن اهو اسان جي صارفين جي مدد ڪري ٿي. مثال طور، اهو وقت گھٽائي ڇڏيندو يا ڪجهه خطرن کي ختم ڪندو.
  5. رول بيڪ ٽيسٽنگ ڪوڊ ڊليوري ٽيسٽنگ کان وڌيڪ اهم آهي. اهو چيڪ ڪرڻ ضروري آهي ته رول بيڪ جي نتيجي ۾ سسٽم پنهنجي اصل حالت ڏانهن موٽندو، ۽ ٽيسٽ سان ان جي تصديق ڪريو.
  6. هر شيء جيڪا خودڪار ٿي سگهي ٿي خودڪار ٿيڻ گهرجي. هر شي جيڪا خودڪار نه ٿي سگهي، اڳ ۾ هڪ چيٽ شيٽ تي لکيو وڃي.
  7. ڪاميابي جي معيار کي رڪارڊ ڪريو. ڪهڙي ڪارڪردگي موجود هجڻ گهرجي ۽ ڪهڙي وقت تي؟ جيڪڏهن ائين نه ٿئي، هڪ رول بيڪ پلان کي هلائي.
  8. ۽ سڀ کان اهم - ماڻهو. هر ڪنهن کي خبر هجڻ گهرجي ته اهي ڇا ڪري رهيا آهن، ڇو ۽ ڇا انهن جي عملن تي منحصر آهي رول آئوٽ عمل ۾.

۽ هڪ جملي ۾، سٺي منصوبابندي ۽ تفصيل سان توهان وڪرو ڪري سگهو ٿا جيڪو توهان چاهيو ٿا بغير وڪرو جي نتيجن جي. ايستائين جو ڪجھھ توھان جي پيداوار ۾ توھان جي سڀني خدمتن کي متاثر ڪندو.

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

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