كيفية تحمل الأحمال المتزايدة على النظام: نتحدث عن الاستعدادات واسعة النطاق ليوم الجمعة الأسود

يا هبر!

في عام 2017، خلال الجمعة السوداء، زاد التحميل بمقدار مرة ونصف تقريبًا، وكانت خوادمنا عند الحد الأقصى. على مدار العام، زاد عدد العملاء بشكل كبير، وأصبح من الواضح أنه بدون إعداد أولي دقيق، قد لا تتمكن المنصة ببساطة من تحمل أحمال عام 2018.

لقد حددنا الهدف الأكثر طموحًا: أردنا أن نكون مستعدين تمامًا لأي طفرات في النشاط، حتى أقوىها، وبدأنا في إطلاق قدرات جديدة مسبقًا على مدار العام.

مدير التكنولوجيا التنفيذي لدينا أندريه تشيز (chizh_andrey) يحكي كيف استعدنا ليوم الجمعة الأسود 2018، وما هي التدابير التي اتخذناها لتجنب السقوط، وبالطبع نتائج هذا الإعداد الدقيق.

كيفية تحمل الأحمال المتزايدة على النظام: نتحدث عن الاستعدادات واسعة النطاق ليوم الجمعة الأسود

اليوم أريد أن أتحدث عن الاستعدادات للجمعة السوداء 2018. لماذا الآن، بعد أن انتهت معظم التخفيضات الكبرى؟ لقد بدأنا التحضير قبل حوالي عام من الأحداث واسعة النطاق، ومن خلال التجربة والخطأ وجدنا الحل الأمثل. نوصي بالاهتمام بالمواسم الحارة مسبقًا ومنع عمليات الاحتيال التي قد تظهر في أكثر اللحظات غير المناسبة.
ستكون المادة مفيدة لكل من يريد تحقيق أقصى ربح من هذه الأسهم، لأنه الجانب الفني للمسألة ليس أقل شأنا من الجانب التسويقي هنا.

ميزات حركة المرور في المبيعات الكبيرة

خلافًا للاعتقاد الشائع، فإن الجمعة السوداء ليست مجرد يوم واحد في السنة، ولكنها تقريبًا أسبوع كامل: تصل عروض الخصم الأولى قبل 7-8 أيام من البيع. تبدأ حركة المرور على موقع الويب في النمو بسلاسة على مدار الأسبوع، وتصل إلى ذروتها يوم الجمعة وتنخفض بشكل حاد يوم السبت إلى المستويات العادية للمتجر.

كيفية تحمل الأحمال المتزايدة على النظام: نتحدث عن الاستعدادات واسعة النطاق ليوم الجمعة الأسود

من المهم أخذ هذا في الاعتبار: تصبح المتاجر عبر الإنترنت حساسة بشكل خاص لأي "تباطؤ" في النظام. بالإضافة إلى ذلك، شهد خط رسائلنا الإخبارية عبر البريد الإلكتروني أيضًا زيادة كبيرة في عدد المشاركات.

من المهم استراتيجيًا بالنسبة لنا أن نمر بالجمعة السوداء دون حوادث، لأن... تعتمد أهم وظائف المواقع الإلكترونية والنشرات الإخبارية للمتجر على تشغيل المنصة، وهي:

  • تتبع وإصدار توصيات المنتج،
  • إصدار المواد ذات الصلة (على سبيل المثال، صور تصميم كتل التوصيات، مثل الأسهم والشعارات والأيقونات والعناصر المرئية الأخرى)،
  • توفير صور المنتج بالحجم المطلوب (لهذه الأغراض لدينا "ImageResizer" - وهو نظام فرعي يقوم بتنزيل صورة من خادم المتجر، وضغطها إلى الحجم المطلوب، ومن خلال خوادم التخزين المؤقت، ينتج صورًا بالحجم المطلوب لكل منتج في كل كتلة توصية).

