HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

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

HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

ايندڙ HighLoad++ ڪانفرنس 6 ۽ 7 اپريل 2020 تي سينٽ پيٽرسبرگ ۾ ٿيندي. تفصيلات ۽ ٽڪيٽ لاء لنڪ. نومبر 9, 18:00. هاء لوڊ ++ ماسڪو 2018، دهلي + ڪولڪتا هال. ٿيسز ۽ پيشڪش.

Evgeniy Kuzovlev (هاڻي - EC): - دوستو، هيلو! منهنجو نالو Kuzovlev Evgeniy آهي. مان آهيان EcommPay ڪمپني مان، هڪ مخصوص ڊويزن آهي EcommPay IT، ڪمپني جي گروپ جي آئي ٽي ڊويزن. ۽ اڄ اسان دير جي باري ۾ ڳالهائينداسين - انهن کان ڪيئن بچڻ جي باري ۾، انهن جي نتيجن کي ڪيئن گھٽائڻ جي باري ۾ جيڪڏهن ان کان بچي نٿو سگهجي. موضوع هن ريت بيان ڪيو ويو آهي: ”جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100 هجي ته ڇا ڪجي“؟ اڳتي ڏسي رهيا آهيون، اسان جا انگ برابر آهن.

EcommPay IT ڇا ڪندو آهي؟

اسين ڪير آهيون؟ مان هتي تنهنجي سامهون ڇو بيٺو آهيان؟ مون کي اهو حق ڇو آهي ته توهان کي هتي ڪجهه ٻڌايان؟ ۽ ڇا اسان هتي وڌيڪ تفصيل سان ڳالهائينداسين؟

HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

ڪمپني جو EcommPay گروپ هڪ بين الاقوامي حاصل ڪندڙ آهي. اسان سڄي دنيا ۾ ادائيگي تي عمل ڪندا آهيون - روس، يورپ، ڏکڻ اوڀر ايشيا (سڄي دنيا ۾). اسان وٽ 9 آفيسون آهن، مجموعي طور تي 500 ملازم آهن، ۽ انهن مان تقريباً اڌ کان گهٽ IT ماهر آهن. سڀ ڪجھ اسان ڪندا آھيون، سڀ ڪجھ جيڪو اسان پئسا ڪمائيندا آھيون، اسان پاڻ ڪيو.

اسان پنهنجون سڀئي پراڊڪٽس لکيون آهن (۽ اسان وٽ انهن مان ڪافي تعداد آهي - اسان جي وڏي آئي ٽي پروڊڪٽس جي قطار ۾ اسان وٽ اٽڪل 16 مختلف حصا آهن) پاڻ؛ اسان پاڻ کي لکون ٿا، اسان پاڻ کي ترقي ڪريون ٿا. ۽ هن وقت اسان هڪ ڏينهن ۾ اٽڪل هڪ ملين ٽرانزيڪشن ڪندا آهيون (لکين شايد اهو چوڻ جو صحيح طريقو آهي). اسان هڪ ڪافي نوجوان ڪمپني آهيون - اسان صرف ڇهه سالن جي عمر ۾ آهيون.

6 سال اڳ اها هڪ اهڙي شروعات هئي جڏهن ماڻهو ڪاروبار سان گڏ آيا. اهي هڪ خيال سان متحد هئا (هڪ خيال کان سواء ٻيو ڪجهه به نه هو)، ۽ اسان ڀڄي ويا. ڪنهن به شروعات وانگر، اسان تيزيءَ سان ڊوڙيا... اسان لاءِ، رفتار معيار کان وڌيڪ اهم هئي.

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

توهان هڪ نئين پيداوار ٺاهيو، توهان ان کي پيداوار ۾ رکون ٿا، پر اڃا به ڪجهه غلط ٿي ويندو. ۽ اڄ اسين ڳالهائينداسين ته نئين معيار جي سطح تائين ڪيئن پهچون (اسان اهو ڪيئن ڪيو، اسان جي تجربي بابت)، مساوات مان ترقي ۽ جانچ وٺڻ؛ اسان ان بابت ڳالهائينداسين جيڪو آپريشن لاءِ دستياب آهي - ڪهڙو آپريشن پنهنجو پاڻ ڪري سگهي ٿو، معيار کي متاثر ڪرڻ لاءِ اهو جانچ لاءِ ڇا پيش ڪري سگهي ٿو.

گھٽ وقت. آپريشن جا حڪم.

هميشه بنيادي بنياد، جيڪو اسان اڄ بابت ڳالهائينداسين، اهو وقت آهي. هڪ خوفناڪ لفظ. جيڪڏهن اسان وٽ وقت آهي، هر شيء اسان لاء خراب آهي. اسان ان کي بلند ڪرڻ لاءِ ڊوڙي رهيا آهيون، منتظمين سرور سنڀالي رهيا آهن - خدا نه ڪري ته اهو گر نه ٿئي، جيئن اهي هن گيت ۾ چوندا آهن. اهو آهي جيڪو اسان اڄ بابت ڳالهائينداسين.

HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

جڏهن اسان پنهنجي طريقي کي تبديل ڪرڻ شروع ڪيو، اسان 4 حڪم ٺاهيا. مون انهن کي سلائڊ تي پيش ڪيو آهي:

اهي حڪم بلڪل سادي آهن:

HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

  • جلدي مسئلي جي سڃاڻپ ڪريو.
  • ان کان به تيزيءَ سان نجات حاصل ڪريو.
  • سبب سمجھڻ ۾ مدد ڪريو (بعد ۾، ڊولپرز لاء).
  • ۽ طريقن کي معياري ڪريو.

مان توهان جو ڌيان نقطي نمبر 2 ڏانهن ڏيارڻ چاهيان ٿو، اسان مسئلي کي حل ڪرڻ نه پر ان مان نجات حاصل ڪري رهيا آهيون. فيصلو ثانوي آهي. اسان لاء، بنيادي شيء اها آهي ته صارف هن مسئلي کان محفوظ آهي. اهو ڪنهن الڳ ماحول ۾ موجود هوندو، پر اهو ماحول ان سان ڪو به رابطو نه ڪندو. دراصل، اسان مسئلن جي انهن چئن گروپن مان وڃون ٿا (ڪجهه وڌيڪ تفصيل سان، ڪجهه گهٽ تفصيل ۾)، مان توهان کي ٻڌايان ٿو ته اسان ڇا استعمال ڪريون ٿا، اسان وٽ حل ۾ ڪهڙو لاڳاپيل تجربو آهي.

مسئلا حل ڪرڻ: اهي ڪڏهن ٿين ٿا ۽ انهن بابت ڇا ڪجي؟

پر اسان ترتيب کان ٻاهر شروع ڪنداسين، اسان پوائنٽ نمبر 2 سان شروع ڪنداسين - ڪيئن جلدي مسئلي کان نجات حاصل ڪجي؟ اتي هڪ مسئلو آهي - اسان کي ان کي درست ڪرڻ جي ضرورت آهي. "اسان کي ان بابت ڇا ڪرڻ گهرجي؟" - بنيادي سوال. ۽ جڏهن اسان سوچڻ شروع ڪيو ته مسئلي کي ڪيئن حل ڪيو وڃي، اسان پاڻ لاءِ ڪجهه گهرجون تيار ڪيون جن کي حل ڪرڻ لازمي آهي.

HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

انهن گهرجن کي ترتيب ڏيڻ لاء، اسان پاڻ کان سوال پڇڻ جو فيصلو ڪيو: "اسان کي ڪڏهن مسئلا آهن"؟ ۽ مسئلا، جيئن اهو نڪتو، چار ڪيسن ۾ ٿئي ٿو:

HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

  • هارڊويئر ناڪامي.
  • خارجي خدمتون ناڪام ٿي ويون.
  • سافٽ ويئر ورزن کي تبديل ڪرڻ (ساڳي ترتيب).
  • ڌماڪيدار لوڊ واڌ.

اسان پهرين ٻن بابت نه ڳالهائينداسين. هارڊويئر جي خرابيءَ کي آسانيءَ سان حل ڪري سگهجي ٿو: توهان وٽ هر شي کي نقل ڪرڻ گهرجي. جيڪڏهن اهي ڊسڪون آهن، ڊسڪ کي RAID ۾ گڏ ڪيو وڃي؛ جيڪڏهن اهو سرور آهي، سرور کي نقل ڪيو وڃي؛ جيڪڏهن توهان وٽ نيٽورڪ انفراسٽرڪچر آهي، توهان کي لازمي طور تي نيٽ ورڪ انفراسٽرڪچر جي هڪ ٻي ڪاپي فراهم ڪرڻ گهرجي، اهو آهي، توهان ان کي وٺو ۽ ان کي نقل ڪريو. ۽ جيڪڏهن ڪجهه ناڪام ٿيو، توهان کي ريزرو پاور تي سوئچ ڪريو. هتي وڌيڪ ڪجهه چوڻ ڏکيو آهي.

ٻيو خارجي خدمتن جي ناڪامي آهي. گهڻو ڪري، سسٽم سڀ ڪجهه مسئلو ناهي، پر اسان لاء ناهي. جيئن ته اسان ادائگي تي عمل ڪندا آهيون، اسان هڪ جمع ڪندڙ آهيون جيڪو صارف (جيڪو پنهنجي ڪارڊ ڊيٽا داخل ڪري ٿو) ۽ بينڪن، ادائيگي سسٽم (ويزا، ماسٽر ڪارڊ، ميرا، وغيره) جي وچ ۾ بيٺل آهي. اسان جون خارجي خدمتون (ادائيگي جا نظام، بئنڪون) ناڪام ٿي وڃن ٿيون. نه ته اسان ۽ نه توهان (جيڪڏهن توهان وٽ اهڙيون خدمتون آهن) هن تي اثر انداز ڪري سگهون ٿا.

