ما الذي يحله كتاب ألسبو
انضباط عدم الانتهاء
كتب جون ألسبو كتاب 'فن تخطيط السعة' (أوريلي، 2008؛ الطبعة الثانية 2017) بعد إدارة العمليات في فليكر خلال سنوات من النمو المتفجر. أطروحته: تخطيط السعة ليس تمرينًا لمرة واحدة في جدول بيانات. إنه انضباط مستمر يجمع بين القياس والتنبؤ والحكم الهندسي. إذا تخطيت أي من هذه الثلاثة، فإنك إما تنفد السعة في الإنتاج أو تحرق المال على الأجهزة التي تعطل.
يجلس تخطيط السعة بين نمطي فشل:
- التقليل من التخصيص: تعمل الخدمات بشكل ساخن، وتزداد زمن الانتظار، ومعدلات الأخطاء ترتفع، والعملاء يغادرون. الطريقة الأسرع لخسارة المستخدمين في مرحلة النمو.
- الإفراط في التخصيص: الأجهزة تعمل بنسبة 10% من الاستخدام، والمالية تسأل لماذا الميزانية تستمر في الزيادة دون زيادة الإيرادات. الطريقة الأسرع لخسارة عدد الموظفين في مراجعة الميزانية.
يكمن الفن في إيجاد الممر بين هذين الهاويين والبقاء فيه مع تغير الحمل.
ثلاثة أسئلة أساسية تدفع كل تمرين سعة:
- ماذا لدينا؟ السعة الحالية بوحدات محددة: طلبات في الثانية، استعلامات في الدقيقة، جيجابايت من التخزين، اتصالات متزامنة.
- ماذا نحتاج؟ الطلب المتوقع في تاريخ مستقبلي مع حدود عدم يقين صريحة.
- متى يجب أن نتصرف؟ وقت التسليم لشراء الأجهزة أو التوسع. السحابة تقلل هذا إلى دقائق؛ في الموقع يمكن أن يعني أشهرًا.
لماذا لا يمكن أن تكون جدول بيانات
تخطط شركة التجارة الإلكترونية السعة مرة واحدة في السنة، في نوفمبر، بعد استقراء آخر 12 شهرًا من حركة المرور خطيًا. تعمل على خوادم مخصصة مع وقت تسليم للشراء يبلغ 6 أسابيع. تُظهر حركة المرور موسمية أسبوعية قوية (قمة نهاية الأسبوع 3x)، موسمية سنوية قوية (قمة الجمعة السوداء 5x)، و نمت بنسبة 40% سنة على سنة لمدة ثلاث سنوات.
الحمل مقابل الاستخدام
رقمان مختلفان، كلاهما مطلوب
يفشل تخطيط السعة عندما تقيس الفرق بين الفعلين ما يقتصران على أحد البعدين الأساسيين فقط.
الحمل: الطلب على النظام من الخارج. طلبات في الثانية، معاملات في الدقيقة، ميجابايتات في الثانية، مستخدمون متزامنون. يصف الحمل ما يطلبه العالم منك.
الاستخدام: مدى امتلاء النظام أثناء خدمة هذا الطلب. نسبة وحدة المعالجة المركزية، الذاكرة المستخدمة، عمق الطابور، عرض النطاق الترددي للشبكة، IOPS القرص. يصف الاستخدام كيف يشعر النظام تحت هذا الطلب.
**الحمل وحده يخبرك ما الذي سيأتي لكن ليس ما إذا كان يمكنك خدمته. الاستخدام وحده يخبرك مدى امتلاء البلى لكن ليس ما يتوقع غدًا. تحتاج كليهما، مرسوم بجانب بعضهما البعض، لاتخاذ قرارات السعة.
نسبة السعة = الحمل / الاستخدام. إذا خدمت 1000 طلب في الثانية بنسبة 50% وحدة معالجة مركزية، فإن نسبة السعة لديك هي 2000 RPS لكل 100% وحدة معالجة مركزية لكل خادم. يسمح لك هذا معامل التحويل بترجمة الحمل المتوقع إلى عدد الخادم المطلوب.
يؤكد ألسبو القياس بالحبيبية الصحيحة. عينة واحدة في الدقيقة تخفي القمم 30 ثانية. عينة واحدة في الساعة تخفي كل شيء. يحتاج العمل الحقيقي للسعة إلى دقة أقل من الدقيقة لأحداث القمة واستبانة الدقيقة للاتجاهات. أي شيء أغلظ ينتج ثقة كاذبة خطرة.
ما الذي يجب أداته
فريقك يطلق أداة قياس السعة على إطلاق منتج جديد (خدمة نسخ فيديو). يمكنك اختيار ما يصل إلى 8 مقاييس لتتبعها بدقة أقل من الدقيقة. تتناول الخدمة تحميلات الفيديو، وتضعها في الطابور، وتنسخ إلى تنسيقات متعددة، وتكتب المخرجات إلى تخزين الكائنات.
الاتجاه و الموسمية و عدم اليقين
ثلاثة طبقات من كل توقع
يتفق ألسبو و كتاب Google SRE على هيكل التنبؤ المفيد: الاتجاه و الموسمية و حدود عدم اليقين. تخطي أي واحد والتنبؤ يصبح مضللًا.
الاتجاه: انحدار الطلب على أشهر أو سنوات. غالبًا ما يتم نموذجته بانحدار خطي للنوافذ القصيرة، والنمو الأسي أو الخطي متعدد الأجزاء للنمو المركب. خط الاتجاه يجيب على 'إلى أين يتجه الطلب بشكل عام؟'
الموسمية: الأنماط الدورية على مقاييس زمنية متعددة. يومي (قمة حركة المرور بعد الظهر)، أسبوعي (قمم نهاية الأسبوع)، سنوي (الجمعة السوداء، موسم الضرائب، السنة الدراسية). تتسع الموسمية المضاعفة مع الاتجاه؛ تضيف الموسمية الإضافية إزاحة ثابتة.
حدود عدم اليقين: مخروط التنبؤ. التنبؤ بدون حدود هو تخمين. التنبؤات الحقيقية تنشر تقديرًا مركزيًا مع حدود صريحة أقل وأعلى، عادة بثقة 90% أو 95%. يتسع المخروط مع اعتراض الكثير من المستقبل. قد يكون لدى التنبؤ لمدة 4 أسابيع حدود ±10%؛ غالبًا ما يكون التنبؤ لمدة 12 شهرًا حدود ±50%.
فصل نمو الأعمال عن الطلب التقني: تنبؤات تخطيط السعة العمل التقني، لكن فرق الأعمال تتنبأ بالإيرادات أو المشاركات أو الحملات. وظيفة مخطط السعة هي ترجمة تنبؤات الأعمال إلى الطلب التقني: قد يعني نمو الاشتراك بنسبة 30% 30% أكثر استدعاءات API، لكن قد يعني 80% أكثر إذا استخدم المستخدمون الجدد النظام بشكل أثقل، أو فقط 15% إذا تحولوا بمعدلات أقل. نسبة التحويل تهم بقدر تنبؤ الأعمال الأساسي.
التنبؤ بحركة مرور الإجازات
تخدم خدمتك موقع التجارة الإلكترونية. كانت حركة مرور الجمعة السوداء في العام الماضي 5x متوسط نوفمبر، مستمرة لمدة 12 ساعة. نمت الأعمال بنسبة 40% سنة على سنة. تطلق التسويق حملة مدفوعة من المتوقع أن تضيف 20% إضافية إلى حركة مرور الجمعة السوداء هذا العام.
معرفة السقف الخاص بك
ابحث عن السقف قبل أن يفعل الإنتاج
التنبؤ يخبرك ما الذي سيأتي. اختبارات السقف تخبرك ما إذا كان النظام يمكنه خدمته. يعتامد ألسبو على اختبار السقف كمدخل غير قابل للتفاوض لتخطيط السعة: أنت لا تعرف سعتك الحقيقية حتى اختبرتها تحت حمل مراقب.
ثلاثة أنواع من اختبارات السقف:
- اختبار الحمل الاصطناعي: مولد الحمل (k6 أو Locust أو JMeter أو vegeta) يدفع حركة المرور إلى خدمة الهدف في التحضير. زيادة الحمل حتى يكسر شيء. نقطة الكسر هي السقف. الأفضل لاختبار الخدمة المعزولة.
- حفر الإنتاج النشط: تقليل السعة بشكل مقصود في الإنتاج (تصريف نسبة مئوية من الخوادم، قتل منطقة) و لاحظ كيف تتعامل السعة المتبقية مع حركة المرور الحقيقية. اختبارات السلوك الحقيقي في الإنتاج بما في ذلك التفاعلات غير المتوقعة. أعلى ثقة لكن أعلى المخاطر.
- الحمل المظلل: إعادة تشغيل حركة المرور الحقيقية في الإنتاج في خدمة الهدف الموازية للإنتاج. يلتقط أنماط الحمل الحقيقي (نمط الاستعلام النادر، وكيلاء المستخدم الغريب) دون التأثير على المستخدمين. أرضية وسطية قوية.
المساحة الحرة هي المخزن المؤقت بين الحمل الحالي و السقف. قواعد إبهام SRE:
- مساحة حرة 50% في الحالة المستقرة لخدمة بمنطقة واحدة (بحيث فشل المنطقة لا يستنزف المنطقة الناجية)
- مساحة حرة 30% لخدمة متعددة المناطق مع زيادة N+2
- مساحة حرة 100%+ التي تقترب من أحداث القمة المعروفة (الجمعة السوداء، نهائيات الرياضة)
المساحة الحرة ليست نفايات. إنها تكلفة عدم تنبيه المهندسين في الساعة 3 صباحًا، و عدم خسارة العملاء أثناء ارتفاع، و عدم معاناة من فشل الكسكاد عندما تفشل منطقة واحدة. تدفع فرق التمويل أحيانًا لتقليل المساحة الحرة؛ يجب على مهندسي السعة أن يوضحوا تكلفة التشغيل الضيقة لجعل هذه المحادثة واقعية بدلاً من عاطفية.
تصميم اختبار السقف
تورث خدمة بدون سقف سعة موثق. حمل الإنتاج الحالي هو 800 طلب في الثانية عبر 12 خادمًا، وحدة معالجة مركزية متوسطة 35%. تعلن التسويق عن حملة في 6 أسابيع يتوقع أن تدفع حركة المرور إلى 3000 RPS في القمة.
لأعلى أو للخارج أو قطريًا
متى تضيف الطاقة أو تضيف صناديق أو كليهما
ثلاثة استراتيجيات توسع أساسية، لكل منها ملفات تعريف تكلفة وموثوقية مميزة:
التوسع الرأسي (التوسع للأعلى): آلات أكبر. استبدل خوادم 8 أنوية بخوادم 32 أنوية. أبسط مسار؛ يعمل حتى تضرب حدود الآلة الفردية. تبقى نقطة الفشل الفردية. تكلفة النمو بطريقة غير خطية: آلة 32 أنوية غالبًا ما تكلف أكثر من 4x آلة 8 أنوية.
التوسع الأفقي (التوسع للخارج): المزيد من الآلات. أضف خوادم خلف موازن حمل. السعة تتسع خطيًا مع عدد الخوادم. أنماط الفشل تتحول: يجب أن تتعامل مع التنسيق الموزع، لكن فشل خادم واحد لا يعود يدمر الخدمة. تعقيد التشغيل يزيد.
التوسع القطري (مصطلح ألسبو): توسع للأعلى أولاً إلى حجم مريح لكل خادم، ثم توسع للخارج من هناك. يجمع بين عمليات أبسط من الخوادم الكبيرة مع زيادة تعدد الخوادم. معظم خدمات الإنتاج تعيش في إقليم التوسع القطري.
التسعير المحفوظ مقابل المطلوب: مزودو السحابة يكافئون القدرة على التنبؤ. السعة المحفوظة أرخص بـ 30-60% من الطلب لكن تتطلب التزام 1-3 سنة. يقفل مخططو السعة عادة الطلب الثابت مع السعة المحفوظة و يتفجرون إلى الطلب للقمم. الحكم الخاطئ على هذا الانقسام يمكن أن يهدر المال (محفوظ زائد) أو يعرض الميزانية للمفاجأة (محفوظ أقل من اللازم أثناء القمم).
أمثال بقعة والأحمال القابلة للتعليق: 60-90% أرخص من الطلب لكن يمكن استعادتها بإشعار دقائق. مناسب لوظائف دفعة و تحليلات و تدريب الأحمال أو أي خدمة مصممة للقطع اللطيفة. حركة المرور المباشرة للمستخدم في الإنتاج عادة تتجنب بقعة.
اختيار مسار التوسع
تعمل خدمة نسخ الفيديو على 8 نسخ سحابية متوسطة الحجم (8 أنوية لكل منها). تتوقع نمو 3x على مدى 6 أشهر القادمة. الحمل مرتبط بوحدة المعالجة المركزية، موازى لكل فيديو، & كل نسخ فيديو يستغرق 90 ثانية من النهاية إلى النهاية. النسخ المحفوظة تكلف 50% من الطلب. نسخ بقعة تكلف 30% من الطلب لكن يمكن إنهاؤها بإشعار دقيقتين.
مهن تخطيط السعة
حيث يدفع تخطيط السعة المهارات
تخطيط السعة نادرًا ما يكون عنوان وظيفة في حد ذاته. تظهر المهارات تحت عدة أدوار:
مهندس موثوقية الموقع: تخطيط السعة هو مسؤولية أساسية لـ SRE. معظم فرق SRE لديها واحد أو اثنان من المهندسين الذين يتخصصون في السعة، يملكون نماذج التنبؤ و اختبارات السقف و أتمتة التوفير.
مهندس تكلفة السحابة / FinOps: دور أحدث يركز على تحسين نفقات السحابة. يجمع بين تخطيط السعة مع النمذجة المالية و تفاوض العقد و إدارة محفظة النسخ المحفوظة. يدفع بشكل جيد للغاية في شركات السحابة الأصلية الكبيرة لأن فواتير السحابة غالبًا ما تكون ثاني أكبر نفقة بعد الرواتب.
مهندس الأداء: يركز على كفاءة كل عقدة و اختبار السقف. الوظيفة: استخرج المزيد من السعة من نفس الأجهزة من خلال التنميط و التحسين و التغييرات المعمارية. معرفة الأنظمة والعديد من اللغات ثقيلة.
متخصص تخطيط السعة: في الشركات الكبيرة جدًا (Google و Meta و Amazon و Netflix)، توجد فرق مخصصة لتخطيط السعة. يملكون نماذج التنبؤ عبر الأسطول بأكمله، يفاوضون على الشراء بالجملة، و يحسنون مع التمويل على خرائط طريق الأجهزة متعددة السنوات.
المهارات التي تتراكم: تحليل السلاسل الزمنية (R أو Python statsmodels أو Prophet)، نظرية الطابور (M/M/1 أو M/M/c أو قانون Little)، على الأقل أداة إدارة تكوين واحدة، على الأقل لوحة معلومات تكلفة سحابة واحدة، و القدرة على كتابة تقرير توقع يمكن لـ CFO أن يفهمه و يتصرف بناءً عليه. المهارات التقنية تحصل لك على المقابلة؛ مهارات التواصل تحصل لك على الميزانية.
الخلاصة
ما تعرفه الآن
تخطيط السعة هو انضباط مستمر وليس تمرينًا سنويًا. غطيت:
- الممر بين التقليل من التخصيص و الإفراط في التخصيص
- الحمل مقابل الاستخدام كالبعدين من القياس
- الاتجاه و الموسمية و حدود عدم اليقين كالطبقات الثلاث من كل توقع
- اختبارات السقف (اصطناعي و ظلالي و حفر نشط) كالطريقة الوحيدة لمعرفة السعة الحقيقية
- مخازن المساحة الحرة و لماذا لا تكون نفايات
- التوسع القطري و قرار تسعير المحفوظ / الطلب / البقعة
- مسارات وظيفية حيث تحقق هذه المهارات سلطة الميزانية
فكرتان الأهم. توقع مع حدود وليس مع نقاط واحدة. و قيس سقفك قبل أن يفعل الإنتاج. احمل هاتين للأمام و الباقي يتبع.
القراءة الموصى بها: 'فن تخطيط السعة' لـ ألسبو (أوريلي، طبعة ثانية 2017)، الفصول ذات الصلة في كتاب Google SRE (مجاني على sre.google/books/)، و 'Systems Performance' لـ برندان جريج للعمل الأساسي للأنظمة. درس الرفيق geometry-of يتعمق على الهيكل البصري: قانون Little كمساحة، منحنيات الطابور، منحدرات الاتجاه، و مغلفات المساحة الحرة.