محفوظة منذ أكتوبر 2019

إعادة كتابة قائمة انتظار التجهيز

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

لمدة خمس سنوات، كان شراء خادم هنا يستغرق في المتوسط ثلاث دقائق وعشرين ثانية من خطاف التسوية (webhook) حتى وصول بيانات الاعتماد إلى بريدك الوارد. لم يشتكِ أحد. كان أسرع من معظم الصناعة وأسرع بكثير من أي شيء يتطلب موافقة بشرية.

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

ما كان يفعله القديم

الخطوةالوسيطما كان يحدث
نسخ الصورة84 ثسحب صورة قرص من مخزن لكل موقع إلى العقدة الهدف
إنشاء الحجم31 ثتخصيص وتهيئة حجم NVMe
تخصيص العنوان46 ثأخذ قفل على تجمع عناوين الموقع، اختيار IPv4، كتابة DNS العكسي
الإقلاع الأول وcloud-init39 ثتوليد المفاتيح، توسيع نظام الملفات، إرسال البريد

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

ما الذي غيرناه

الصور معدة مسبقًا، لا تُنسخ. تحتفظ كل عقدة بأساس استنساخ رقيق لكل صورة في الكتالوج، ويتم تحديثه ليلاً. أصبح إنشاء الحجم الآن استنساخًا عند الكتابة (copy-on-write) ضد مرآة Gen4 NVMe محلية بدلاً من سحب الشبكة. انخفضت هذه الخطوة من أربع وثمانين ثانية إلى أقل من ثانيتين.

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

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

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

النتيجة

المقياسقبلبعد
الوسيط3 د 20 ث47 ث
المئين الخامس والتسعون12 د 10 ث3 د 56 ث
المئين التاسع والتسعون41 د8 د 20 ث
الإنشاءات الفاشلة التي تحتاج إنسانًا1 من 4001 من 9,000
التزامن لكل موقع قبل أن يتحرك الوسيط690

ما الذي سار بشكل خاطئ في الطريق

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

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

ما الذي لا يزال بطيئًا

  • تثبيتات ISO المخصصة. لا تزال يدوية، ولا تزال تقاس بعشرات الدقائق، وعادة ما تكتمل خلال الساعة. عنق الزجاجة هو شخص يؤكد أن الصورة تفعل ما يقول مُحمّلها إنها تفعله.
  • ويندوز (Windows). تنشيط الترخيص يضيف دقيقتين إلى ثلاث دقائق وهو خارج عن سيطرتنا.
  • المعدن العاري (Bare metal). في نفس اليوم وليس في نفس الدقيقة. الجهاز المادي له إعادة بناء فيزيائية، ونفضل أن نقتبس لك بصدق بدلاً من تشغيل ساعة لا يمكننا تجاوزها.
  • تفويض IPv6 /48. يدوي في ثلاثة مواقع حيث تكون تهيئة الشبكة قديمة. يتم إصلاحه ببطء.

لماذا توقفنا هنا

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

سبع وأربعون ثانية قصيرة بما يكفي بحيث يكون القيد الآن هو سلسلة تأكيد دفعتك وليس أي شيء نفعله. التحسين إلى ما بعد النقطة التي يلاحظ فيها العميل هو هواية، وليس هندسة.

جاهز عندما تكون

اختر مدينة. اختر الحجم. ادفع بالعملة الرقمية.

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