پوءِ ڇا ڪجي؟ هتي ٻه اختيار آهن. پهرين، جيڪڏهن توهان ڪري سگهو ٿا، توهان کي هن خدمت کي ڪنهن طريقي سان نقل ڪرڻ گهرجي. مثال طور، جيڪڏهن اسان ڪري سگهون ٿا، اسان ٽرئفڪ کي هڪ خدمت کان ٻئي ڏانهن منتقل ڪريون ٿا: مثال طور، ڪارڊ Sberbank ذريعي پروسيس ڪيا ويا، Sberbank کي مسئلو آهي - اسان ٽرئفڪ کي [مشروط طور تي] Raiffeisen ڏانهن منتقل ڪريون ٿا. ٻي شيء جيڪا اسان ڪري سگهون ٿا اهو آهي ته ٻاهرين خدمتن جي ناڪامي کي تمام جلدي نوٽيس ڪيو وڃي، ۽ تنهن ڪري اسان رپورٽ جي ايندڙ حصي ۾ جواب جي رفتار بابت ڳالهائينداسين.

حقيقت ۾، انهن چئن مان، اسان خاص طور تي سافٽ ويئر ورزن جي تبديلي تي اثر انداز ڪري سگهون ٿا - اهڙا قدم کڻندا جيڪي صورتحال ۾ بهتري جو سبب بڻجندا ڊيپلائيمينٽ جي حوالي سان ۽ لوڊ ۾ ڌماڪيدار واڌ جي حوالي سان. حقيقت ۾، اسان اهو ئي ڪيو آهي. هتي، ٻيهر، هڪ ننڍڙو نوٽ ...

انهن چئن مسئلن مان، ڪيترائي فوري طور تي حل ڪيا ويا آهن جيڪڏهن توهان وٽ بادل آهي. جيڪڏهن توهان Microsoft Azhur ۾ آهيو، اوزون بادل، يا اسان جا بادل استعمال ڪري رهيا آهيو، Yandex يا Mail مان، پوءِ گهٽ ۾ گهٽ هارڊويئر جي خرابي انهن جو مسئلو بڻجي وڃي ٿي ۽ هارڊويئر جي خرابيءَ جي سلسلي ۾ توهان لاءِ فوري طور تي سڀ ڪجهه ٺيڪ ٿي وڃي ٿو.

اسان ٿورڙي غير روايتي ڪمپني آهيون. هتي هر ڪو ”ڪبرنيٽ“ جي باري ۾ ڳالهائي رهيو آهي، ڪڪر جي باري ۾ - اسان وٽ نه ”ڪبرنيٽس“ آهن ۽ نه ئي ڪڪر. پر اسان وٽ ڪيترن ئي ڊيٽا سينٽرن ۾ هارڊ ويئر جا ريڪ موجود آهن، ۽ اسان ان هارڊويئر تي رهڻ تي مجبور آهيون، اسان ان سڀني جا ذميوار ٿيڻ تي مجبور آهيون. تنهن ڪري، اسان ان حوالي سان ڳالهائينداسين. تنهن ڪري، مسئلن جي باري ۾. پهرين ٻه بریکٹ مان ڪڍيا ويا.

سافٽ ويئر ورزن کي تبديل ڪرڻ. بنياد

اسان جي ڊولپرز کي پيداوار تائين رسائي نه آهي. ائين ڇو آهي؟ اهو صرف اهو آهي ته اسان PCI DSS تصديق ٿيل آهيون، ۽ اسان جي ڊولپرز کي صرف "پراڊڪٽ" ۾ حاصل ڪرڻ جو حق ناهي. اهو ئي آهي، مدت. بلڪل. تنهن ڪري، ترقي جي ذميواري هن وقت ختم ٿي ويندي آهي جڏهن ترقي جاري ڪرڻ لاء تعمير جمع ڪري ٿي.

HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

اسان جو ٻيو بنياد جيڪو اسان وٽ آهي، جيڪو پڻ اسان جي تمام گهڻي مدد ڪري ٿو، منفرد غير دستاويزي علم جي غير موجودگي آهي. مون کي اميد آهي ته اهو توهان لاء ساڳيو آهي. ڇو ته جيڪڏهن اهو معاملو نه آهي، توهان کي مسئلا هوندا. مسئلا تڏهن پيدا ٿيندا جڏهن هي منفرد، غير دستاويزي علم صحيح وقت تي صحيح جاءِ تي موجود نه هوندو. اچو ته چئو ته توهان وٽ هڪ شخص آهي جيڪو ڄاڻي ٿو ته هڪ مخصوص جزو کي ڪيئن ترتيب ڏيڻ - اهو شخص اتي ناهي، هو موڪلن تي آهي يا بيمار آهي - اهو ئي آهي، توهان کي مسئلا آهن.

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

سافٽ ويئر جي نسخي کي تبديل ڪرڻ لاء گهرجون

اتي ٽي گهرجون آهن:

HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

  • اسان کي جلدي واپسي کي واپس آڻڻ گهرجي.
  • اسان کي لازمي طور تي ناڪام ٿيڻ جي اثر کي گھٽائڻو پوندو.
  • ۽ اسان کي لازمي طور تي متوازي طور تي ترتيب ڏيڻ جي قابل هوندو.
    بلڪل ان ترتيب ۾! ڇو؟ ڇو ته، سڀ کان پهريان، جڏهن نئون ورجن ترتيب ڏيو، رفتار اهم نه آهي، پر اهو توهان لاءِ ضروري آهي، جيڪڏهن ڪجهه غلط ٿي وڃي ته، جلدي واپس هلو ۽ گهٽ ۾ گهٽ اثر وجهو. پر جيڪڏهن توهان وٽ پيداوار ۾ نسخن جو هڪ سيٽ آهي، جنهن لاء اهو ظاهر ٿئي ٿو ته اتي هڪ غلطي آهي (نيرو کان ٻاهر، ڪو به مقرري نه هئي، پر هڪ غلطي آهي) - بعد ۾ ترتيب ڏيڻ جي رفتار توهان لاء اهم آهي. اسان انهن مطالبن کي پورو ڪرڻ لاءِ ڇا ڪيو آهي؟ اسان هيٺ ڏنل طريقي سان استعمال ڪيو:

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    اهو تمام گهڻو مشهور آهي، اسان ڪڏهن به ان کي ايجاد نه ڪيو آهي - هي بليو / گرين ڊيپلو آهي. هي ڇا آهي؟ توهان کي سرور جي هر گروپ لاءِ هڪ ڪاپي هجڻ گهرجي جنهن تي توهان جون ايپليڪيشنون نصب ٿيل آهن. ڪاپي "گرم" آهي: ان تي ڪوبه ٽرئفڪ نه آهي، پر ڪنهن به وقت هي ٽرئفڪ هن ڪاپي ڏانهن موڪلي سگهجي ٿو. هي نسخو اڳوڻو نسخو تي مشتمل آهي. ۽ مقرري جي وقت، توهان ڪوڊ کي رول آئوٽ ڪيو هڪ غير فعال ڪاپي ڏانهن. پوءِ توھان ٽريفڪ جو حصو تبديل ڪريو (يا سڀ) نئين ورزن ڏانھن. اهڙيء طرح، پراڻي ورزن کان نئين ڏانهن ٽرئفڪ جي وهڪري کي تبديل ڪرڻ لاء، توهان کي صرف هڪ عمل ڪرڻ جي ضرورت آهي: توهان کي اپ اسٽريم ۾ بيلنس کي تبديل ڪرڻ جي ضرورت آهي، هدايت کي تبديل ڪريو - هڪ اپ اسٽريم کان ٻئي تائين. اهو تمام آسان آهي ۽ جلدي سوئچنگ ۽ جلدي رول بيڪ جي مسئلي کي حل ڪري ٿو.

    ھتي ٻئي سوال جو حل گھٽ ۾ گھٽ آھي: توھان پنھنجي ٽريفڪ جو صرف ھڪڙو حصو موڪلي سگھو ٿا ھڪڙي نئين لائن ڏانھن، ھڪڙي لائن ڏانھن ھڪڙي نئين ڪوڊ سان (ان کي ڏيو، مثال طور، 2٪). ۽ اهي 2٪ نه آهن 100٪! جيڪڏهن توهان پنهنجي ٽريفڪ جو 100٪ وڃائي ڇڏيو هڪ ناڪامي جي ترتيب جي ڪري، اهو خوفناڪ آهي؛ جيڪڏهن توهان پنهنجي ٽرئفڪ جو 2٪ وڃائي ڇڏيو، اهو ناپسنديده آهي، پر اهو خوفناڪ ناهي. ان کان علاوه، صارفين گهڻو ڪري ان کي نوٽيس نه ڪندا، ڇو ته ڪجهه حالتن ۾ (سڀني ۾ نه) ساڳئي صارف، F5 کي دٻائيندي، ٻئي، ڪم ڪندڙ ورزن ڏانهن ورتو ويندو.

    نيرو / سائو لڳائڻ. روئڻ

    بهرحال، هر شيءِ ايترو سادو ناهي ”بليو/گرين ڊيپلائي“... اسان جا سڀئي حصا ٽن گروهن ۾ ورهائي سگهجن ٿا:

    • هي آهي فرنٽ اينڊ (ادائيگي جا صفحا جيڪي اسان جا گراهڪ ڏسن ٿا)؛
    • پروسيسنگ ڪور؛
    • ادائگي جي نظام سان ڪم ڪرڻ لاء اڊاپٽر (بينڪ، ماسٽر ڪارڊ، ويزا ...).

    ۽ هتي هڪ nuance آهي - nuance لائينن جي وچ ۾ رستي ۾ ڪوڙ. جيڪڏهن توهان صرف 100٪ ٽرئفڪ کي تبديل ڪريو ٿا، توهان وٽ اهي مسئلا نه آهن. پر جيڪڏهن توهان 2٪ کي تبديل ڪرڻ چاهيو ٿا، توهان سوال پڇڻ شروع ڪيو: "اهو ڪيئن ڪجي؟" سادو شيءِ سڌو آهي اڳتي: توهان سيٽ ڪري سگهو ٿا گول رابن نينگڪس ۾ بي ترتيب پسند سان، ۽ توهان وٽ آهي 2٪ کاٻي طرف، 98٪ ساڄي طرف. پر اهو هميشه مناسب ناهي.

    مثال طور، اسان جي صورت ۾، هڪ صارف هڪ کان وڌيڪ درخواستن سان سسٽم سان رابطو ڪري ٿو. هي عام آهي: 2، 3، 4، 5 درخواستون - توهان جو سسٽم ساڳيو ٿي سگهي ٿو. ۽ جيڪڏهن اهو توهان لاءِ ضروري آهي ته صارف جون سڀئي درخواستون ساڳئي لڪير تي اچن ٿيون جنهن تي پهرين درخواست آئي هئي، يا (ٻيو نقطو) صارف جون سڀئي درخواستون سوئچ ٿيڻ کان پوءِ نئين لائين تي اچن ٿيون (هو اڳ ۾ ئي ڪم شروع ڪري سگهي ٿو. سسٽم، سوئچ کان اڳ)، - پوء هي بي ترتيب واري تقسيم توهان لاء مناسب ناهي. پوء ھيٺ ڏنل اختيارن آھن:

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    پهريون اختيار، آسان ترين، ڪلائنٽ جي بنيادي پيٽرولن تي ٻڌل آهي (IP Hash). توهان وٽ هڪ IP آهي، ۽ توهان ان کي IP پتي سان ساڄي کان کاٻي طرف ورهايو. پوءِ ٻيو ڪيس جيڪو مون بيان ڪيو آهي اهو توهان لاءِ ڪم ڪندو، جڏهن تعیناتي ٿي وئي، صارف اڳ ۾ ئي توهان جي سسٽم سان ڪم ڪرڻ شروع ڪري سگهي ٿو، ۽ تعیناتي جي وقت کان وٺي سڀني درخواستن کي نئين لائين ڏانهن ويندي (ساڳي هڪ ڏانهن، چئو).

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

    اهو اسان کي مناسب نه هو ڇو ته اسان وٽ اڳ ۾ ئي باقاعده نينڪس هو. nginx + ڏانهن تبديل ڪرڻ اهو ناهي ته اهو قيمتي آهي، اهو صرف اهو آهي ته اهو اسان لاء ڪجهه دردناڪ هو ۽ بلڪل صحيح ناهي. ”اسٽڪ سيشن“، مثال طور، اسان لاءِ ڪم نه ڪيو ان سادي سبب لاءِ ته ”اسٽيڪس سيشن“ روٽنگ جي اجازت نه ڏيندا آهن ”يا ته يا“ جي بنياد تي. اتي توھان بيان ڪري سگھوٿا ته اسين ڇا ڪندا آھيون ”اسٽڪ سيشن“، مثال طور، IP پتي يا IP پتي ۽ ڪوڪيز ذريعي يا پوسٽ پيراميٽر ذريعي، پر اتي ”يا يا يا“ وڌيڪ پيچيده آھي.

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

    ۽ اسان لکيو آهي، حقيقت ۾، هڪ اهڙي اسڪرپٽ، پاڻ کي "اوپنريسٽي" مقرر ڪيو ۽ هن اسڪرپٽ ۾ اسان 6 مختلف پيٽرولن ذريعي ترتيب ڏيو "يا" سان. هڪ يا ٻئي پيٽرولر جي موجودگي تي مدار رکندي، اسان ڄاڻون ٿا ته صارف هڪ صفحي يا ٻئي تي آيو، هڪ لائن يا ٻيو.

    نيرو / سائو لڳائڻ. فائدا ۽ نقصان

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

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    تنهن ڪري، اهو اسان لاء ڪم نه ڪيو - اسان کليل ڪيو. انهي جي مطابق، رستي سان اسان کي ڪجهه هن طرح مليو:

    بليو/گرين ڊيپلائيشن، مطابق، فائدن جن جو مون ذڪر ڪيو ۽ نقصان.

    ٻه نقصان:

    • توهان کي رستي سان پريشان ڪرڻ جي ضرورت آهي؛
    • ٻيو مکيه نقصان خرچ آهي.

    توھان کي ٻه ڀيرا گھڻن سرورن جي ضرورت آھي، توھان کي ٻه ڀيرا وڌيڪ آپريشنل وسيلن جي ضرورت آھي، توھان کي ھن سڄي زو کي برقرار رکڻ لاءِ ٻه ڀيرا وڌيڪ ڪوششون خرچ ڪرڻ جي ضرورت آھي.

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

    ڪيئن تڪڙو لڳائڻ لاء؟

    اسان ڳالهايو ته ڪيئن گھٽائڻ ۽ جلدي رول بيڪ جي مسئلي کي حل ڪرڻ، پر سوال رهي ٿو: "جلدي ڪيئن ترتيب ڏيڻ؟"

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    اهو هتي مختصر ۽ سادو آهي.

    • توهان وٽ هڪ سي ڊي سسٽم هجڻ گهرجي (مسلسل پهچائڻ) - توهان ان کان سواء رهي نٿا سگهو. جيڪڏھن توھان وٽ ھڪڙو سرور آھي، توھان دستي طور تي ترتيب ڏئي سگھو ٿا. اسان وٽ اٽڪل اڍائي هزار سرور ۽ ساڍا ٽي هزار هينڊلز آهن، يقيناً - اسان هڪ ڊپارٽمينٽ پلانٽ ڪري سگهون ٿا صرف هن ڪمري جي سائيز کي لڳائڻ لاءِ.
    • مقرري متوازي هجڻ گهرجي. جيڪڏهن توهان جي تعیناتي ترتيب وار آهي، ته پوء سڀ ڪجهه خراب آهي. ھڪڙو سرور عام آھي، توھان کي مقرر ڪيو ويندو ھڪڙو اڌ ھزار سرور سڄو ڏينھن.
    • ٻيهر، تيزيءَ لاءِ، اهو شايد هاڻي ضروري ناهي. لڳائڻ دوران، پروجيڪٽ عام طور تي ٺهيل آهي. توهان وٽ هڪ ويب پروجيڪٽ آهي، اتي هڪ فرنٽ-اينڊ حصو آهي (توهان اتي ويب پيڪ ڪريو ٿا، توهان اين پي ايم کي ترتيب ڏيو ٿا - ڪجهه اهڙي طرح)، ۽ اهو عمل، اصول ۾، مختصر-رهندڙ - 5 منٽ، پر اهي 5 منٽ ڪري سگهن ٿا. نازڪ ٿيڻ. اهو ڇو، مثال طور، اسان اهو نه ڪندا آهيون: اسان انهن 5 منٽن کي هٽايو، اسان نموني کي ترتيب ڏيو.

      هڪ artifact ڇا آهي؟ هڪ آرٽيڪل هڪ گڏ ڪيل تعمير آهي جنهن ۾ سڀ اسيمبليء جا حصا اڳ ۾ ئي مڪمل ڪيا ويا آهن. اسان هن آرٽيڪل کي آرٽيڪل اسٽوريج ۾ ذخيرو ڪندا آهيون. هڪ دفعي اسان ٻه اهڙيون اسٽوريج استعمال ڪيون هيون - اهو Nexus ۽ هاڻي jFrog Artifactory هو. اسان شروعات ۾ ”Nexus“ استعمال ڪيو ڇاڪاڻ ته اسان هن طريقي کي جاوا ايپليڪيشنن ۾ مشق ڪرڻ شروع ڪيو (اهو ان لاءِ مناسب هو). پوءِ انهن PHP ۾ لکيل ڪجهه ايپليڪيشنن کي اتي رکيو. ۽ "Nexus" هاڻي مناسب نه هو، ۽ ان ڪري اسان چونڊيو jFrog Artefactory، جيڪو تقريبا هر شيء کي آرٽيڪل ڪري سگهي ٿو. اسان ان نقطي تي به پهچي چڪا آهيون ته هن آرٽيڪل جي مخزن ۾ اسان اسان جا پنهنجا بائنري پيڪيجز ذخيرو ڪندا آهيون جيڪي اسان سرورز لاءِ گڏ ڪندا آهيون.

    ڌماڪيدار لوڊ واڌ

    اسان سافٽ ويئر ورزن کي تبديل ڪرڻ بابت ڳالهايو. ايندڙ شيء اسان وٽ آهي لوڊ ۾ هڪ ڌماڪي وارو اضافو. هتي، منهنجو مطلب شايد لوڊ جي ڌماڪي واري واڌ سان بلڪل صحيح شيء ناهي ...

    اسان هڪ نئون نظام لکيو آهي - اهو خدمت تي مبني آهي، فيشن وارو، خوبصورت، هر جڳهه مزدور، هر جڳهه قطار، هر جڳهه غير مطابقت. ۽ اهڙين سسٽم ۾، ڊيٽا مختلف وهڪري ذريعي وهندو آهي. پهرين ٽرانزيڪشن لاءِ، 1st، 3rd، 10th ورڪر استعمال ڪري سگھجن ٿا، ٻئي ٽرانزيڪشن لاءِ - 2nd، 4th، 5th. ۽ اڄ، اچو ته چئو، صبح جو توهان وٽ ڊيٽا جي وهڪري آهي جيڪا پهرين ٽن ڪارڪنن کي استعمال ڪندي آهي، ۽ شام ۾ اهو ڊرامائي طور تي تبديل ڪري ٿو، ۽ هر شيء ٻين ٽن ڪارڪنن کي استعمال ڪري ٿو.

    ۽ هتي اهو ظاهر ٿئي ٿو ته توهان کي ڪنهن نه ڪنهن طرح ڪارڪنن کي ماپڻ جي ضرورت آهي، توهان کي ڪنهن به طرح توهان جي خدمتن کي ماپڻ جي ضرورت آهي، پر ساڳئي وقت وسيلن جي بلوٽ کي روڪڻ.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    اسان پنهنجي ضرورتن جي وضاحت ڪئي آهي. اهي گهرجون بلڪل ساديون آهن: ته خدمت جي دريافت هجي، پيرا ميٽرائيزيشن - هر شي معياري آهي اهڙي اسپيبلبل سسٽم جي تعمير لاءِ، سواءِ هڪ نقطي جي - وسيلن جي قيمت جي. اسان چيو ته اسان وسيلن کي ختم ڪرڻ لاء تيار نه آهيون ته جيئن سرورز هوا کي گرم ڪن. اسان ”قونصل“ ورتو، اسان ”نومد“ ورتو، جيڪو اسان جي ڪارڪنن جو انتظام ڪري ٿو.

    اسان لاءِ هي مسئلو ڇو آهي؟ اچو ته ٿورو پوئتي هٽون. اسان وٽ هاڻي اسان جي پويان 70 ادائگي سسٽم آهن. صبح جو، ٽريفڪ Sberbank ذريعي وڃي ٿو، پوء Sberbank گر ٿي ويو، مثال طور، ۽ اسان ان کي ٻئي ادائگي جي سسٽم ڏانهن تبديل ڪيو. اسان وٽ Sberbank کان اڳ 100 مزدور هئا، ۽ ان کان پوء اسان کي ٻي ادائيگي واري نظام لاء 100 ڪارڪنن کي تيزيء سان وڌائڻ جي ضرورت آهي. ۽ اهو ضروري آهي ته اهو سڀ ڪجهه انساني شموليت کان سواء ٿيڻ گهرجي. ڇو ته جيڪڏهن انساني شرڪت آهي ته اتي هڪ انجنيئر 24/7 بيٺو هجڻ گهرجي، جيڪو صرف اهو ڪري رهيو آهي، ڇو ته اهڙيون ناڪاميون، جڏهن توهان جي پويان 70 سسٽم آهن، باقاعده ٿينديون آهن.

    تنهن ڪري، اسان Nomad کي ڏٺو، جنهن وٽ هڪ کليل IP آهي، ۽ اسان جي پنهنجي شيءِ لکي، Scale-Nomad - ScaleNo، جيڪا لڳ ڀڳ هيٺيون ڪم ڪري ٿي: اهو قطار جي واڌ کي مانيٽر ڪري ٿو ۽ ڪم ڪندڙن جي تعداد کي گھٽائي ٿو يا وڌائي ٿو متحرڪ جي لحاظ کان. قطار جي. جڏهن اسان اهو ڪيو، اسان سوچيو: "شايد اسان ان کي کليل ذريعو ڪري سگهون ٿا؟" پوءِ هنن هن ڏانهن ڏٺو - هوءَ ٻن ڪوپڪن وانگر سادي هئي.

    هن وقت تائين اسان ان کي اوپن سورس نه ڪيو آهي، پر جيڪڏهن اوچتو رپورٽ کان پوء، محسوس ڪيو ته توهان کي اهڙي شيء جي ضرورت آهي، توهان کي ان جي ضرورت آهي، منهنجا رابطا آخري سلائڊ ۾ آهن - مهرباني ڪري مون ڏانهن لکو. جيڪڏهن گهٽ ۾ گهٽ 3-5 ماڻهو آهن، اسان ان کي اسپانسر ڪنداسين.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    اهو ڪيئن ڪم ڪري ٿو؟ اچو ته هڪ نظر وٺو! اڳتي ڏسي رهيا آهيون: کاٻي پاسي اسان جي نگراني جو هڪ ٽڪرو آهي: هي هڪ لڪير آهي، مٿين تي واقعن جي پروسيسنگ جو وقت آهي، وچ ۾ ٽرانزيڪشن جو تعداد آهي، تري ۾ ڪارڪنن جو تعداد آهي.

    جيڪڏهن توهان ڏسندا ته هن تصوير ۾ هڪ خرابي آهي. مٿين چارٽ تي، هڪ چارٽ 45 سيڪنڊن ۾ تباهه ٿي ويو - ادائگي جي سسٽم مان هڪ هيٺ ٿي ويو. فوري طور تي، 2 منٽن ۾ ٽريفڪ آندو ويو ۽ قطار ٻئي ادائگي جي سسٽم تي وڌڻ شروع ڪيو، جتي ڪو به ڪم ڪندڙ نه هئا (اسان وسيلن کي استعمال نه ڪيو - ان جي برعڪس، اسان وسيلن کي صحيح طور تي ختم ڪيو). اسان گرم ڪرڻ نٿا چاهيون - گهٽ ۾ گهٽ تعداد هو، اٽڪل 5-10 مزدور، پر اهي منهن نه ڪري سگهيا.

    آخري گراف ڏيکاري ٿو "همپ"، جنهن جو مطلب صرف اهو آهي ته "Skaleno" هن رقم کي ٻيڻو ڪيو. ۽ پوء، جڏهن گراف ٿورو گهٽجي ويو، هن کي ٿورڙي گھٽائي ڇڏيو - ڪارڪنن جو تعداد خودڪار طور تي تبديل ٿي ويو. اهڙيءَ طرح هي ڪم ڪم ڪندو آهي. اسان پوائنٽ نمبر 2 بابت ڳالهايو - "جلد ڪيئن سببن کان نجات حاصل ڪجي."

    نگراني. ڪيئن جلدي مسئلي جي نشاندهي ڪرڻ لاء؟

    هاڻي پهريون نقطو اهو آهي ته "ڪئين جلدي مسئلي کي سڃاڻڻ لاء؟" نگراني! اسان کي ڪجهه شيون جلدي سمجهڻ گهرجن. ڪهڙيون شيون اسان کي جلدي سمجهڻ گهرجي؟

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    ٽي شيون!

    • اسان کي پنهنجي وسيلن جي ڪارڪردگي کي جلدي سمجهڻ ۽ سمجهڻ گهرجي.
    • اسان کي لازمي طور تي ناڪامين کي سمجهڻ گهرجي ۽ سسٽم جي ڪارڪردگي جي نگراني ڪرڻ گهرجي جيڪي اسان جي ٻاهران آهن.
    • ٽيون نقطو منطقي غلطين جي نشاندهي ڪري رهيو آهي. اھو آھي جڏھن نظام توھان لاءِ ڪم ڪري رھيو آھي، سڀ ڪجھ عام آھي سڀني اشارن جي مطابق، پر ڪجھھ غلط آھي.

    مان شايد توهان کي هتي ڪجهه به نه ٻڌايان ٿو جيڪو ٿڌو آهي. مان ڪئپٽن اوبائيل ٿي ويندس. اسان ڳولي رهيا هئاسين ته بازار ۾ ڇا هو. اسان وٽ هڪ ”مذاق زو“ آهي. ھاڻي ھاڻي اسان وٽ ھن قسم جو زو آھي:

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    اسان هارڊويئر جي نگراني ڪرڻ لاءِ زبڪس استعمال ڪندا آهيون، سرورز جي مکيه اشارن جي نگراني ڪرڻ لاءِ. اسان ڊيٽابيس لاءِ Okmeter استعمال ڪندا آهيون. اسان ٻين سڀني اشارن لاءِ ”Grafana“ ۽ ”Prometheus“ استعمال ڪريون ٿا جيڪي پھرين ٻن ۾ نه ٿا اچن، ڪجھ ”Grafana“ ۽ ”Prometheus“ سان، ۽ ڪجھ ”Grafana“ سان ”Influx“ ۽ Telegraf سان.

    هڪ سال اڳ اسان استعمال ڪرڻ چاهيون ٿا New Relic. سٺي شيء، اهو سڀ ڪجهه ڪري سگهي ٿو. پر جيترو هوءَ سڀ ڪجهه ڪري سگهي ٿي، اوترو ئي قيمتي آهي. جڏهن اسان 1,5 هزار سرورز جي مقدار ۾ وڌو، هڪ وينڊر اسان وٽ آيو ۽ چيو: "اچو ته ايندڙ سال لاء هڪ معاهدو ختم ڪريون." اسان قيمت کي ڏٺو ۽ چيو نه، اسان اهو نه ڪنداسين. ھاڻي ڇڏي رھيا آھيون نيو ريلڪ، اسان وٽ آھي اٽڪل 15 سرورز نيو ريلڪ جي نگراني ھيٺ. قيمت بلڪل جهنگلي هئي.

    ۽ ھڪڙو اوزار آھي جيڪو اسان پاڻ کي لاڳو ڪيو آھي - اھو آھي ڊيبگر. پهرين ته اسان ان کي ”بيگر“ سڏيندا هئاسين، پر پوءِ هڪ انگريزي استاد اتان لنگهندو هو، بيحد کلندو هو، ۽ ان جو نالو مٽائي ”ڊيباگر“ رکيو هو. هي ڇا آهي؟ هي هڪ اوزار آهي، جيڪو حقيقت ۾، هر جزو تي 15-30 سيڪنڊن ۾، سسٽم جي "بليڪ باڪس" وانگر، جزو جي مجموعي ڪارڪردگي تي ٽيسٽ هلندو آهي.

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

    مانيٽرنگ لاءِ ڪهڙا اشارا اهم آهن؟

    ڇا اسان بنيادي طور تي نگراني ڪندا آهيون؟ ڪهڙا اشارا اسان لاء اهم آهن؟

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    • جوابي وقت / آر پي ايس محاذن تي هڪ تمام اهم اشارو آهي. هو فوري طور تي جواب ڏئي ٿو ته توهان سان ڪجهه غلط آهي.
    • سڀني قطارن ۾ پروسيس ٿيل پيغامن جو تعداد.
    • ڪارڪنن جو تعداد.
    • بنيادي درستگي جي ماپ.

    آخري نقطو آهي "ڪاروبار"، "ڪاروبار" ميٽرڪ. جيڪڏھن توھان چاھيو ٿا ساڳي شيءِ مانيٽر ڪرڻ لاءِ، توھان کي ھڪ يا ٻه ميٽرڪ بيان ڪرڻ جي ضرورت آھي جيڪي توھان لاءِ مکيه اشارا آھن. اسان جي ميٽرڪ ذريعي آهي (هي مجموعي ٽرانزيڪشن جي وهڪري جي ڪامياب ٽرانزيڪشن جي تعداد جو تناسب آهي). جيڪڏهن ڪا شيءِ ان ۾ 5-10-15 منٽن جي وقفي سان تبديل ٿئي ٿي، ان جو مطلب آهي ته اسان وٽ مسئلا آهن (جيڪڏهن اهو بنيادي طور تي تبديل ٿئي ٿو).

    اهو اسان لاءِ ڇا ٿو لڳي اسان جي هڪ بورڊ جو مثال آهي:

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    کاٻي پاسي تي 6 گرافس آھن، ھي لڪير جي مطابق آھي - ڪارڪنن جو تعداد ۽ قطار ۾ پيغامن جو تعداد. ساڄي پاسي - RPS، RTS. هيٺ ڏنل ساڳيو "ڪاروبار" ميٽرڪ آهي. ۽ "ڪاروبار" ميٽرڪ ۾ اسان فوري طور تي ڏسي سگهون ٿا ته ڪجهه غلط ٿي ويو ٻن وچين گرافس ۾ ... اهو صرف هڪ ٻيو سسٽم آهي جيڪو اسان جي پويان بيٺو آهي جيڪو گر ٿي چڪو آهي.

    ٻيو ڪم جيڪو اسان کي ڪرڻو هو اهو هو ٻاهرين ادائيگي جي نظام جي زوال جي نگراني ڪرڻ. هتي اسان OpenTracing ورتو آهي - هڪ ميکانيزم، معياري، مثال جيڪو توهان کي ورهايل سسٽم کي ڳولڻ جي اجازت ڏئي ٿو. ۽ ان کي ٿورو تبديل ڪيو ويو. معياري OpenTracing paradigm چوي ٿو ته اسان هر فرد جي درخواست لاء هڪ سراغ ٺاهيندا آهيون. اسان کي ان جي ضرورت نه هئي، ۽ اسان ان کي هڪ خلاصو، مجموعي طور تي لڪايو. اسان ھڪڙو اوزار ٺاھيو آھي جيڪو اسان کي اسان جي پويان سسٽم جي رفتار کي ٽريڪ ڪرڻ جي اجازت ڏئي ٿو.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    گراف اسان کي ڏيکاري ٿو ته ادائگي جي سسٽم مان هڪ 3 سيڪنڊن ۾ جواب ڏيڻ شروع ڪيو - اسان وٽ مسئلا آهن. ان کان علاوه، هي شيء رد عمل ڪندو جڏهن مسئلا شروع ٿيندي، 20-30 سيڪنڊن جي وقفي تي.

    ۽ مانيٽرنگ جي غلطين جو ٽيون طبقو موجود آهي منطقي نگراني.

    ايماندار ٿيڻ لاءِ، مون کي خبر نه هئي ته هن سلائڊ تي ڇا ڪڍڻو آهي، ڇو ته اسان مارڪيٽ ۾ گهڻي وقت کان اهڙي شيءِ ڳولي رهيا هئاسين جيڪا اسان لاءِ مناسب هجي. اسان کي ڪجھ به نه مليو، تنهنڪري اسان کي پاڻ کي ڪرڻو پيو.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    مون کي منطقي نگراني مان ڇا مطلب آهي؟ چڱو، تصور ڪريو: توهان پنهنجو پاڻ کي هڪ سسٽم ٺاهيو (مثال طور، هڪ ٽينڊر ڪلون)؛ توهان ان کي ٺاهيو، ان کي شروع ڪيو. ڪامياب مئنيجر Vasya Pupkin ان کي پنهنجي فون تي رکي، اتي هڪ ڇوڪري کي ڏسي ٿو، هن کي پسند ڪري ٿو ... ۽ پسند ڇوڪري ڏانهن نه ٿو وڃي - جهڙوڪ ساڳئي ڪاروباري مرڪز کان سيڪيورٽي گارڊ ميخائلچ ڏانهن وڃي ٿو. مئنيجر هيٺ لهي ٿو، ۽ پوءِ حيران ٿي ٿو: ”هي سيڪيورٽي گارڊ ميخائليچ هن تي ايترو خوش ڇو ٿو مسڪرائي؟

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

    اهو مسئلو ڪيئن جلدي سڃاڻڻ جي باري ۾ هو.

    ڪيئن مقرر ڪرڻ جي سببن جو تعين ڪرڻ لاء

    مسئلن جو ٽيون گروپ جيڪو اسان حل ڪريون ٿا اهو آهي اسان مسئلي جي نشاندهي ڪرڻ کان پوءِ، ان کان نجات حاصل ڪرڻ کان پوءِ، بهتر ٿيندو ته ترقيءَ جي سبب کي سمجهڻ، جاچ لاءِ، ۽ ان بابت ڪجهه ڪيو وڃي. ان مطابق، اسان کي تحقيق ڪرڻ جي ضرورت آهي، اسان کي لاگ ان کي وڌائڻ جي ضرورت آهي.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    جيڪڏهن اسان لاگز بابت ڳالهائي رهيا آهيون (بنيادي سبب لاگز آهي)، اسان جي لاگن جو وڏو حصو ELK اسٽيڪ ۾ آهي - تقريبن هرڪو ساڳيو آهي. ڪجھ لاءِ، اھو شايد ELK ۾ نه ھجي، پر جيڪڏھن توھان لاگ لکندا gigabytes ۾، پوءِ جلد يا بعد ۾ توھان ELK ڏانھن ايندا. اسان انهن کي ٽيرا بائيٽ ۾ لکون ٿا.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

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

    اسان اهو سوچيو هڪ سال اڳ، اسان جو ڌيان مارڪيٽ ڏانهن ڦيرايو، ۽ اتي ٻه اوزار هئا - "Zipkin" ۽ "Jaeger". ”جاگر“ دراصل هڪ اهڙو نظرياتي وارث آهي، جيڪو ”زپڪن“ جو نظرياتي جانشين آهي. Zipkin ۾ سڀ ڪجهه سٺو آهي، سواء ان جي ته اهو نه ڄاڻندو آهي ته ڪيئن گڏ ڪجي، اهو نه ڄاڻندو آهي ته ڪيئن لاگ ان کي شامل ڪرڻ جو طريقو، صرف وقت جو نشان. ۽ "جاگر" هن جي حمايت ڪئي.

    اسان ڏٺو ”جيجر“: توهان ايپليڪيشنن جو اوزار ٺاهي سگهو ٿا، توهان ايپي ۾ لکي سگهو ٿا (انهي وقت PHP لاءِ Api معيار، جيتوڻيڪ، منظور نه ڪيو ويو هو - اهو هڪ سال اڳ هو، پر هاڻي اهو اڳ ۾ ئي منظور ڪيو ويو آهي)، پر اتي. بلڪل ڪو به گراهڪ نه هو. ”ٺيڪ آهي،“ اسان سوچيو، ۽ پنهنجو ڪلائنٽ لکيو. اسان کي ڇا مليو؟ اهو تقريبن اهو آهي جيڪو اهو ڏسڻ جهڙو آهي:

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    Jaeger ۾، اسپين هر پيغام لاء ٺاهيا ويا آهن. اهو آهي، جڏهن هڪ صارف سسٽم کوليندو آهي، هو هر ايندڙ درخواست لاء هڪ يا ٻه بلاڪ ڏسي ٿو (1-2-3 - صارف کان ايندڙ درخواستن جو تعداد، بلاڪ جو تعداد). استعمال ڪندڙن لاءِ آسان بڻائڻ لاءِ، اسان لاگز ۽ ٽائم ٽريس ۾ ٽيگ شامل ڪيا. ان جي مطابق، غلطي جي صورت ۾، اسان جي ايپليڪيشن لاگ کي مناسب غلطي جي ٽيگ سان نشان لڳندي. توھان فلٽر ڪري سگھوٿا ايرر ٽيگ ۽ صرف اسپن جيڪي ھن بلاڪ تي مشتمل آھن نقص سان ڏيکاريا ويندا. اھو اھو آھي جيڪو ڏسڻ ۾ اچي ٿو جيڪڏھن اسين مدت کي وڌايون:

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    اندر اندر نشانن جو هڪ سيٽ آهي. هن حالت ۾، اهي ٽي ٽيسٽ جا نشان آهن، ۽ ٽيون نشان اسان کي ٻڌائي ٿو ته هڪ غلطي ٿي وئي آهي. ساڳئي وقت، هتي اسان هڪ وقت جو نشان ڏسون ٿا: اسان وٽ مٿي تي هڪ ٽائيم اسڪيل آهي، ۽ اسان ڏسون ٿا ته ڪهڙي وقت جي وقفي تي اهو يا اهو لاگ رڪارڊ ڪيو ويو.

    ان مطابق، شيون اسان لاء سٺو ٿي ويا. اسان پنهنجو واڌارو لکيو ۽ اسان ان کي اوپن سورس ڪيو. جيڪڏهن توهان ٽريڪنگ سان ڪم ڪرڻ چاهيو ٿا، جيڪڏهن توهان پي ايڇ پي ۾ ”جيجر“ سان ڪم ڪرڻ چاهيو ٿا، اتي اسان جي توسيع آهي، استعمال ڪرڻ ۾ ڀليڪار، جيئن اهي چون ٿا:

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    اسان وٽ ھي ايڪسٽينشن آھي - اھو ھڪڙو ڪلائنٽ آھي OpenTracing Api لاءِ، اھو ٺاھيو ويو آھي php-extention، اھو آھي، توھان کي ان کي گڏ ڪرڻ ۽ ان کي سسٽم تي انسٽال ڪرڻو پوندو. هڪ سال اڳ، اتي ڪجھ به مختلف نه هو. هاڻي ٻيا گراهڪ آهن جيڪي اجزاء وانگر آهن. هتي اهو توهان تي آهي: يا ته توهان هڪ موسيقار سان اجزاء کي پمپ ڪريو، يا توهان استعمال ڪريو واڌارو توهان تائين.

    ڪارپوريٽ معيار

    اسان ٽنهي حڪمن بابت ڳالهايو. چوٿون حڪم معيار کي معياري ڪرڻ آهي. هي ڇا جي باري ۾ آهي؟ اهو هن بابت آهي:

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    هتي لفظ ”ڪارپوريٽ“ ڇو آهي؟ نه ته اسان هڪ وڏي يا بيوروڪريسي ڪمپني آهي، نه! مان هتي لفظ ”ڪارپوريٽ“ استعمال ڪرڻ چاهيان ٿو ان حوالي سان ته هر ڪمپني، هر پراڊڪٽ جا پنهنجا معيار هجن، بشمول توهان. اسان وٽ ڪهڙا معيار آهن؟

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    • اسان وٽ مقرري جا ضابطا آهن. اسان هن کان سواء ڪٿي به منتقل نه آهيون، اسان نٿا ڪري سگهون. اسان هفتي ۾ تقريباً 60 ڀيرا مقرر ڪريون ٿا، اهو آهي، اسان تقريباً مسلسل تعينات ڪندا آهيون. ساڳئي وقت، اسان وٽ آهي، مثال طور، مقرري جي ضابطن ۾ جمعه تي تعیناتي تي هڪ ممنوع آهي - اصول ۾، اسان مقرر نه ڪندا آهيون.
    • اسان کي دستاويز جي ضرورت آهي. ڪو به نئون جزو پيداوار ۾ نه ٿو اچي جيڪڏهن ان لاءِ ڪو دستاويز نه آهي، جيتوڻيڪ اهو اسان جي RnD ماهرن جي قلم هيٺ پيدا ٿيو آهي. اسان کي انهن کان گهربل هدايتون، هڪ مانيٽرنگ نقشو ۽ هڪ تفصيلي تفصيل (سٺو، جيئن پروگرامر لکي سگهن ٿا) ته هي جزو ڪيئن ڪم ڪري ٿو، ان کي ڪيئن حل ڪجي.
    • اسان مسئلي جو سبب نه حل ڪندا آهيون، پر مسئلو - جيڪو مون اڳ ۾ ئي چيو آهي. اهو اسان لاء ضروري آهي ته صارف کي مسئلن کان بچائڻ لاء.
    • اسان وٽ منظوريون آهن. مثال طور، جيڪڏهن اسان ٻن منٽن اندر ٽريفڪ جو 2٪ وڃائي ڇڏيو ته اسان ان کي ختم ٿيڻ تي غور نه ڪندا آهيون. اهو بنيادي طور تي اسان جي انگن اکرن ۾ شامل ناهي. جيڪڏھن اھو وڌيڪ آھي فيصد جي اصطلاحن ۾ يا عارضي، اسان اڳ ۾ ئي ڳڻيو آھي.
    • ۽ اسان هميشه پوسٽ مارٽم لکندا آهيون. اسان سان جيڪو ڪجهه ٿئي ٿو، ڪنهن به صورتحال ۾ جتي ڪو ماڻهو غير معمولي طور تي پيداوار ۾ ڪم ڪندو آهي، پوسٽ مارٽم ۾ ظاهر ٿيندو. پوسٽ مارٽم هڪ دستاويز آهي جنهن ۾ توهان لکندا آهيو ته توهان سان ڇا ٿيو آهي، تفصيلي وقت، توهان ان کي درست ڪرڻ لاءِ ڇا ڪيو ۽ (اهو هڪ لازمي بلاڪ آهي!) توهان مستقبل ۾ ائين ٿيڻ کان روڪڻ لاءِ ڇا ڪندا. اهو لازمي آهي ۽ ايندڙ تجزيي لاءِ ضروري آهي.

    بند وقت ڇا سمجهيو ويندو آهي؟

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    اهو سڀ ڪجهه ڇا ٿيو؟

    ان جي نتيجي ۾ حقيقت اها آهي ته (اسان کي استحڪام سان ڪجهه مسئلا هئا، اهو يا ته گراهڪن يا اسان کي مناسب نه هو) گذريل 6 مهينن دوران اسان جو استحڪام اشارو 99,97 هو. اسان اهو چئي سگهون ٿا ته اهو تمام گهڻو ناهي. ها، اسان کي ڪوشش ڪرڻ لاء ڪجهه آهي. هن اشاري مان، اڌ آهي استحڪام، جيئن ته هو، اسان جي نه، پر اسان جي ويب ايپليڪيشن فائر وال جو، جيڪو اسان جي سامهون بيٺو آهي ۽ هڪ خدمت جي طور تي استعمال ڪيو ويندو آهي، پر گراهڪ ان جي پرواهه نٿا ڪن.

    اسان رات جو سمهڻ سکيو. آخرڪار! ڇهه مهينا اڳ اسان نه ٿي سگهيا. ۽ نتيجن سان گڏ هن نوٽ تي، مان هڪ نوٽ ڪرڻ چاهيندس. گذريل رات هڪ ائٽمي ري ايڪٽر لاءِ ڪنٽرول سسٽم بابت هڪ شاندار رپورٽ پيش ڪئي وئي. جيڪڏھن ماڻھو جن ھن سسٽم کي لکيو آھي مون کي ٻڌي سگھن ٿا، مھرباني ڪري اھو وساريو جيڪو مون چيو آھي "2٪ بند وقت نه آھي." توھان لاءِ، 2٪ گھٽ وقت آھي، جيتوڻيڪ ٻن منٽن لاءِ!

    اهو ئي سڀ ڪجهه آهي! توهان جا سوال.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    بيلنسرز ۽ ڊيٽابيس لڏپلاڻ بابت

    سامعين کان سوال (هتي - ب): - شام جو سلام. اهڙي اداري جي رپورٽ لاءِ توهان جي وڏي مهرباني! توهان جي بيلنس جي باري ۾ هڪ مختصر سوال. توھان ذڪر ڪيو آھي توھان وٽ ھڪڙو WAF آھي، اھو آھي، جيئن مان سمجھان ٿو، توھان ڪجھ قسم جو خارجي بيلنس استعمال ڪريو ٿا ...

    EK: - نه، اسان اسان جي خدمتن کي بيلنس طور استعمال ڪندا آهيون. انهي صورت ۾، WAF خاص طور تي اسان لاء هڪ DDoS تحفظ وارو اوزار آهي.

    ۾: - ڇا توهان بيلنسرز بابت ڪجهه لفظ چئي سگهو ٿا؟

    EK: - جيئن ته مون اڳ ۾ ئي چيو آهي، هي سرورز جو هڪ گروپ آهي Openresty ۾. اسان وٽ ھاڻي 5 رزرو گروپ آھن جيڪي خاص طور تي جواب ڏين ٿا... يعني ھڪڙو سرور جيڪو خاص طور تي کليل ھلندو آھي، اھو صرف ٽريفڪ کي پراڪس ڪري ٿو. ان مطابق، سمجھڻ لاءِ ته اسان ڪيترو رکون ٿا: ھاڻي اسان وٽ ڪيترائي سؤ ميگا بائيٽ جو باقاعده ٽريفڪ وهڪري آھي. اهي منهن ڏين ٿا، اهي سٺو محسوس ڪن ٿا، اهي پاڻ کي تنگ نه ڪندا آهن.

    ۾: - پڻ هڪ سادي سوال. هتي نيرو / سائي جي ترتيب آهي. توهان ڇا ڪندا آهيو، مثال طور، ڊيٽابيس لڏپلاڻ سان؟

    EK: - سٺو سوال! ڏسو، نيري/سائي جي ترتيب ۾ اسان وٽ هر لڪير لاءِ الڳ قطارون آهن. اهو آهي، جيڪڏهن اسان واقعي جي قطار بابت ڳالهائي رهيا آهيون جيڪي ڪم ڪندڙ کان ڪم ڪندڙ ڏانهن منتقل ڪيا ويا آهن، نيري لائن ۽ گرين لائين لاء الڳ قطار آهن. جيڪڏهن اسان پاڻ ڊيٽابيس جي باري ۾ ڳالهائي رهيا آهيون، ته پوء اسان ڄاڻي واڻي ان کي گهٽ ڪري سگهون ٿا جيترو اسان ڪري سگهون ٿا، هر شيء کي عملي طور تي قطار ۾ منتقل ڪيو؛ ڊيٽابيس ۾ اسان صرف ٽرانزيڪشن جي اسٽيڪ کي ذخيرو ڪندا آهيون. ۽ اسان جو ٽرانزيڪشن اسٽيڪ سڀني لائينن لاءِ ساڳيو آهي. هن سلسلي ۾ ڊيٽابيس سان: اسان ان کي نيري ۽ سائي ۾ ورهائي نه ٿا سگهون، ڇاڪاڻ ته ڪوڊ جي ٻنهي نسخن کي ڄاڻڻ گهرجي ته ٽرانزيڪشن سان ڇا ٿي رهيو آهي.

    دوستو، مون وٽ پڻ ٿورڙو انعام آهي توهان جي حوصلا افزائي لاءِ - هڪ ڪتاب. ۽ مون کي ان کي انعام ڏنو وڃي بهترين سوال لاء.

    ۾: - سلام. رپورٽ لاءِ مهرباني. سوال هي آهي. توهان ادائگي جي نگراني ڪندا آهيو، توهان انهن خدمتن جي نگراني ڪندا آهيو جن سان توهان گفتگو ڪندا آهيو ... پر توهان ڪيئن نگراني ڪندا آهيو ته هڪ شخص ڪنهن طرح توهان جي ادائگي واري صفحي تي اچي، هڪ ادائيگي ڪئي، ۽ پروجيڪٽ کيس پئسا سان گڏ ڪيو؟ اهو آهي، توهان ڪيئن نگراني ڪندا آهيو ته مارچنٽ موجود آهي ۽ توهان جي ڪال بيڪ قبول ڪئي آهي؟

    EK: - هن معاملي ۾ اسان لاء "مرچنٽ" بلڪل ساڳي ئي خارجي خدمت آهي جيئن ادائگي جي سسٽم. اسان واپار جي جواب جي رفتار جي نگراني ڪندا آهيون.

    ڊيٽابيس انڪرپشن بابت

    ۾: - سلام. مون وٽ ھڪڙو ٿورڙو لاڳاپيل سوال آھي. توھان وٽ آھي PCI DSS حساس ڊيٽا. مان ڄاڻڻ چاهيان ٿو ته توهان PAN کي قطار ۾ ڪيئن ذخيرو ڪندا آهيو جنهن ۾ توهان کي منتقل ڪرڻ جي ضرورت آهي؟ ڇا توهان ڪنهن به انڪرپشن استعمال ڪندا آهيو؟ ۽ هي ٻئي سوال ڏانهن وٺي ٿو: PCI DSS جي مطابق، اهو ضروري آهي ته وقتي طور تي ڊيٽابيس کي ٻيهر انڪرپٽ ڪرڻ لاء تبديلين جي صورت ۾ (منتظمين جي برطرفي، وغيره) - هن صورت ۾ رسائي کي ڇا ٿيندو؟

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    EK: - عجيب سوال! پهرين، اسان قطار ۾ PAN محفوظ نه ڪندا آهيون. اصولي طور تي، اسان کي PAN ڪٿي به واضح شڪل ۾ ذخيرو ڪرڻ جو حق نه آهي، تنهنڪري اسان هڪ خاص خدمت استعمال ڪريون ٿا (اسان ان کي ”ڪيڊيمون“ سڏين ٿا) - اها هڪ خدمت آهي جيڪا صرف هڪ ڪم ڪري ٿي: اها ان پٽ جي طور تي پيغام وصول ڪري ٿي ۽ موڪلي ٿي. هڪ انڪوڊ ٿيل پيغام ڪڍيو. ۽ اسان هر شي کي هن انڪرپٽ ٿيل پيغام سان گڏ رکون ٿا. ان جي مطابق، اسان جي مکيه ڊيگهه هڪ ڪلو بائيٽ کان گهٽ آهي، تنهنڪري اهو سنجيده ۽ قابل اعتماد آهي.

    ۾: - ڇا توھان کي ھاڻي 2 ڪلو بائيٽ جي ضرورت آھي؟

    EK: - لڳي ٿو ته ڪالهه ئي 256 هئي... خير، ٻيو ڪٿي؟!

    ان مطابق، هي پهريون آهي. ۽ ٻيو، اهو حل جيڪو موجود آهي، اهو ري-انڪرپشن جي عمل کي سپورٽ ڪري ٿو - اتي ٻه جوڙا آهن ”ڪيڪس“ (ڪيز)، جيڪي ڏين ٿا ”ڊيڪ“ جيڪي انڪرپٽ ڪن ٿا (ڪيز آهن ڪي، ڊيڪ آهن نڪتل ڪنجيون جيڪي انڪرپٽ ڪن ٿيون) . ۽ جيڪڏهن اهو عمل شروع ڪيو ويو آهي (اهو باقاعده ٿئي ٿو، 3 مهينن کان ± ڪجهه تائين)، اسان ڊائون لوڊ ڪريون ٿا هڪ نئون جوڙو "ڪيڪ"، ۽ اسان ڊيٽا کي ٻيهر انڪرپٽ ڪريون ٿا. اسان وٽ الڳ خدمتون آهن جيڪي سڀني ڊيٽا کي ڪڍي ڇڏيندا آهن ۽ ان کي نئين طريقي سان انڪرپٽ ڪندا آهن؛ ڊيٽا کي ان جي سڃاڻپ ڪندڙ جي اڳيان ذخيرو ٿيل آهي جنهن سان اهو انڪوڊ ٿيل آهي. ان جي مطابق، جيئن ئي اسان ڊيٽا کي نئين ڪنجين سان انڪرپٽ ڪندا آهيون، اسان پراڻي چيڪ کي حذف ڪندا آهيون.

    ڪڏهن ڪڏهن ادائگي کي دستي طور تي ڪرڻ جي ضرورت آهي ...

    ۾: - اهو آهي، جيڪڏهن واپسي ڪجهه آپريشن لاءِ اچي وئي آهي، ڇا توهان اڃا تائين ان کي پراڻي چيڪ سان رد ڪندا؟

    EK: - ها.

    ۾: - پوء هڪ وڌيڪ ننڍڙو سوال. جڏهن ڪنهن قسم جي ناڪامي، زوال، يا واقعو ٿئي ٿي، اهو ضروري آهي ته ٽرانزيڪشن ذريعي دستي طور تي زور ڀريو وڃي. اهڙي صورتحال آهي.

    EK: - ها ڪڏهن ڪڏهن.

    ۾: - توهان هي ڊيٽا ڪٿان حاصل ڪندا آهيو؟ يا توهان پاڻ هن اسٽوريج جي سهولت ڏانهن وڃو؟

    EK: - نه، ٺيڪ، يقينا، اسان وٽ ڪجهه قسم جو بيڪ-آفيس سسٽم آهي جيڪو اسان جي مدد لاء هڪ انٽرفيس تي مشتمل آهي. جيڪڏهن اسان نه ٿا ڄاڻون ته ٽرانزيڪشن ڪهڙي حالت ۾ آهي (مثال طور، جيستائين ادائيگي واري نظام وقت ختم ٿيڻ سان جواب نه ڏنو)، اسان کي اڳڀرائي جي خبر ناهي، اهو آهي، اسان صرف مڪمل اعتماد سان حتمي حيثيت کي تفويض ڪريون ٿا. انهي صورت ۾، اسان ٽرانزيڪشن کي دستي پروسيسنگ لاء خاص حيثيت سان تفويض ڪريون ٿا. صبح جو، ٻئي ڏينهن، جيئن ئي سپورٽ کي معلومات ملي ٿي ته اهڙيون ۽ اهڙيون ٽرانزيڪشن ادائگي جي سسٽم ۾ رهنديون آهن، اهي دستي طور تي هن انٽرفيس ۾ پروسيس ڪندا آهن.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    ۾: - مون وٽ ڪجھ سوال آھن. انهن مان هڪ PCI DSS زون جو تسلسل آهي: توهان انهن جي سرڪٽ کي ڪيئن لاگ ان ڪندا آهيو؟ اهو سوال آهي ڇو ته ڊولپر لاگن ۾ ڪجهه به رکي سگهي ٿو! ٻيو سوال: توهان گرم فڪسس کي ڪيئن ڪڍو ٿا؟ ڊيٽابيس ۾ هينڊلز هڪ اختيار آهي، پر اتي ٿي سگهي ٿو مفت گرم-فيڪس - اتي ڪهڙو طريقو آهي؟ ۽ ٽيون سوال شايد RTO، RPO سان لاڳاپيل آهي. توهان جي دستيابي 99,97 هئي، تقريبن چار نوان، پر جيئن مان سمجهان ٿو، توهان وٽ هڪ ٻيو ڊيٽا سينٽر، ٽيون ڊيٽا سينٽر، ۽ پنجون ڊيٽا سينٽر آهي... توهان انهن کي ڪيئن هم وقت سازي ڪندا، انهن کي نقل ڪيو، ۽ ٻيو سڀ ڪجهه؟

    EK: - اچو ته پهرين سان شروع ڪريون. لاگن بابت پهريون سوال هو؟ جڏهن اسان لاگ لکندا آهيون، اسان وٽ هڪ پرت هوندي آهي جيڪا سڀني حساس ڊيٽا کي ڇڪيندي آهي. هوءَ ماسڪ ۽ اضافي شعبن تي نظر اچي ٿي. ان جي مطابق، اسان جا لاگ اڳ ۾ ئي ماسڪ ٿيل ڊيٽا ۽ هڪ PCI DSS سرڪٽ سان نڪرندا آهن. ھي ھڪڙي باقاعده ڪمن مان آھي جيڪو امتحان واري کاتي کي مقرر ڪيو ويو آھي. انهن کي هر ڪم جي جانچ ڪرڻ جي ضرورت آهي، جنهن ۾ لاگ ان شامل آهن جيڪي اهي لکندا آهن، ۽ اهو ڪوڊ جي جائزي دوران باقاعده ڪمن مان هڪ آهي، انهي کي ڪنٽرول ڪرڻ لاء ته ڊولپر ڪجهه نه لکيو آهي. ان کان پوءِ انفارميشن سيڪيورٽي ڊپارٽمينٽ پاران باقاعده طور تي هفتي ۾ هڪ ڀيرو چيڪ ڪيا ويندا آهن: آخري ڏينهن لاءِ لاگ چونڊيا ويندا آهن ۽ اهي ٽيسٽ سرورز کان هڪ خاص اسڪينر-تجزيه ڪندڙ ذريعي هلايا ويندا آهن هر شي کي جانچڻ لاءِ.
    گرم-فيڪس بابت. اهو اسان جي مقرري جي ضابطن ۾ شامل آهي. اسان وٽ hotfixes بابت هڪ الڳ شق آهي. اسان يقين رکون ٿا ته اسان ڪلاڪ جي چوڌاري گرم فڪسس کي ترتيب ڏيون ٿا جڏهن اسان کي ضرورت هجي. جيئن ئي نسخو گڏ ڪيو ويندو آهي، جيترو جلدي اهو هلندو آهي، جيئن ئي اسان وٽ هڪ نمونو آهي، اسان وٽ هڪ سسٽم ايڊمنسٽريٽر آهي جيڪو ڊيوٽي تي آهي سپورٽ کان ڪال تي، ۽ هو ان وقت ان کي ترتيب ڏئي ٿو جڏهن اهو ضروري آهي.

    اٽڪل "چار نين". اهو انگ جيڪو اسان وٽ آهي اهو واقعي حاصل ڪيو ويو آهي، ۽ اسان ان لاء هڪ ٻئي ڊيٽا سينٽر ۾ ڪوشش ڪئي. ھاڻي اسان وٽ ھڪڙو ٻيو ڊيٽا سينٽر آھي، ۽ اسان انھن جي وچ ۾ رستو شروع ڪري رھيا آھيون، ۽ ڪراس ڊيٽا سينٽر جي نقل جو مسئلو واقعي ھڪڙو غير معمولي سوال آھي. اسان ان کي حل ڪرڻ جي ڪوشش ڪئي هڪ وقت ۾ مختلف طريقن سان: اسان ساڳيو استعمال ڪرڻ جي ڪوشش ڪئي "Tarantula" - اهو اسان لاء ڪم نه ڪيو، مان توهان کي فوري طور تي ٻڌايان ٿو. ان ڪري اسان ”حساس“ کي دستي طور ترتيب ڏيڻ ختم ڪيو. حقيقت ۾، اسان جي سسٽم ۾ هر ايپليڪيشن ضروري "تبديلي - ٿي چڪو آهي" ڊيٽا سينٽرن جي وچ ۾ هم وقت سازي سان هلندي آهي.

    ۾: - جيڪڏهن توهان کي هڪ ٻيو مليو، توهان کي ٽيون ڇو نه مليو؟ ڇاڪاڻ ته اڃا تائين ڪنهن جو دماغ ورهايل ناهي...

    EK: - پر اسان وٽ ورهايل دماغ نه آهي. انهي حقيقت جي ڪري ته هر ايپليڪيشن هڪ ملٽي ماسٽر طرفان هلائي وئي آهي، اهو اسان کي فرق نٿو پوي ته درخواست ڪهڙي مرڪز تي آئي. اسان ان حقيقت لاءِ تيار آهيون ته جيڪڏهن اسان جو هڪ ڊيٽا سينٽر ناڪام ٿئي ٿو (اسان ان تي ڀروسو ڪريون ٿا) ۽ صارف جي درخواست جي وچ ۾ ٻئي ڊيٽا سينٽر ڏانهن رخ ڪري ٿو، اسان هن صارف کي وڃائڻ لاءِ تيار آهيون، حقيقت ۾؛ پر اهي يونٽ هوندا، مطلق يونٽ.

    ۾: - شام جو سلام. رپورٽ لاءِ مهرباني. توهان پنهنجي ڊيبگر بابت ڳالهايو، جيڪو پيداوار ۾ ڪجهه ٽيسٽ ٽرانزيڪشن هلندو آهي. پر اسان کي ٽيسٽ ٽرانزيڪشن بابت ٻڌايو! ڪيتري اونهائي وڃي ٿي؟

    EK: - اهو سڄو جزو جي مڪمل چڪر ذريعي وڃي ٿو. هڪ جزو لاء، ٽيسٽ ٽرانزيڪشن ۽ پيداوار جي ٽرانزيڪشن جي وچ ۾ ڪوبه فرق ناهي. پر هڪ منطقي نقطي نظر کان، اهو صرف سسٽم ۾ هڪ الڳ منصوبو آهي، جنهن تي صرف ٽيسٽ ٽرانزيڪشن هلائي رهيا آهن.

    ۾: - توهان ان کي ڪٿي ڪٽيندا آهيو؟ هتي ڪور موڪليو ويو ...

    EK: - اسان هن معاملي ۾ "ڪور" جي پويان آهيون ٽيسٽ ٽرانزيڪشن لاءِ... اسان وٽ اهڙي شيءِ آهي جيئن روٽنگ: "ڪور" ڄاڻي ٿو ته ڪهڙي ادائيگي واري نظام کي موڪلڻو آهي - اسان هڪ جعلي ادائيگي واري نظام ڏانهن موڪليندا آهيون، جيڪو صرف هڪ HTTP سگنل ڏئي ٿو ۽ اهو ئي سڀ ڪجهه آهي.

    ۾: - مون کي ٻڌايو، مھرباني ڪري، ڇا توھان جي درخواست ھڪڙي وڏي اھميت ۾ لکيل آھي، يا توھان ان کي ڪجھ خدمتن ۾ يا اڃا به مائڪرو سروسز ۾ ڪٽيو؟

    EK: - اسان وٽ هڪ واحد نه آهي، يقينا، اسان وٽ هڪ خدمت تي مبني ايپليڪيشن آهي. اسان مذاق ڪريون ٿا ته اسان جي خدمت monoliths مان ٺهيل آهي - اهي واقعي تمام وڏا آهن. ان کي مائڪرو سروسز سڏڻ مشڪل آهي، پر اهي خدمتون آهن جن ۾ ورهايل مشينن جا ڪم ڪندڙ ڪم ڪن ٿا.

    جيڪڏهن سرور تي خدمت سمجهوتو آهي ...

    ۾: - پوء مون وٽ ايندڙ سوال آهي. جيتوڻيڪ اهو هڪ واحد هو، توهان اڃا به چيو آهي ته توهان وٽ انهن مان ڪيترائي فوري سرور آهن، اهي سڀئي بنيادي طور تي ڊيٽا کي پروسيس ڪندا آهن، ۽ سوال اهو آهي ته: "انسٽنٽ سرورز يا ايپليڪيشن مان هڪ سمجهوتو جي صورت ۾، ڪنهن به انفرادي لنڪ. ڇا انهن وٽ ڪنهن قسم جي رسائي ڪنٽرول آهي؟ انهن مان ڪير ڇا ڪري سگهي ٿو؟ مون کي ڪهڙي معلومات لاءِ ڪير رابطو ڪرڻ گهرجي؟

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    EK: - ها بلڪل. سيڪيورٽي گهرجون ڪافي سنجيده آهن. پهرين، اسان وٽ کليل ڊيٽا تحريڪون آهن، ۽ بندرگاهن صرف اهي آهن جن جي ذريعي اسان اڳ ۾ ئي ٽرئفڪ جي حرڪت جو اندازو لڳايو آهي. جيڪڏهن ڪو جزو ڊيٽابيس سان 5-4-3-2 ذريعي رابطو ڪري ٿو (چئو، مسڪول سان)، صرف 5-4-3-2 ان لاءِ کليل هوندو، ۽ ٻيا بندرگاهن ۽ ٻيون ٽرئفڪ جون هدايتون دستياب نه هونديون. اضافي طور تي، توهان کي سمجهڻ جي ضرورت آهي ته اسان جي پيداوار ۾ اٽڪل 10 مختلف سيڪيورٽي لوپس آهن. ۽ جيتوڻيڪ ايپليڪيشن کي ڪنهن به طرح سمجھوتو ڪيو ويو، خدا نه ڪري، حملو ڪندڙ سرور مينيجمينٽ ڪنسول تائين رسائي نه ڪري سگھندا، ڇاڪاڻ ته هي هڪ مختلف نيٽورڪ سيڪيورٽي زون آهي.

    ۾: - ۽ ان حوالي سان، جيڪا ڳالهه مون لاءِ وڌيڪ دلچسپ آهي، سا اها آهي ته توهان وٽ خدمتن سان ڪي خاص معاهدا آهن- اهي ڇا ڪري سگهن ٿا، ڪهڙن ”عملن“ ذريعي اهي هڪ ٻئي سان رابطو ڪري سگهن ٿا... ۽ هڪ عام وهڪري ۾، ڪجهه مخصوص خدمتن جي درخواست ڪن ٿا. قطار، ٻئي تي "عملن" جي هڪ فهرست. اهي عام حالت ۾ ٻين ڏانهن رخ نه ٿا ڪن، ۽ انهن جي ذميواري جا ٻيا علائقا آهن. جيڪڏهن انهن مان هڪ سمجهوتو ڪيو ويو آهي، ڇا اهو ان خدمت جي "عملن" کي ٽوڙڻ جي قابل هوندو؟ ...

    EK: - مان سمجهان ٿو. جيڪڏهن هڪ عام صورتحال ۾ ٻئي سرور سان رابطي جي اجازت ڏني وئي هئي، پوء ها. SLA معاهدي جي مطابق، اسان مانيٽر نه ڪندا آهيون ته توهان کي صرف پهرين 3 "عملن" جي اجازت ڏني وئي آهي، ۽ توهان کي 4 "عملن" جي اجازت ناهي. اهو شايد اسان لاءِ بيڪار آهي، ڇاڪاڻ ته اسان وٽ اڳ ۾ ئي 4-سطح جي حفاظتي نظام آهي، اصول ۾، سرڪٽ لاءِ. اسان پنهنجو دفاع ڪرڻ کي ترجيح ڏيون ٿا شڪلين سان، بلڪه اندر جي سطح تي.

    ڪيئن ويزا، ماسٽر ڪارڊ ۽ Sberbank ڪم

    ۾: - مان هڪ نقطي کي واضح ڪرڻ چاهيان ٿو هڪ صارف کي هڪ ڊيٽا سينٽر کان ٻئي ڏانهن تبديل ڪرڻ بابت. جيتري قدر مون کي خبر آهي، ويزا ۽ ماسٽر ڪارڊ 8583 بائنري هم وقت سازي پروٽوڪول کي استعمال ڪندي هلن ٿا، ۽ اتي موجود آهن. ۽ مان ڄاڻڻ چاهيان ٿو، هاڻي اسان جو مطلب آهي سوئچنگ - ڇا اهو سڌو "ويزا" ۽ "ماسٽر ڪارڊ" آهي يا ادائگي جي سسٽم کان اڳ، پروسيسنگ کان اڳ؟

    EK: - هي ميلاپ کان اڳ آهي. اسان جا ميلا ساڳيا ڊيٽا سينٽر ۾ واقع آهن.

    ۾: - تقريبن ڳالهائڻ، ڇا توهان وٽ هڪ ڪنيڪشن پوائنٽ آهي؟

    EK: - "ويزا" ۽ "ماسٽر ڪارڊ" - ها. بس ان ڪري ته ويزا ۽ ماسٽر ڪارڊ کي بنيادي ڍانچي ۾ ڪافي سنجيده سيڙپڪاري جي ضرورت آهي ته جيئن ٻيو جوڙو ملائڻ لاءِ الڳ معاهدا ڪن، مثال طور. اهي هڪ ڊيٽا سينٽر جي اندر محفوظ آهن، پر جيڪڏهن، خدا نه ڪري، اسان جو ڊيٽا سينٽر، جتي ويزا ۽ ماسٽر ڪارڊ سان ڳنڍڻ لاء ميلاپ آهن، پوء اسان جو ويزا ۽ ماسٽر ڪارڊ سان رابطو ختم ٿي ويندو ...

    ۾: - انهن کي ڪيئن محفوظ ڪري سگهجي ٿو؟ مون کي خبر آهي ته ويزا اصول ۾ صرف هڪ ڪنيڪشن جي اجازت ڏئي ٿو!

    EK: - اهي پاڻ سامان فراهم ڪن ٿا. ڪنهن به صورت ۾، اسان کي سامان ملي ٿو جيڪو مڪمل طور تي بيڪار آهي اندر.

    ۾: - پوءِ اسٽينڊ انهن جي ڪنيڪٽس اورنج مان آهي؟ ..

    EK: - ها.

    ۾: - پر هن معاملي بابت ڇا: جيڪڏهن توهان جو ڊيٽا سينٽر غائب ٿي وڃي، توهان ڪيئن ان کي استعمال ڪرڻ جاري رکي سگهو ٿا؟ يا ٽريفڪ صرف بند ڪري ٿو؟

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

    جيڪڏهن مون Sberbank جي ملازمن کي ناراض ڪيو آهي ته مان بيحد معافي وٺان ٿو. پر اسان جي انگن اکرن موجب، روسي بينڪن مان، Sberbank اڪثر ڪري ٿو. Sberbank ۾ ڪا شيءِ بند ٿيڻ کان سواءِ هڪ مهينو نه گذري ٿو.

    HighLoad++، Evgeniy Kuzovlev (EcommPay IT): ڇا ڪجي جڏهن هڪ منٽ جي گھٽتائي جي قيمت $100000 هجي

    ڪجھ اشتهار 🙂

    اسان سان گڏ رهڻ لاء توهان جي مهرباني. ڇا توهان اسان جا مضمون پسند ڪندا آهيو؟ وڌيڪ دلچسپ مواد ڏسڻ چاهيو ٿا؟ آرڊر ڏيڻ يا دوستن کي سفارش ڪندي اسان جي مدد ڪريو، ڪلائوڊ 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

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