Mostafa Nageeb
Mostafa Nageeb

@MostafaNageeb

18 تغريدة 174 قراءة Jul 19, 2021
طيب بمناسبة السيستمز اللى واقعة فى العيد زى فودافون كاش ومكن الATMs اللى بيسحب الفلوس ويقولك مسحبتش ، تعالو أحكيلكو إزاى بيتم التعامل مع البلاك فرايداى فى شركة تجارة الكترونية كبيرة بتبيع هدوم زى زالاندو وليه أنا skeptical لما بشوف اللى بيحصل فى الشركات فى مصر. ثريد.
البلاك فرايداى بيبقى فى نوفمبر. التخطيط بيبدأ من مايو. أول حاجة بتتعمل إن بيبقى في مجموعة عمل ممثل فيها الtech والmarketing والlogistics والجماعة الcommercial اللى بيبقو مسئولين عن كمية البضاعة اللى هتيجى من كل item وانهم يتواصلو مع الشركا عشان تبقى جاهزة عالبلاك فرايداى.
بيبقى فى 3 عناصر أساسية ، الmarketing ناوى يجيب ترافيك قد إيه ، على أساسه الlogistics بيحددو الmaximum capacity للأوردرات اللى يقدرو يوصلوها ومن هنا الtech بيبدأ يخطط هيتعامل ازاى مع الترافيك دة.
أول حاجة بتحصل إن بيتم حصر كل السيستمز اللى اليوزر بيتعامل معاها عشان يوصل إنه يعرف يعمل أوردر. دول اللى بيقال عليهم عال critical path بتاع الأوردر. بمعنى آخر لو واحد منهم وقع الأوردرات هتقف.
على سبيل المثال ، العميل عشان يطلب محتاج يعدى عالسيرش ، وعلى صفحة المنتج ، وعالcart ، وعالسيستم اللى بيحسب الديسكاونت ، وعالسيستم اللى بيحسب العميل دة ممكن يكون fraud ولا لأ (bot مثلا) ، وعالpayment ... إلخ
السيستمز دى لما أنا كنت هناك كانو أكتر من 100 سيستم. بيتم التواصل مع كل التيمز اللى عالcritical path وبيتقالهم السيستمز بتاعتكو لازم تقدر تستحمل كام X الترافيك الحالى. وبيتحدد معاد load test هيتعمل عالبرودكشن (عالموقع الرئيسى اللى بيشوفه العملا) عشان يشوفو أنهو سيستمز فيها مشكلة.
قبل ما الload test يتعمل ، بيتعمل حاجة اسمها instrumentation لل سيستمز دى على حاجة اسمها distributed tracing. ببساطة شديدة بتشوف الأوردرات وهى بتتحرك بين كل سيستم عشان لما يعملو الload test يقدرو يشوفو أنهو سيستم فيه مشكلة.
يوم الload test بيبقى simulation للى هيحصل فى البلاك فرايداى ، بيتبعت ترافيك أكبر من المتوقع وبيشوفو إيه اللى حصل للسيستمز وطبعا كل حاجة باينة فى الmonitoring والdistributed tracing وكل التولز دى.
بعد الload test بيتحدد إيه المشاكل اللى ظهرت وإيه أسبابها وكل تيم بيبقى assigned إنه يحل المشاكل اللى ظهرت فى السيستم بتاعه. وبيتحدد معاد الload test الجاى.
بيتم تكرار العملية دى كذا مرة لحد ما يتأكدو إن كل حاجة جاهزة. قبل أسبوع البلاك فرايداى بكذا أسبوع بيتعمل code freeze. محدش يقدر يعدل أى حاجة فى أى سيستم من غير موافقة من المديرين اللى فوق عشان محدش يعمل حاجة تبوظ حاجة تانية.
الأسبوع اللى قبل أسبوع البلاك فرايداى بيتم عمل scaling up لكل السيستمز عشان يبقو جاهزين للترافيك اللى جاى. سبب الخطوة دى إن فى الأسبوع دة كل الشركات بتعمل upscaling لدرجة إن ممكن أمازون AWS نفسها تقولك مفيش machines anymore. فمينفعش تعمل كدة وسط الايفنت.
أسبوع البلاك فرايداى كله بيبقى فى war room (غيرو اسمها بعد كدة لsituation room عشان فى ناس اعترضت على استعمال مصطلح الحرب). الroom دى بيبقى كلها شاشات بتعرض حالة كل سيستم وفى حد دايما موجود من كل تيم عشان يلحق الدنيا لو حاجة وقعت.
الشيفتات بتبقى 24 ساعة (مدفوعة الأجر طبعا) وبيبقى فى فى كل شيفت حد اسمه incident commander. لو حاجة وقعت هو المسئول إنه يcoordinate الناس لحد ما تتحل ويسجل الملاحظات لإستعمالها بعدين.
يوم البلاك فرايداى نفسه دة بيبقى قمة الترافيك والأوردرات والديسكاونت. الأجواء بتبقى رهيبة وبتشوف فعلا الscale الحقيقى. الناس بتبقى قاعدة كأنه نهائى كاس العالم.
الساعة 11:59 بالليل يوم الجمعة دى بتبقى آخر دقيقة فى الأسبوع وبتبقى قمة الأوردرات. الساعة 12 تيجى الديسكاونتس بتقف والماركتنج بيوقف الدعاية والناس بتبدأ تتنفس.
بتبدأ الاحتفالات ، بس الدنيا لسة مخلصتش. أول حاجة لازم تتعمل إن السيستمز يتعملها downscaling عشان متبقاش بتحرق فلوس عالفاضى. بعد كدة حد بيعمل debrief سريع عادة بيبقى تهنئة للناس وكدة.
بعد ما الدنيا تهدأ بيتم تجميع كل الملاحظات اللى حصلت أثناء الأسبوع للتعلم منها للبلاك فرايداى الجاى. وبيشوفو احنا نجحنا فى توصيل كام أوردر وخلال قد إيه وكام % من الأوردرات اتأخر وليه. فى تفاصيل كتير أوى بس الثريد مش هكفيها.
دة كدة ودى ناس بتبيع هدوم اللى هى مش حاجة critical يعنى ، فلما تلاقى بنوك وسيستمز حياة ناس متوقفة عليها كله خايف يستعملها وبتقع بالشكل دة بيخلينى محبط من أى أمل فى الخدمات دى. وبنرجع نزعل إن الناس بترفض تستعمل الأبليكيشن وبتروح الفرع ونقعد نعيب عليهم! تمت (ممكن أضيف حاجات بعدين).

جاري تحميل الاقتراحات...