ماذا تفعل إذا كان الجمعة السوداء غدًا وخوادمك غير جاهزة

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

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

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



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

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

أنشأنا المراقبة


أعتقد أن المراقبة أساسية في أي حال. ستظل هناك مشكلات ، ولكن بفضل مراقبة الجداول الزمنية ، يمكنك فهم مكان الاختناقات الآن.

إذا كان ذلك ممكنًا ، أستخدم حلولًا مثل Zabbix / Prometheus / ELK (اعتمادًا على الهندسة المعمارية) ، إذا لم يكن كذلك ، فأنا أقوم بتوصيل SaaS بسرعة مثل okmeter.io. حتى إذا استمرت عملية البيع ليوم واحد فقط ، فلن تتمكن من إلقاء نظرة على مجموعة من المؤشرات في الشاشة مثل يوم الزولو على التوالي.

لا تزال الأدوات الرائعة هي blackfire.io/newrelic.com للتوصيف ، pinba.org لتحليل الصفحات "البطيئة" بشكل عام.

سيساعد blackfire / newrelic على حل المشكلة في صفحة معينة ، سيساعدك pinba على معرفة الصفحات التي يتم تحميلها في أغلب الأحيان وتشغيلها لفترة أطول (كل هذا خارج الصندوق في Bitrix ، على سبيل المثال ، ولكن حاول الانتقال إلى لوحة المشرف والعمل هناك عندما يقوم الخادم و الموقع بالفعل سيء للغاية).

اقطع الفائض


أقوم بإيقاف كل شيء يمكن إيقاف تشغيله: وحدات غير ضرورية مشروطة في الوقت الحالي ، وجميع أنواع الجمال ، وما إلى ذلك.

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

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

يمكنك فقط الجلوس والتفكير ، وماذا يمكن أن يقع على موقعك / في تطبيق جوال / إلخ؟

ترك السقوط


أنا أستعد لحقيقة أن أي خدمة ستسقط على أي حال. في هذه الحالة ، تحتاج إلى إظهار شيء للزوار على الأقل.

على سبيل المثال ، يجب ألا تحظر وحدة خدمة التسليم غير العاملة أو نموذج الدفع الطلب بالكامل ، ويمكن للمستخدم العودة غدًا وإكمال طلبه.

على صفحات أخطاء الخمسينات ، أظهر البريد أو رقم الهاتف لقسم المبيعات.

error_page 500 502 503 504 /50x.html; location = /50x.html { root /srv/www/yourwebsite.com/htdocs/sale-contacts/; } 

رفع نسخة من الموقع


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

بالمناسبة ، ستتيح لك خدمات السحابة العصرية إنشاء نسخة من خادم المعركة بسرعة وسهولة.

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

خدمات CDN


يمكنك الاستغناء عن CDN ، ولكن إذا كانت الخوادم لا تستطيع بشكل موضوعي التعامل مع عودة الكمية الصحيحة من الإحصاءات ، فمن الضروري.

يمكنك توصيل CDN بسرعة لنظام CMS الشهير مثل 1C-Bitrix و Wordpress . ولكن لا يمكنك تكوين CDN أثناء التنقل ، عليك أن تتوخى الحذر مقدمًا.

AntidDoS


أوصي بشدة بتوصيل خدمات AntiDDoS ، وتأكد مسبقًا (وإلا ، في ظل الحمل المفاجئ ، دون التكيف مع حركة المرور العادية ، فقد يبدأون في منع الزوار الشرعيين).

يمكن القيام بذلك لفترة معينة مجانًا:

  • qrator.net ، 10 أيام مجانًا إذا كان لديك Bitrix - https://www.1c-bitrix.ru/ddos/
  • DDoS-Guard ، هناك تعرفة مجانية - https://ddos-guard.net/en/store/web
  • cloudflare.com ، هناك تعريفة مجانية (ولكن هنا أوصي على الأقل بالتعرفة الأولى المدفوعة ، وتذكر أن عناوين IP الخاصة بهم غالبًا ما يتم حظرها في الاتحاد الروسي)

إضافة قدرات الخادم


نتوقع إمكانية إضافة الموارد. سيكون من الممكن إضافة موارد إلى الخادم الرئيسي ، وإنشاء عقدة جديدة لموازنة الاستعلامات ، وعقدة لـ mysql ، إلخ. إذا لم تكن نفسك ، فإن المتعاقد الخارجي المستأجر على الجانب سوف يشكرك كثيرًا على ذلك.
من الملائم إذا كان لدى مزود الخدمة القدرة على استضافة خوادم مادية وسحابية (Selectel.ru ، Servers.com).

فوه ، دعنا نذهب


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

بعض التكوينات


التخزين المؤقت في nginx


سننشئ ذاكرة تخزين مؤقت سعة 500 ميجابايت لمدة 3 ساعات لجميع الصفحات باستثناء صفحات الطلب.

 proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=blackfriday_cache:180m max_size=500m inactive=7d; #  blackfriday_cache,  180  proxy_cache_key "$request_method$scheme$host$request_uri"; proxy_cache_use_stale error timeout invalid_header http_500; map $uri $cookie_nocache { #     ,   ; 1 - , 0 -  "/order" "1"; "/bitrix" "1"; default "0"; } location / { .... proxy_hide_header "Set-Cookie"; #       proxy_ignore_headers "X-Accel-Expires"; proxy_ignore_headers "Expires"; proxy_ignore_headers "Cache-Control"; proxy_ignore_headers "Set-Cookie"; add_header X-Cache $upstream_cache_status; ... proxy_no_cache $cookie_nocache; #  ,   map;  1 -   proxy_cache blackfriday_cache; #    proxy_cache_valid 180m; #  180  proxy_cache_valid 404 1m; # 404  -   1  .... proxy_pass http://backend; #     } location @backend { .... #   } 

مواد إضافية كثيرة ، روابط:


تسمح لك قناة 100 ميجا بايت بإعطاء 12 صفحة تزن 1 ميجا بايت في الثانية ، وهذا 43 ألفًا في الساعة ؛ إن nginx قادرة على إعطاء مثل هذا الحجم حتى على خادم غير مكلف.

نوزع الطلبات عبر عدة عقد (يجب أن يكون الموقع جاهزًا للعمل مع عدة عقد ويب)



عبر Round-Robin DNS


(كن حذرا هنا ، هذه الطريقة لم تعد مدعومة بشكل صحيح من قبل العديد من مزودي DNS)

 $ dig lifehacker.ru +short 136.243.37.180 136.243.37.178 


عبر المنبع nginx


 $ cat nginx.conf upstream backend { server backend1.yoursite.com; server backend2.yoursite.com; } server { server_name yoursite.com; location / { proxy_pass http://backend; } } location @backend { .... #   } 


عبر Cloudflare ، Qrator ، إلخ.

لديهم القدرة على تعيين العديد من الخلفيات الخلفية مباشرة من اللوحة ، وعادة ما يكون تحديث التكوين فوريًا.

بهدوء


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

مبيعات ناجحة لك :)

Source: https://habr.com/ru/post/ar430710/


All Articles