مرحبا يا هبر!
في عام 2017 ، خلال يوم الجمعة الأسود ، زاد الحمل مرة ونصف تقريبًا ، وكانت خوادمنا في حدود الاحتمالات. على مدار العام ، زاد عدد العملاء بشكل كبير ، وأصبح من الواضح أنه بدون تحضير أولي شامل ، قد لا تتحمل المنصة ببساطة أحمال 2018.
تم تحديد الهدف الأكثر طموحًا من كل ما هو ممكن: لقد أردنا أن نكون مستعدين تمامًا لأي ، حتى أقوى ، رشقات النشاط وبدأنا في سحب قدرات جديدة مسبقًا خلال العام.
يخبرنا CTO Andrei Chizh (
chizh_andrey ) كيف كنا نستعد ليوم الجمعة الأسود 2018 ، وما هي التدابير التي اتخذناها لتجنب السقوط ، وبالطبع نتائج هذا الإعداد الدقيق.

أريد أن أتحدث اليوم عن الاستعدادات لـ Black Friday 2018. لماذا الآن ، عندما تتأخر معظم المبيعات الرئيسية؟ لقد بدأنا الاستعداد قبل حوالي عام من الأحداث الواسعة النطاق ، ومن خلال التجربة والخطأ وجدنا الحل الأمثل. نوصيك بالعناية بالمواسم الحارة مقدمًا ومنع حدوث fakaps التي قد تظهر في أكثر اللحظات غير المناسبة.
ستكون هذه المادة مفيدة لكل من يريد الضغط على أقصى ربح من هذه الأسهم ، مثل الجانب الفني للقضية ليس أقل شأنا من التسويق.
ميزات حركة المرور على مبيعات كبيرة
خلافًا للاعتقاد السائد ، فإن يوم الجمعة الأسود ليس يومًا واحدًا فقط في السنة ، ولكنه يستغرق أسبوعًا تقريبًا: تصل عروض الخصم الأولى قبل 7 إلى 8 أيام من البيع. تبدأ حركة مرور مواقع الويب في النمو بسلاسة طوال الأسبوع ، وتصل إلى ذروتها يوم الجمعة وتنخفض بشكل حاد يوم السبت إلى مؤشرات المتجر العادية.

من المهم مراعاة ذلك: تصبح المتاجر عبر الإنترنت حساسة بشكل خاص لأي "تباطؤ" في النظام. بالإضافة إلى ذلك ، شهدت نشرة البريد الإلكتروني لدينا زيادة كبيرة في عدد الرسائل.
من المهم استراتيجيا بالنسبة لنا أن تمر يوم الجمعة الأسود دون السقوط ، كما تعتمد أهم وظائف المواقع والقوائم البريدية للمتاجر على تشغيل المنصة ، وهي:
- تتبع وإصدار توصيات المنتج ،
- إصدار المواد ذات الصلة (على سبيل المثال ، كتل تصميم الصور من التوصيات ، مثل الأسهم والشعارات والرموز والعناصر المرئية الأخرى) ،
- إصدار صور المنتج بالحجم الصحيح (لهذا الغرض ، لدينا "ImageResizer" - وهو نظام فرعي يقوم بتنزيل صورة من خادم المتجر ، ويضغطها على الحجم المطلوب ، ومن خلال خوادم التخزين المؤقت ، يوفر صوراً بالحجم المناسب لكل منتج في كل كتلة توصية).
في الواقع ، خلال الحملات السوداء يوم الجمعة 2019 ، زاد الحمل على الخدمة بنسبة 40 ٪ ، أي زاد عدد الأحداث التي يراقبها نظام Retail Rocket ويعالجها على مواقع المتاجر عبر الإنترنت من 5 إلى 8 آلاف طلب في الثانية الواحدة. نظرًا لحقيقة أننا كنا نستعد للأحمال الأكثر خطورة ، فقد شهدنا طفرة كبيرة بسهولة.

