يتطلب تشغيل أي منصة موزعة قابلة للتطوير الالتزام بالموثوقية، لضمان حصول العملاء على ما يحتاجون إليه عندما يحتاجون إليه. يمكن أن تكون التبعيات معقدة إلى حد ما، خاصة مع منصة كبيرة مثل Roblox. إن بناء خدمات موثوقة يعني أنه، بغض النظر عن مدى تعقيد وحالة التبعيات، لن يتم مقاطعة أي خدمة معينة (أي بشكل كبير متاح) ، ستعمل خالية من الأخطاء (أي عالية جودة) وبدون أخطاء (أي التسامح مع الخطأ).
لماذا تعتبر الموثوقية مهمة
يلتزم فريق Account Identity لدينا بالوصول إلى موثوقية أعلى ، نظرًا لأن خدمات الامتثال التي أنشأناها هي مكونات أساسية للمنصة. يمكن أن يكون للامتثال المعطل عواقب وخيمة. تكلفة منع التشغيل الطبيعي لـ Roblox مرتفعة للغاية ، مع وجود موارد إضافية ضرورية للتعافي بعد الفشل وتجربة المستخدم الضعيفة.
يركز النهج النموذجي للوثوقية في المقام الأول على التوافر ، ولكن في بعض الحالات تكون المصطلحات مختلطة ويساء استخدامها. تقوم معظم قياسات التوافر فقط بتقييم ما إذا كانت الخدمات قيد التشغيل أم لا ، في حين يتم أحيانًا نسيان جوانب مثل تحمل التقسيم والاتساق أو يُساء فهمها.
وفقًا لنظرية CAP ، لا يمكن لأي نظام موزع أن يضمن سوى جانبين من هذه الجوانب الثلاثة ، لذا فإن خدمات الامتثال لدينا تضحي ببعض الاتساق من أجل أن تكون متاحة بدرجة عالية ومتسامحة مع التقسيم. ومع ذلك ، ضحت خدماتنا بالقليل وتم العثور على آليات لتحقيق تناسق جيد مع التغييرات المعمارية المعقولة الموضحة أدناه.
إن عملية الوصول إلى موثوقية أعلى هي عملية تكرارية ، حيث يتطابق القياس الدقيق مع العمل المستمر من أجل منع العيوب واكتشافها واكتشافها وإصلاحها قبل وقوع الحوادث. حدد فريقنا قيمة قوية في الممارسات التالية:
- القياس الصحيح - بناء إمكانية ملاحظة كاملة حول كيفية تقديم الجودة للعملاء وكيف تقدم التبعيات الجودة إلينا.
- توقع استباقي - أداء أنشطة مثل المراجعات المعمارية وتقييمات مخاطر التبعية.
- ترتيب أولويات التصحيح - لفت الانتباه بشكل أكبر إلى حل تقرير الحوادث للخدمة والتبعيات المرتبطة بخدمتنا.
يتطلب بناء موثوقية أعلى ثقافة الجودة. كان فريقنا يستثمر بالفعل في التطوير المستند إلى الأداء ويعرف أن نجاح العملية يعتمد على اعتمادها. اعتمد الفريق هذه العملية بالكامل وطبق الممارسات كمعيار. يوضح الرسم البياني التالي مكونات العملية:
قوة القياس الصحيح
قبل التعمق في المقاييس ، هناك توضيح سريع يجب إجراؤه بخصوص قياسات مستوى الخدمة.
- SLO (هدف مستوى الخدمة) هو هدف الموثوقية الذي يهدف إليه فريقنا (أي 99.999٪).
- SLI (مؤشر مستوى الخدمة) هو الموثوقية التي تم تحقيقها بالنظر إلى الإطار الزمني (أي 99.975٪ في فبراير الماضي).
- SLA (اتفاقية مستوى الخدمة) هي الموثوقية التي تم الاتفاق على تقديمها والتي يتوقعها عملاؤنا في إطار زمني محدد (أي 99.99% في الأسبوع).
يجب أن يعكس SLI التوافر (لا توجد استجابات غير معالجة أو مفقودة) ، وتحمل الفشل (لا توجد أخطاء في الخدمة) والجودة التي تم تحقيقها (لا توجد أخطاء غير متوقعة). لذلك ، قمنا بتعريف SLI الخاص بنا على أنه "نسبة النجاح" للردود الناجحة مقارنة بإجمالي الطلبات المرسلة إلى الخدمة. الاستجابات الناجحة هي تلك الطلبات التي تم إرسالها في الوقت والشكل ، أي لا حدث اتصال أو خدمة أو أخطاء غير متوقعة.
يتم جمع SLI أو نسبة النجاح من وجهة نظر المستهلكين (أي العملاء). الهدف هو قياس التجربة الفعلية الكاملة المقدمة لعملائنا حتى نشعر بالثقة في تلبية اتفاقيات مستوى الخدمة. سيؤدي عدم القيام بذلك إلى خلق إحساس زائف بالموثوقية يتجاهل جميع مخاوف البنية التحتية للتواصل مع عملائنا. على غرار SLI للمستهلك ، نقوم بتجميع التبعية SLI لتتبع أي مخاطر محتملة. من الناحية العملية ، يجب أن تتوافق جميع اتفاقيات مستوى الخدمة الخاصة بالتبعية مع اتفاقية مستوى الخدمة للخدمة وهناك تبعية مباشرة معها. فشل المرء يعني فشل الجميع. نقوم أيضًا بتتبع المقاييس والإبلاغ عنها من الخدمة نفسها (على سبيل المثال ، الخادم) ولكن هذا ليس المصدر العملي للاعتمادية العالية.
بالإضافة إلى SLIs ، يجمع كل تصميم مقاييس الجودة التي يتم الإبلاغ عنها بواسطة سير عمل CI الخاص بنا. تساعد هذه الممارسة في فرض بوابات الجودة بقوة (أي تغطية الكود) والإبلاغ عن مقاييس أخرى ذات مغزى ، مثل الامتثال القياسي للترميز وتحليل الكود الثابت. تمت تغطية هذا الموضوع مسبقًا في مقال آخر ، بناء خدمات مصغرة مدفوعة بالأداء. يزيد الالتزام الدؤوب بالجودة عند الحديث عن الموثوقية ، لأنه كلما استثمرنا أكثر في الوصول إلى درجات ممتازة ، زاد ثقتنا بأن النظام لن يفشل أثناء الظروف المعاكسة.
فريقنا لديه اثنين من لوحات المعلومات. أحدهما يسلم كل الوضوح في كل من المستهلكين SLI وتبعيات SLI. يعرض الثاني جميع مقاييس الجودة. نحن نعمل على دمج كل شيء في لوحة تحكم واحدة ، بحيث يتم دمج جميع الجوانب التي نهتم بها وجاهزة للإبلاغ عنها في أي إطار زمني محدد.
توقع الفشل
فعل مراجعات معمارية هو جزء أساسي من كونك موثوقًا. أولاً ، نحدد ما إذا كان التكرار موجودًا وما إذا كانت الخدمة لديها وسيلة للبقاء على قيد الحياة عندما تنخفض التبعيات. بالإضافة إلى أفكار النسخ المتماثل النموذجية ، طبقت معظم خدماتنا تقنيات محسنة لترطيب ذاكرة التخزين المؤقت المزدوجة ، أو استراتيجيات الاسترداد المزدوجة (مثل قوائم الانتظار المحلية لتجاوز الفشل) ، أو استراتيجيات فقدان البيانات (مثل دعم المعاملات). هذه الموضوعات واسعة بما يكفي لتبرير إدخال مدونة أخرى ، ولكن في النهاية أفضل توصية هي تنفيذ الأفكار التي تأخذ في الاعتبار سيناريوهات الكوارث وتقليل أي عقوبة على الأداء.
هناك جانب آخر مهم يجب توقعه وهو أي شيء يمكن أن يحسن الاتصال. وهذا يعني أن تكون جادًا بشأن وقت الاستجابة المنخفض للعملاء وإعدادهم لحركة مرور عالية جدًا باستخدام تقنيات التحكم في ذاكرة التخزين المؤقت ، والسيارات الجانبية ، وسياسات الأداء فيما يتعلق بالمهلة وقواطع الدائرة وإعادة المحاولة. تنطبق هذه الممارسات على أي عميل بما في ذلك ذاكرات التخزين المؤقت والمخازن وقوائم الانتظار والعملاء المترابطين في HTTP و gRPC. ويعني أيضًا تحسين الإشارات الصحية من الخدمات وفهم أن الفحوصات الصحية تلعب دورًا مهمًا في جميع عمليات تنسيق الحاويات. تقدم معظم خدماتنا إشارات أفضل للتدهور كجزء من ملاحظات الفحص الصحي وتحقق من أن جميع المكونات الحيوية تعمل قبل إرسال إشارات صحية.
ثبت أن تقسيم الخدمات إلى أجزاء مهمة وغير مهمة مفيد للتركيز على الوظائف الأكثر أهمية. اعتدنا أن يكون لدينا نقاط نهاية للمسؤول فقط في نفس الخدمة ، وعلى الرغم من عدم استخدامها كثيرًا ، إلا أنها أثرت على مقاييس وقت الاستجابة الإجمالية. لقد أثر نقلهم إلى خدمتهم الخاصة على كل مقياس في اتجاه إيجابي.
تقييم مخاطر التبعية هي أداة مهمة لتحديد المشاكل المحتملة مع التبعيات. هذا يعني أننا نحدد التبعيات ذات مستوى منخفض من SLI ونطلب محاذاة SLA. تحتاج تلك التبعيات إلى اهتمام خاص أثناء خطوات التكامل ، لذلك نخصص وقتًا إضافيًا لقياس واختبار ما إذا كانت التبعيات الجديدة ناضجة بما يكفي لخططنا. أحد الأمثلة الجيدة هو التبني المبكر الذي أجريناه لـ Roblox Storage-as-a-Service. تطلب التكامل مع هذه الخدمة تقديم تذاكر الأخطاء واجتماعات المزامنة الدورية لإبلاغ النتائج والتعليقات. يستخدم كل هذا العمل علامة "الموثوقية" حتى نتمكن من تحديد مصدرها وأولوياتها بسرعة. حدث التوصيف في كثير من الأحيان حتى أصبح لدينا ثقة في أن التبعية الجديدة كانت جاهزة لنا. ساعد هذا العمل الإضافي في نقل التبعية إلى المستوى المطلوب من الموثوقية الذي نتوقع تقديمه للعمل معًا لتحقيق هدف مشترك.
جلب الهيكل إلى الفوضى
ليس من المرغوب أبدًا وقوع حوادث. ولكن عندما تحدث ، هناك معلومات مفيدة يمكن جمعها والتعلم منها حتى تكون أكثر موثوقية. يمتلك فريقنا تقريرًا عن الحادث يتم إنشاؤه بشكل يتجاوز التقرير النموذجي على مستوى الشركة ، لذلك نحن نركز على جميع الحوادث بغض النظر عن حجم تأثيرها. نحن نستدعي السبب الجذري ونعطي الأولوية لكل العمل للتخفيف من حدته في المستقبل. كجزء من هذا التقرير ، ندعو الفرق الأخرى لإصلاح حوادث التبعية ذات الأولوية العالية ، والمتابعة بالحل المناسب ، والتأمل في الماضي والبحث عن الأنماط التي قد تنطبق علينا.
ينتج الفريق تقرير الموثوقية الشهري لكل خدمة يتضمن جميع SLIs الموضحة هنا ، وأي تذاكر فتحناها بسبب الموثوقية وأي حوادث محتملة مرتبطة بالخدمة. لقد اعتدنا على إنشاء هذه التقارير بحيث أن الخطوة الطبيعية التالية هي أتمتة استخراجها. يعد القيام بهذا النشاط الدوري أمرًا مهمًا ، وهو تذكير بأن الموثوقية يتم تتبعها باستمرار وأخذها في الاعتبار في تطورنا.
تتضمن أجهزتنا مقاييس مخصصة وتنبيهات محسّنة حتى يتم ترحيلنا في أقرب وقت ممكن عند حدوث مشاكل معروفة ومتوقعة. تتم مراجعة جميع التنبيهات ، بما في ذلك الإيجابيات الكاذبة ، كل أسبوع. في هذه المرحلة ، يعد تلميع جميع الوثائق أمرًا مهمًا حتى يعرف عملاؤنا ما يمكن توقعه عند تشغيل التنبيهات وعندما تحدث أخطاء ، ومن ثم يعرف الجميع ما يجب فعله (على سبيل المثال ، تتم محاذاة وتحديث أدلة التشغيل وإرشادات التكامل بشكل متكرر).
في نهاية المطاف، إن اعتماد الجودة في ثقافتنا هو العامل الأكثر أهمية وحسمًا في الوصول إلى موثوقية أعلى. يمكننا أن نلاحظ كيف أن هذه الممارسات المطبقة على عملنا اليومي تؤتي ثمارها بالفعل. فريقنا مهووس بالموثوقية وهو أهم إنجاز لنا. لقد قمنا بزيادة وعينا بالتأثير الذي يمكن أن تحدثه العيوب المحتملة ومتى يمكن تقديمها. وصلت الخدمات التي نفذت هذه الممارسات باستمرار إلى SLOs و SLAs. إن تقارير الموثوقية التي تساعدنا على تتبع جميع الأعمال التي كنا نقوم بها هي شهادة على العمل الذي قام به فريقنا ، وتقف كدروس لا تقدر بثمن لإعلام الفرق الأخرى والتأثير عليها. هذه هي الطريقة التي تلامس بها ثقافة الموثوقية جميع مكونات منصتنا.
إن الطريق إلى موثوقية أعلى ليس طريقًا سهلاً، ولكنه ضروري إذا كنت ترغب في بناء منصة موثوقة تعيد تصور كيفية اجتماع الأشخاص معًا.
ألبرتو هو مهندس برمجيات رئيسي في فريق Account Identity في Roblox. لقد كان في صناعة الألعاب لفترة طويلة ، مع ائتمانات على العديد من عناوين ألعاب AAA ومنصات الوسائط الاجتماعية مع تركيز قوي على البنى القابلة للتطوير بدرجة كبيرة. وهو الآن يساعد Roblox في الوصول إلى النمو والنضج من خلال تطبيق أفضل ممارسات التطوير.
وظيفة تقديم موثوقية منصة واسعة النطاق ظهرت للمرة الأولى على مدونة Roblox.
- "
- a
- من نحن
- حسابي
- التأهيل
- تحقق
- أنشطة
- نشاط
- إضافة
- إضافي
- تبني
- المعاكسة
- اتفاقية
- الكل
- سابقا
- تحليل
- آخر
- توقع
- تطبيقي
- التقديم
- تطبيق
- نهج
- معماري
- حول
- البند
- أسوشيتد
- اهتمام
- أتمتة
- توفر
- متاح
- وعي
- لان
- قبل
- يجري
- أقل من
- مؤشر
- أفضل
- Beyond
- المدونة
- جلب
- علة
- نساعدك في بناء
- دعوة
- يهمني
- الحالات
- سبب
- الشيكات
- عميل
- الكود
- البرمجة
- جمع
- تأتي
- ارتكاب
- التزام
- ملتزم
- مشترك
- التواصل
- مقارنة
- الالتزام
- مكونات
- الشروط
- الثقة
- واثق
- التواصل
- الإتصال
- نظر
- باستمرار
- مستهلك
- المستهلكين
- وعاء
- جوهر
- استطاع
- خلق
- خلق
- الشكر والتقدير
- حرج
- ثقافة
- على
- العملاء
- لوحة أجهزة القياس
- البيانات
- أعمق
- تم التوصيل
- تقديم
- يسلم
- مطالب
- يعتمد
- حدد
- التطوير التجاري
- مباشرة
- كارثة
- وزعت
- إلى أسفل
- مدفوع
- أثناء
- في وقت مبكر
- النهائي إلى نهاية
- مهندس
- خاصة
- كل شخص
- كل شىء
- مثال
- ممتاز
- توقع
- متوقع
- الخبره في مجال الغطس
- واسع
- فشل
- ردود الفعل
- الاسم الأول
- حل
- تركز
- ويركز
- التركيز
- اتباع
- متابعيك
- النموذج المرفق
- وجدت
- تبدأ من
- بالإضافة إلى
- وظيفي
- وظيفة
- أساسي
- مستقبل
- لعبة
- البوابات و حواجز اللعب
- توليد
- هدف
- خير
- التسويق
- ضمان
- المبادئ التوجيهية
- يحدث
- حدث
- صحة الإنسان
- مساعدة
- مساعدة
- يساعد
- هنا
- مرتفع
- أعلى
- ويبرز
- جدا
- كيفية
- HTTPS
- الأفكار
- تحديد
- هوية
- التأثير
- تنفيذ
- نفذت
- أهمية
- تحسن
- تحسن
- تحسين
- في أخرى
- يشمل
- بما فيه
- زيادة
- العالمية
- تأثير
- معلومات
- البنية التحتية
- التكامل
- نية
- الاستثمار
- IT
- نفسها
- علم
- معروف
- تعلم
- مستوى
- القليل
- محلي
- طويل
- بحث
- جعل
- مطابقة
- المسائل
- ناضج
- نضج
- معنى
- ذات مغزى
- يعني
- قياس
- الوسائط
- اجتماعات
- المقاييس
- مختلط
- الأكثر من ذلك
- أكثر
- يتحرك
- طبيعي
- ضروري
- مع ذلك
- طريقة التوسع
- عملية
- تزامن
- طلب
- أخرى
- الكلي
- الخاصة
- جزء
- مجتمع
- أداء
- قطعة
- خطط
- المنصة
- منصات التداول
- بلايستشن
- البوينت
- بسبب، حظ
- سياسات الخصوصية والبيع
- إيجابي
- ممكن
- محتمل
- قوة
- ممارسة
- يقدم
- رئيسي
- الأولوية
- مشاكل
- عملية المعالجة
- جودة
- سريع
- بسرعة
- الوصول
- معقول
- استعادة
- استرجاع
- تعكس
- بخصوص
- الخدمة الموثوقة
- تقرير
- التقارير
- طلبات
- مطلوب
- الموارد
- التعليقات
- المخاطرة
- طريق
- Roblox
- النوع
- جذر
- تشغيل
- نفسه
- تحجيم
- حجم
- إحساس
- الخدمة
- خدماتنا
- مماثل
- منذ
- عزباء
- So
- العدالة
- وسائل التواصل الاجتماعي
- المنصات الإعلامية الاجتماعية
- تطبيقات الكمبيوتر
- مهندس البرمجيات
- بعض
- تختص
- موقف
- معيار
- الحالة
- فروعنا
- استراتيجيات
- قوي
- تحقيق النجاح
- ناجح
- الدعم
- نظام
- الحديث
- فريق
- تقنيات
- سياسة الحجب وتقييد الوصول
- تجربه بالعربي
- •
- وبالتالي
- ثلاثة
- تذاكر
- الوقت
- إطار زمني
- سويا
- تسامح
- أداة
- موضوع
- المواضيع
- مسار
- حركة المرور
- فهم
- us
- قيمنا
- تحقق من
- المزيد
- رؤية
- أسبوع
- ابحث عن
- سواء
- في حين
- بدون
- للعمل
- عامل
- سوف