قراءة الذيل الطويل
الزمن الكامن يعيش على منحنى، وليس رقماً
متوسط الزمن الكامن يخفي ما يختبره المستخدمون. الخدمات الحقيقية تنتج توزيعاً: منحنى يوضح عدد الطلبات التي استغرقت وقتاً معيناً.
ثلاث نقاط على هذا المنحنى تحمل معظم المعنى التشغيلي:
- p50 (الوسيط): منتصف التوزيع. نصف الطلبات تنتهي بشكل أسرع، والنصف الآخر أبطأ. يصف التجربة النمطية.
- p99: النسبة المئوية 99. فقط 1٪ من الطلبات استغرقت وقتاً أطول من هذا. يصف أسوأ تجربة للمستخدمين العاديين.
- p99.9: فقط 0.1٪ من الطلبات استغرقت وقتاً أطول. يصف أسوأ تجربة للمستخدمين الذين يستخدمون الخدمة بكثرة.
الرؤية الهندسية: توزيعات الزمن الكامن تملك تقريباً دائماً ذيلاً طويلاً إلى اليمين. يرتفع المنحنى بسرعة عند الوسيط، ثم ينخفض ببطء نحو اليمين، غالباً مع حدبة صغيرة بعيدة عن المتوسط. تمثل هذه الحدبة أبطأ المستخدمين: الذين يكتبون رسائل غضب.
لماذا المتوسطات مضللة: خدمة بزمن كامن وسيط 50 ميلي ثانية و p99 بقيمة 5000 ميلي ثانية لديها فجوة 100 مرة بين التجربة النمطية و الأسوأ. المتوسط الحسابي قد يصل إلى 100 ميلي ثانية، مختبئاً الكارثة تماماً. المتوسط الحسابي هو إسقاط نقطة واحدة من شكل ثنائي الأبعاد: تقريباً كل معلومات الشكل تختفي.
مشكلة ضرب النسب المئوية: طلب يلمس 10 خدمات خلفية، كل واحدة بـ p99 من 100 ميلي ثانية، له p99 تقريباً من 600 ميلي ثانية (وليس 100 ميلي ثانية). ذيول الأبطأ تتضاعف. هذا هو السبب الذي يحذر منه كتاب SRE: 'احذر من الأبطأ من بين N'. مع نمو N، يتدهور زمن الانتظار في الذيل بسرعة.
رياضيات زمن الانتظار في الذيل
الخدمة A لديها تدفق طلبات يتفرع إلى 5 خدمات خلفية بالتوازي و ينتظر جميع الاستجابات. لكل خدمة خلفية زمن كامن p99 بقيمة 100 ميلي ثانية.
استهلاك الميزانية كميل
رسم الميزانية عبر الزمن
ميزانية خطأ مرسومة على محاور ثنائية الأبعاد (الوقت على المحور الأفقي، الميزانية المتبقية على المحور الرأسي) تكشف صحة الخدمة في لمحة. يحمل شكل منحنى الاستهلاك نفس المعلومات التي تنقلها عشر لوحات معلومات منفصلة.
ثلاثة أشكال مرجعية:
- الاستهلاك الخطي الصحي: تنخفض الميزانية في خط مستقيم متناسب مع الوقت المنقضي. بحلول اليوم 14 من نافذة مدتها 28 يوماً، يجب أن تبقى نصف الميزانية. هذا هو هدف SLO مرئي.
- حرق سريع: ميل حاد نحو الأسفل. يشير إلى مشكلة موثوقية نشطة. إذا كان الميل حاداً بما يكفي، تنفد الميزانية قبل إعادة تعيين النافذة، مما يؤدي إلى تفعيل سياسة ميزانية الأخطاء.
- منحنى معالج: مقطع مسطح أو صاعد. الخدمة تعمل بشكل أفضل من SLO الخاص بها. تنمو الميزانية المتبقية بمرور الوقت، مما يفتح مجالاً لإطلاقات محفوفة بالمخاطر.
معدل الحرق هو ميل خط الاستهلاك، معايرة: معدل حرق 1 يعني حرق الميزانية بنفس سرعة مرور الزمن (متوافق تماماً مع SLO). معدل حرق 10 يعني حرق 10 مرات أسرع مما هو مسموح: ستنفد ميزانية الشهر كاملة في 2.8 يوم بهذا المعدل.
التنبيهات بمعدلات حرق متعددة النوافذ: يوصي دفتر عمل SRE من Google بالتنبيه عن شروط مدمجة مثل 'معدل الحرق أعلى من 14.4 خلال الساعة الماضية و أعلى من 14.4 خلال آخر 5 دقائق'. الهندسة: ميل حاد مستدام، وليس مجرد ارتفاع موجز. يصفي هذا الشكل الارتفاعات العابرة بينما يلتقط تهديدات الاستهلاك الحقيقية.
قراءة معدل الحرق
SLO لفريقك هو 99.9٪ على مدار 28 يوماً. في اليوم 7، استخدمت بالفعل 60٪ من ميزانيتك للأخطاء. معدل الحرق الحالي على مدار آخر 24 ساعة هو 8.
الخدمات كرسم بياني موجه
الإنتاج كـ DAG
الخدمات الحديثة تعمل كرسم بياني للتبعيات. كل خدمة هي عقدة. كل استدعاء من الخدمة A إلى الخدمة B هو حافة موجهة من A إلى B. الصورة الكاملة تشكل رسماً بيانياً موجهاً (أحياناً DAG، أحياناً بدورات عبر الإعادات غير المتزامنة).
الخصائص الهندسية الحرجة:
- الدرجة الخارجية: عدد الخدمات التي تعتمد عليها عقدة. درجة خارجية أعلى تعني مزيداً من أنماط فشل المنبع. خدمة تعتمد على 12 منصة خلفية تفشل إذا فشلت أي واحدة من هذه الـ 12.
- الدرجة الداخلية (المروحة): عدد الخدمات التي تعتمد على هذه العقدة. درجة داخلية أعلى تعني أن الفشل الفردي هنا ينتشر على نطاق واسع. قاعدة بيانات بها 30 خدمة معتمدة عليها لديها أكبر نطاق التأثر.
- مركزية التوسط: عدد أقصر المسارات التي تمر عبر عقدة. العقد ذات المركزية العالية هي نقاط الاختناق. خدمات المصادقة و واجهات برمجية التطبيقات الأساسية عادة ما تحقق نقاط عالية.
- المكونات المتصلة بقوة: مجموعات من الخدمات التي تشكل دورات. إذا استدعت A قيمة B و استدعت B قيمة A، لديك دورة. تعقد الدورات استرجاع الفشل: بدء أي خدمة يتطلب من الخدمة الأخرى أن تعمل بالفعل.
نطاق التأثر هو المفهوم الهندسي الذي يقود استثمار الموثوقية. نطاق التأثر للفشل هو الرسم البياني الفرعي للخدمات المعتمدة عليه. استثمرت هندسة الموثوقية بكثافة في العقد بأكبر نطاق تأثر. غالباً ما تكون الطريقة الأرخص لتحسين موثوقية النظام الإجمالية هي إضافة زيادة في الموثوقية أو تدهور سريع في العقد ذات مركزية التوسط الأعلى.
تفكير نطاق التأثر
خدمة المستهلك تعتمد على: AuthService و UserDB و ProductCatalog و PaymentGateway و RecommendationEngine و EmailService و AnalyticsService. لدى AuthService 47 خدمة أخرى تعتمد عليها. لدى EmailService 3 خدمات أخرى تعتمد عليها. لدى RecommendationEngine خدمتان تعتمد عليهما.
الهندسة المعلوماتية للوحة المعلومات
البكسلات حقيقية
لوحة المعلومات هي سطح ثنائي الأبعاد بمساحة محدودة. كل بكسل مخصص لإشارة واحدة هو بكسل غير مخصص لإشارة أخرى. تصميم لوحة المعلومات مشكلة هندسة: ترتيب المعلومات الأكثر صلة بالقرار ضمن أصغر منطقة بصرية مع الحفاظ على العلاقات المكانية التي تساعد على الاعتراف.
أنماط القراءة: القراء الغربيون يمسحون على شكل F (أعلى يسار أولاً، ثم عبر، ثم لأسفل). الإشارة الأكثر أهمية تنتمي إلى أعلى اليسار. أسفل اليمين يحصل على أقل انتباه.
تجميع جشتالت: الإشارات من نفس الخدمة تنتمي إلى نفس المجموعة البصرية. الكمون و حجم الحركة و الأخطاء و التشبع لخدمة واحدة تنتمي إلى شبكة 2x2، وليست متناثرة عبر الشاشة. القرب البصري يشفر العلاقة المنطقية.
ترميز اللون: أحمر للأخطاء، أصفر للتشبع، أخضر للنطاقات الصحية. اختيارات الألوان عبارة عن اتفاقيات، وليست عشوائية. عكسها يكلف جهد معرفي في كل نظرة أثناء الحوادث.
تحجيم المحور Y: رسم بياني مقياسي 0-100٪ يبدو هادئاً حتى أثناء مضاعفة حركة المرور. رسم بياني تلقائي التحجيم للقيم الحديثة يبدو مثيراً للقلق أثناء التباين الطبيعي. كلا الخيارين له استخدامات مناسبة؛ الاختيار هندسي، وليس تجميلي.
كثافة المعلومات: عدد قليل جداً من الإشارات يترك الفريق أعمى لما هو خاطئ. الكثير من الإشارات يدفن الإشارة في الضوضاء. تنطبق نسبة البيانات إلى الحبر في Edward Tufte: تعظيم نسبة الحبر الذي ينقل المعلومات إلى الحبر الذي يزين. تتفوق أسلوب Sparkline الموجز على الأدوات المزدحمة في لمحة.
التصميم للنظرة الأولى
يصمم فريقك لوحة معلومات أساسية واحدة لخدمة لديها 8 مؤشرات مستوى خدمة حرجة عبر 4 تبعيات منصات خلفية. يجب أن تجيب لوحة المعلومات على سؤال مهندس الاستدعاء الأول الساعة 3 صباحاً في أقل من 5 ثوان: 'هل هناك شيء في النار، و إن كان الأمر كذلك، أين؟'
الهندسة الهندسية لموثوقية الموقع: الختام
الأشكال التي تشغل الإنتاج
لقد مشيت عبر أربع هياكل هندسية تدير موثوقية الموقع:
- توزيعات الزمن الكامن كمنحنيات ذات ذيل طويل حيث نقاط النسبة المئوية تحمل حقيقة أكثر من المتوسطات
- مخاريط ميزانية الأخطاء حيث ميل الاستهلاك يكشف صحة الخدمة بشكل أفضل من الرقم المتبقي
- رسوم بيانية لتبعيات الخدمات حيث نطاق التأثر و المركزية توجهان استثمار الموثوقية
- تخطيطات لوحات المعلومات كعقار حقيقي ثنائي الأبعاد حيث تخصيص البكسل مشكلة هندسة لها عواقب تشغيلية
التفكير الهندسي هو ما يفصل موثوقية الموقع عن عمل العمليات العامة. مهندس العمليات يقرأ أرقاماً. موثوقية الموقع تقرأ أشكالاً. الأشكال تشفر معلومات لا يمكن لأي رقم واحد أن ينقلها: ميل معدل الحرق، و سمك الذيل، و مركزية العقدة، و جشتالت لوحة المعلومات.
الدرس المرافق عن موثوقية الموقع نفسها غطى الممارسات. هذا الدرس غطى الهندسة تحتها. معاً يشكلان السقالة البصرية و المفاهيمية لهندسة الموثوقية الحديثة.