الإعداد العام
يوم الجمعة الأسود هو وقت ساخن لجميع متاجر التجزئة والتجارة الإلكترونية على وجه الخصوص. يتزايد عدد المستخدمين ونشاطهم في هذا الوقت في بعض الأحيان ، لذلك ، كما هو الحال دائمًا ، نستعد تمامًا لهذا الوقت المزدحم. نضيف حقيقة أن العديد من المتاجر عبر الإنترنت مرتبطة بنا ، ليس فقط في روسيا ولكن أيضًا في أوروبا ، حيث يكون الضجيج أعلى من ذلك بكثير ، ونحصل على مستوى العواطف أسوأ من السلسلة البرازيلية. ما الذي يجب القيام به للاستعداد الكامل لزيادة الأحمال؟
العمل مع الخوادم
بادئ ذي بدء ، كان من الضروري معرفة ما نفتقده بالضبط لزيادة سعة الخوادم. بالفعل في أغسطس ، بدأنا في طلب خوادم جديدة خاصة بـ Friday Friday - تمت إضافة 10 أجهزة إضافية. بحلول نوفمبر ، كانوا بالفعل في المعركة تماما.
في الوقت نفسه ، تم إعادة تثبيت جزء من آلات الإنشاء لاستخدامها كملقمات تطبيق. لقد أعددناها على الفور لاستخدام وظائف مختلفة: لإصدار التوصيات وخدمة ImageResizer ، بحيث يمكن استخدام كل منها وفقًا لنوع التحميل ، لأحد هذه الأدوار. في الوضع العادي ، تحتوي خوادم التطبيق و ImageResizer على وظائف محددة بوضوح: الأولى منها تشارك في إصدار التوصيات ، والثانية توفر صوراً للرسائل وكتل التوصية على موقع المتاجر على الإنترنت. استعدادًا ليوم الجمعة الأسود ، تقرر إنشاء جميع الخوادم ثنائية الغرض لموازنة حركة المرور بينها وفقًا لنوع التحميل.
ثم أضفنا خادمين كبيرين لكافكا (Apache Kafka) وحصلنا على مجموعة من 5 آلات قوية. لسوء الحظ ، لم يسير كل شيء بسلاسة كما نود: في عملية مزامنة البيانات ، احتل جهازان جديدان العرض الكامل لقناة الشبكة ، وكان علينا أن نتعرف بشكل عاجل على كيفية تنفيذ عملية الإضافة بسرعة وأمان للبنية التحتية بأكملها. لحل هذه المشكلة ، كان على مسؤولينا التضحية ببسالة في عطلة نهاية الأسبوع.
العمل مع البيانات
بالإضافة إلى الخوادم ، قررنا تحسين الملفات لتخفيف التحميل ، وكانت الخطوة الكبيرة بالنسبة لنا هي ترجمة الملفات الثابتة. تم نقل جميع الملفات الثابتة التي تم استضافتها مسبقًا على الخوادم إلى S3 + Cloudfront. لقد أرادوا القيام بذلك لفترة طويلة ، نظرًا لأن التحميل على الخادم كان قريبًا من قيم الحد ، وقد ظهر الآن سبب ممتاز.
قبل أسبوع من يوم الجمعة الأسود ، قمنا بزيادة وقت التخزين المؤقت للصور إلى 3 أيام ، بحيث في حالة حدوث هبوط في ImageResizer ، تم الحصول على الصور المخزنة مؤقتًا مسبقًا من cdn. كما أنه يقلل من التحميل على خوادمنا ، لأنه كلما تم تخزين الصورة ، قلما نحتاج إلى إنفاق الموارد على تغيير حجمها.
وأخيراً وليس آخراً: قبل 5 أيام من يوم الجمعة الأسود ، تم إعلان وقف اختياري لنشر أي وظيفة جديدة ، وأيضًا أي عمل مع البنية التحتية - تم توجيه كل الاهتمام إلى التعامل مع زيادة الأحمال.
خطط الاستجابة لحالات الطوارئ
بغض النظر عن مدى جودة التحضير ، فاكابي ممكن دائمًا. وقمنا بتطوير 3 خطط استجابة للحالات الحرجة المحتملة:
- تخفيض الحمل
- تعطيل بعض الخدمات ،
- الاغلاق الكامل للخدمة.
الخطة أ: تخفيض الحمل. ينبغي أن يكون مشاركًا إذا تجاوزت خوادمنا توقيت استجابة مقبول بسبب زيادة الحمل. في هذه الحالة ، قمنا بإعداد آليات لتقليل الحمل تدريجيًا عن طريق تحويل جزء من حركة المرور إلى خوادم Amazon ، والتي من شأنها ببساطة إعطاء "200 موافق" لجميع الطلبات وإعطاء إجابة فارغة. لقد فهمنا أن هذا يمثل تدهورًا في جودة الخدمة ، ولكن الاختيار بين حقيقة أن الخدمة لا تعمل على الإطلاق أو لا يعرض توصيات لحوالي 10٪ من حركة المرور أمر واضح.
الخطة ب: تعطيل الخدمات. ضمنا تدهور جزئي للخدمة. على سبيل المثال ، تقليل سرعة حساب التوصيات الشخصية من أجل إلغاء تحميل بعض قواعد البيانات وقنوات الاتصال. في الوضع العادي ، يتم حساب التوصيات في الوضع في الوقت الفعلي ، مما يؤدي إلى إنشاء نسخة من المتجر عبر الإنترنت لكل زائر ، ولكن في ظل ظروف الأحمال المتزايدة ، يسمح انخفاض السرعة في استمرار الخدمات الأساسية الأخرى.
الخطة ج: لهرمجدون. في حالة حدوث فشل نظام كامل ، قمنا بإعداد خطة من شأنها أن تفصلنا بأمان عن العملاء. سيتوقف المتسوقون ببساطة عن رؤية التوصيات ؛ ولن يتأثر أداء المتجر على الإنترنت. للقيام بذلك ، سيتعين علينا إعادة تعيين ملف التكامل الخاص بنا حتى يتوقف المستخدمون الجدد عن التفاعل مع الخدمة. وهذا يعني أننا سنقوم بتعطيل عمل شفرة التتبع الرئيسية الخاصة بنا ، وستتوقف الخدمة عن جمع البيانات وحساب التوصيات ، وسيرى المستخدم ببساطة صفحة بدون كتل توصية. بالنسبة إلى جميع الذين تلقوا ملف التكامل سابقًا ، فقد قدمنا خيار تبديل سجلات DNS إلى Amazon و 200 كعب موافق.
النتائج
لقد تعاملنا مع الحمل بأكمله حتى دون الحاجة إلى استخدام آلات بناء إضافية. وبفضل الإعداد المسبق ، لم نكن بحاجة إلى أي من خطط الاستجابة المتقدمة. ولكن كل الأعمال المنجزة هي تجربة لا تقدر بثمن ستساعدنا في مواجهة التدفقات غير المتوقعة والضخمة من حركة المرور.
كما في عام 2017 ، زاد الحمل على الخدمة بنسبة 40 ٪ ، وزاد عدد المستخدمين في المتاجر على الإنترنت ليوم الجمعة الأسود بنسبة 60 ٪. حدثت جميع الصعوبات والأخطاء خلال الفترة التحضيرية ، مما أنقذنا وعملائنا من مواقف غير متوقعة.
كيف تشعر حيال الجمعة السوداء؟ كيف تستعد للأحمال الحرجة؟