في الواقع، خلال الجمعة السوداء 2019، زاد الحمل على الخدمة بنسبة 40٪، أي. ارتفع عدد الأحداث التي يتتبعها نظام Retail Rocket ويعالجها على مواقع المتاجر عبر الإنترنت من 5 إلى 8 آلاف طلب في الثانية. نظرًا لحقيقة أننا كنا نستعد لأحمال أكثر خطورة، فقد نجونا من هذا الارتفاع بسهولة.

كيفية تحمل الأحمال المتزايدة على النظام: نتحدث عن الاستعدادات واسعة النطاق ليوم الجمعة الأسود

التدريب العام

الجمعة السوداء هي فترة مزدحمة لجميع تجارة التجزئة والتجارة الإلكترونية على وجه الخصوص. يتزايد عدد المستخدمين ونشاطهم في هذا الوقت بشكل ملحوظ، لذلك نحن، كما هو الحال دائمًا، مستعدون تمامًا لهذا الوقت المزدحم. دعونا نضيف هنا حقيقة أن لدينا العديد من المتاجر عبر الإنترنت المتصلة ليس فقط في روسيا، ولكن أيضًا في أوروبا، حيث الإثارة أعلى بكثير، ونحصل على مستوى شغف أسوأ من المسلسلات البرازيلية. ما الذي يجب فعله للاستعداد الكامل للأحمال المتزايدة؟

العمل مع الخوادم

أولاً، كان من الضروري معرفة ما نحتاجه بالضبط لزيادة قوة الخادم. بالفعل في أغسطس، بدأنا في طلب خوادم جديدة خصيصًا ليوم الجمعة السوداء - في المجمل أضفنا 10 أجهزة إضافية. بحلول نوفمبر كانوا في القتال بشكل كامل.

وفي الوقت نفسه، تمت إعادة تثبيت بعض أجهزة البناء لاستخدامها كخوادم تطبيقات. لقد قمنا بإعدادهم على الفور لاستخدام وظائف مختلفة: سواء لإصدار التوصيات أو لخدمة ImageResizer، بحيث يمكن استخدام كل منهم لأحد هذه الأدوار، اعتمادًا على نوع التحميل. في الوضع العادي، يكون لخوادم Application وImageResizer وظائف محددة بوضوح: الأول يصدر التوصيات، بينما يوفر الأخير صورًا للخطابات وكتل التوصيات على مواقع التسوق عبر الإنترنت. استعدادًا للجمعة السوداء، تقرر جعل جميع الخوادم ثنائية الغرض من أجل موازنة حركة المرور فيما بينها حسب نوع التنزيل.

ثم أضفنا خادمين كبيرين لـ Kafka (Apache Kafka) وحصلنا على مجموعة من 5 أجهزة قوية. لسوء الحظ، لم يسير كل شيء بسلاسة كما نرغب: أثناء عملية مزامنة البيانات، احتل جهازان جديدان عرض قناة الشبكة بالكامل، وكان علينا أن نكتشف بشكل عاجل كيفية تنفيذ عملية الإضافة بسرعة وأمان من أجل البنية التحتية بأكملها. لحل هذه المشكلة، كان على المسؤولين لدينا التضحية بشجاعة بعطلات نهاية الأسبوع.

العمل مع البيانات

بالإضافة إلى الخوادم، قررنا تحسين الملفات لتخفيف العبء وكانت خطوة كبيرة بالنسبة لنا هي ترجمة الملفات الثابتة. تم نقل جميع الملفات الثابتة التي تمت استضافتها مسبقًا على الخوادم إلى S3 + Cloudfront. لقد أردنا القيام بذلك منذ فترة طويلة، حيث كان الحمل على الخادم قريبًا من القيم الحدية، والآن ظهرت فرصة عظيمة.

قبل أسبوع من الجمعة السوداء، قمنا بزيادة وقت التخزين المؤقت للصور إلى 3 أيام، بحيث إذا تعطل ImageResizer، سيتم استرداد الصور المخزنة مؤقتًا مسبقًا من CDN. كما أدى ذلك إلى تقليل الحمل على خوادمنا، نظرًا لأنه كلما تم تخزين الصورة لفترة أطول، قلت الحاجة إلى إنفاق الموارد على تغيير الحجم.

وأخيرًا وليس آخرًا: قبل 5 أيام من الجمعة السوداء، تم الإعلان عن وقف نشر أي وظائف جديدة، وكذلك أي عمل مع البنية التحتية - كل الاهتمام يهدف إلى التعامل مع الأحمال المتزايدة.

خطط الاستجابة للمواقف الصعبة

بغض النظر عن مدى جودة التحضير، فإن المنتجات المزيفة ممكنة دائمًا. وقمنا بتطوير 3 خطط استجابة للمواقف الحرجة المحتملة:

  • تقليل الحمل،
  • تعطيل بعض الخدمات،
  • الاغلاق الكامل للخدمة.

الخطة أ: تقليل الحمل. كان ينبغي تفعيلها إذا تجاوزت خوادمنا توقيت الاستجابة المقبول بسبب زيادة التحميل. في هذه الحالة، قمنا بإعداد آليات لتقليل الحمل تدريجيًا عن طريق تحويل جزء من حركة المرور إلى خوادم أمازون، والتي ستستجيب ببساطة لجميع الطلبات بـ "200 OK" وتعطي استجابة فارغة. لقد فهمنا أن هذا كان بمثابة تدهور في جودة الخدمة، ولكن الاختيار بين حقيقة أن الخدمة لا تعمل على الإطلاق أو لا تظهر توصيات لحوالي 10٪ من حركة المرور أمر واضح.

الخطة ب: تعطيل الخدمات. التدهور الجزئي الضمني للخدمة. على سبيل المثال، تقليل سرعة حساب التوصيات الشخصية من أجل تفريغ بعض قواعد البيانات وقنوات الاتصال. في الوضع العادي، يتم حساب التوصيات في الوقت الفعلي، مما يؤدي إلى إنشاء إصدار مختلف من المتجر عبر الإنترنت لكل زائر، ولكن في ظل ظروف التحميل المتزايد، يسمح تقليل السرعة للخدمات الأساسية الأخرى بمواصلة العمل.

الخطة ج: في حالة هرمجدون. في حالة حدوث فشل كامل في النظام، فقد قمنا بإعداد خطة تسمح لنا بالانفصال عن عملائنا بشكل آمن. سيتوقف مشتري المتجر ببساطة عن رؤية التوصيات، ولن يتأثر أداء المتجر عبر الإنترنت بأي شكل من الأشكال. للقيام بذلك، سيتعين علينا إعادة تعيين ملف التكامل الخاص بنا حتى يتوقف المستخدمون الجدد عن التفاعل مع الخدمة. وهذا يعني أننا سنقوم بتعطيل رمز التتبع الرئيسي الخاص بنا، وستتوقف الخدمة عن جمع البيانات وحساب التوصيات، وسيرى المستخدم ببساطة صفحة بدون كتل توصيات. بالنسبة لجميع أولئك الذين تلقوا سابقًا ملف التكامل، فقد قدمنا ​​خيار تحويل سجل DNS إلى Amazon وكعب 200 OK.

نتائج

لقد تعاملنا مع الحمولة بأكملها حتى دون الحاجة إلى استخدام آلات بناء إضافية. وبفضل الاستعداد المسبق، لم نكن بحاجة إلى أي من خطط الاستجابة المطورة. لكن كل العمل المنجز يمثل تجربة لا تقدر بثمن ستساعدنا على التعامل مع تدفقات حركة المرور غير المتوقعة والضخمة.
وكما هو الحال في عام 2017، زاد الحمل على الخدمة بنسبة 40%، وزاد عدد المستخدمين في المتاجر عبر الإنترنت بنسبة 60% في يوم الجمعة الأسود. كل الصعوبات والأخطاء حدثت خلال الفترة التحضيرية مما أنقذنا وعملائنا من مواقف غير متوقعة.

كيف تتعاملون مع الجمعة السوداء؟ كيف تستعد للأحمال الحرجة؟

المصدر: www.habr.com

إضافة تعليق