ما المقصود بهندسة موثوقية الموقع؟
هندسة موثوقية الموقع (SRE) هي ممارسة استخدام أدوات البرمجيات لأتمتة مهام البنية التحتية لتكنولوجيا المعلومات مثل إدارة النظام ومراقبة التطبيقات. تستخدم المؤسسات SRE لضمان بقاء تطبيقات البرامج الخاصة بها موثوقة وسط التحديثات المتكررة من فرق التطوير. تعمل SRE بشكل خاص على تحسين موثوقية أنظمة البرامج القابلة للتطوير لأن إدارة نظام كبير باستخدام البرامج أكثر استدامة من إدارة مئات الأجهزة يدويًا.
ما سبب أهمية هندسة موثوقية الموقع؟
موثوقية الموقع تصف استقرار وجودة الخدمة التي يقدمها التطبيق بعد إتاحته للمستخدمين النهائيين. تؤثر صيانة البرامج أحيانًا على موثوقية البرامج إذا كانت هناك مشكلات فنية لم تُكتشف. على سبيل المثال، عندما يقوم المطورون بإجراء تغييرات جديدة، فقد يؤثرون عن غير قصد على التطبيق الحالي ويتسببون في تعطله في بعض حالات الاستخدام.
فيما يلي بعض مزايا ممارسات هندسة موثوقية الموقع (SRE).
تحسين التعاون
تعمل هندسة موثوقية الموقع (SRE) على تحسين التعاون بين فرق التطوير والعمليات. يضطر المطورون في الغالب إلى إجراء تغييرات سريعة على أحد التطبيقات لإصدار ميزات جديدة أو لإصلاح أخطاء جسيمة. ومن ناحية أخرى، يتعين على فريق العمليات ضمان تقديم الخدمة بسلاسة. وبالتالي، يستخدم فريق العمليات ممارسات هندسة موثوقية الموقع (SRE) لمراقبة كل تحديث عن كثب والاستجابة الفورية لأي مشكلات تنشأ بسبب التغييرات.
تجربة عملاء محسنة
تستخدم المؤسسات نموذج هندسة موثوقية الموقع (SRE) لضمان عدم تأثير أخطاء البرامج على تجربة العميل. على سبيل المثال، تستخدم فرق البرامج أدوات هندسة موثوقية الموقع (SRE) في أتمتة دورة حياة تطوير البرامج. وهذا يقلل من الأخطاء، ما يعني أن الفريق يمكنه إعطاء الأولوية لتطوير الميزات الجديدة وليس على إصلاحات الأخطاء.
تحسين التخطيط للعمليات
يقبل فريق هندسة موثوقية الموقع (SRE) أن هناك احتمالية واقعية لحدوث عطل في البرنامج. ولذلك، يخطط الفريق للاستجابة المناسبة للحوادث لتقليل تأثير وقت التعطل على الأعمال والمستخدمين النهائيين. يمكنهم أيضًا تقدير تكلفة التعطل بشكل أفضل وفهم تأثير مثل هذه الحوادث على عمليات الأعمال.
ما المبادئ الأساسية الموجودة في هندسة موثوقية الموقع؟
فيما يلي بعض المبادئ الأساسية الموجودة في هندسة موثوقية الموقع (SRE).
مراقبة التطبيق
تقبل فرق هندسة موثوقية الموقع (SRE) أن الأخطاء هي جزء من عملية نشر البرامج. وبدلاً من السعي لإيجاد حل مثالي، تراقب أداء البرامج من حيث اتفاقيات مستوى الخدمة (SLA) ومؤشرات مستوى الخدمة (SLIs) وأهداف مستوى الخدمة (SLOs). تراقب وتتابع مقاييس الأداء بعد نشر التطبيق في بيئات الإنتاج.
تنفيذ التغيير التدريجي
تشجع ممارسات هندسة موثوقية الموقع (SRE) على إصدار تغييرات بصفة متكررة ولكنها تغييرات بسيطة للحفاظ على موثوقية النظام. أدوات أتمتة هندسة موثوقية الموقع (SRE) تستخدم عمليات متسقة ولكنها قابلة للتكرار للقيام بما يلي:
- تقليل المخاطر الناجمة عن التغييرات.
- توفير حلقات إبداء الملاحظات لقياس أداء النظام.
- زيادة السرعة والكفاءة في تنفيذ التغيير.
الأتمتة بهدف تحسين الموثوقية
تستخدم هندسة موثوقية الموقع (SRE) السياسات والعمليات التي تتضمن مبادئ الموثوقية في كل خطوة من خطوات مسار التسليم. فيما يلي بعض الإستراتيجيات التي تحل المشكلات تلقائيًا:
- تطوير بوابات الجودة بناءً على أهداف مستوى الخدمة للكشف المبكر عن المشكلات
- أتمتة اختبارات الإنشاء باستخدام مؤشرات مستوى الخدمة
- اتخاذ القرارات المتعلقة بالتصميم التي تضمن مرونة النظام في بداية تطوير البرمجيات
ما قابلية المتابعة في هندسة موثوقية الموقع؟
قابلية المتابعة هي عملية تُجهّز فريق البرمجيات لحالات الريبة وعدم اليقين عندما يتم طرح البرنامج للمستخدمين النهائيين. تستخدم فرق هندسة موثوقية الموقع (SRE) أدوات لاكتشاف السلوكيات غير الطبيعية في البرنامج، والأهم من ذلك، جمع المعلومات التي تساعد المطورين في فهم أسباب المشكلة. تتضمن قابلية المتابعة جمع المعلومات التالية باستخدام أدوات هندسة موثوقية الموقع (SRE).
المقاييس
المقاييس هي قيم قابلة للقياس الكمي تعكس أداء التطبيق أو سلامة النظام. تستخدم فرق هندسة موثوقية الموقع (SRE) المقاييس في تحديد ما إذا كان البرنامج يستهلك موارد مفرطة أو يتصرف بشكل غير طبيعي.
السجلات
تقوم برمجيات هندسة موثوقية الموقع (SRE) بإنشاء معلومات تفصيلية ذات طوابع زمنية تُسمى السجلات المقدمة في استجابة لأحداث محددة. يستخدم مهندسو البرمجيات السجلات لفهم سلسلة الأحداث التي تؤدي إلى مشكلة معينة.
حالات التعقب
حالات التعقب هي ملاحظات لمسار التعليمة البرمجية لوظيفة معينة في نظام موزع. على سبيل المثال، تتضمن عملية التحقق من سلة الطلبات ما يلي:
- حساب السعر من خلال قاعدة البيانات
- المصادقة باستخدام بوابة الدفع
- إرسال الطلبات للمورّدين
حالات التعقب تتضمن المعرف والاسم والوقت. فهي تساعد مطوري البرامج في اكتشاف مشكلات زمن الاستجابة وتحسين أداء البرامج.
ما المقصود بالمراقبة في هندسة موثوقية الموقع؟
المراقبة هي عملية مراقبة مقاييس محددة مسبقًا في التطبيق. يقرر المطورون المعلمات المهمة في تحديد سلامة التطبيق وتعيينها في أدوات المراقبة. تقوم فرق هندسة موثوقية الموقع (SRE) بجمع المعلومات المهمة التي تعكس أداء النظام وتعرضها بطريقة مرئية في مخططات.
في هندسة موثوقية الموقع (SRE)، تراقب فرق البرمجيات هذه المقاييس لاكتساب رؤى حول موثوقية النظام.
وقت الاستجابة
زمن الاستجابة يصف التأخير عند استجابة التطبيق لطلب ما. على سبيل المثال، يستغرق إرسال النموذج على موقع ويب 3 ثوانٍ قبل أن يوجه المستخدمين إلى صفحة ويب خاصة بالإقرار.
حركة المرور
حركة المرور تقيس عدد المستخدمين الذين يصلون في نفس الوقت إلى خدمتك. حركة المرور تساعد فرق البرمجيات وفقًا لموارد الحوسبة المتعلقة بالميزانية للحفاظ على مستوى خدمة مرضٍ لجميع المستخدمين.
الأخطاء
الخطأ هو حالة يفشل فيها التطبيق في الأداء أو التسليم وفقًا للتوقعات. فمثلًا، عندما يفشل تحميل صفحة ويب أو لا تتم المعاملة، تستخدم فرق هندسة موثوقية الموقع (SRE) أدوات برمجية لتتبع الأخطاء في التطبيق والاستجابة لها تلقائيًا.
التشبع
التشبع يشير إلى سعة التطبيق في الوقت الفعلي. وعادةً ما يؤدي المستوى العالي من التشبع إلى تدهور الأداء. يقوم مهندسو موثوقية الموقع بمراقبة مستوى التشبع والتأكد من أنه أقل من حد معين.
ما المقاييس الأساسية لهندسة موثوقية الموقع؟
تقوم فرق هندسة موثوقية الموقع (SRE) بقياس جودة تقديم الخدمة والموثوقية باستخدام المقاييس التالية.
أهداف مستوى الخدمة
الأهداف على مستوى الخدمة (SLOs) هي أهداف محددة وقابلة للقياس بطريقة كمية والتي تثق في أن البرنامج يمكن أن يحققها بتكلفة معقولة مقارنةً بمقاييس أخرى، مثل ما يلي:
- وقت التشغيل أو الوقت الذي يعمل فيه النظام
- معدل نقل النظام
- مخرجات النظام
- معدل التنزيل أو السرعة التي يتم بها تحميل التطبيق
الهدف على مستوى الخدمة (SLO) يعد بالتسليم من خلال البرمجيات إلى العميل. على سبيل المثال، يمكنك تعيين SLO لوقت تشغيل بنسبة 99.95٪ لتطبيق توصيل الطعام لشركتك.
مؤشرات مستوى الخدمة
مؤشرات مستوى الخدمة (SLIs) هي قياسات فعلية للمقاييس التي يحددها هدف على مستوى الخدمة (SLO). في مواقف الحياة الواقعية، قد تحصل على قيم تطابق الهدف على مستوى الخدمة (SLO) أو تختلف عنه. على سبيل المثال، تطبيقك قيد التشغيل ويعمل بنسبة 99.92% من الوقت، وهو أقل من الهدف على مستوى الخدمة (SLO) المحدد.
اتفاقيات مستوى الخدمة
اتفاقيات مستوى الخدمة (SLAs) هي وثائق قانونية توضح ما سيحدث عندما لا يتم استيفاء اتفاقية أو أكثر من اتفاقيات مستوى الخدمة. على سبيل المثال، تنص اتفاقية مستوى الخدمة (SLA) على أن الفريق الفني سيحل مشكلة عميلك في غضون 24 ساعة بعد استلام التقرير. إذا لم يتمكن فريقك من حل المشكلة خلال المدة المحددة، فقد تكون ملزمًا برد أموال العميل.
ميزانيات الأخطاء
تعتبر ميزانيات الأخطاء هي التسامح مع عدم الامتثال لاتفاقية مستوى الخدمة (SLA). على سبيل المثال، يعني وقت التشغيل بنسبة 99.95% في اتفاقية مستوى الخدمة (SLA) أن وقت التعطل المسموح به هو 0.05%. إذا تجاوز وقت تعطل البرنامج ميزانية الخطأ، فإن فريق البرمجيات يكرس جميع الموارد والاهتمام لتثبيت التطبيق.
كيف تعمل هندسة موثوقية الموقع؟
تتضمن هندسة موثوقية الموقع (SRE) مشاركة مهندسي موثوقية الموقع في فريق برمجيات. يحدد فريق هندسة موثوقية الموقع (SRE) المقاييس الأساسية لهندسة موثوقية الموقع (SRE) وينشئ ميزانية خطأ يحددها مستوى تحمل المخاطر في النظام. إذا كان عدد الأخطاء منخفضًا، فيمكن لفريق التطوير إصدار ميزات جديدة. أما إذا تجاوزت الأخطاء ميزانية الخطأ المسموح بها، فإن الفريق يعلق التغييرات الجديدة ويقوم بحل المشكلات الحالية.
على سبيل المثال، يستخدم مهندس موثوقية الموقع خدمةً لمراقبة مقاييس الأداء واكتشاف الخلل في سلوك التطبيق. إذا كانت هناك مشكلات في التطبيق، يُرسل فريق هندسة موثوقية الموقع (SRE) تقريرًا إلى فريق هندسة البرمجيات. يقوم المطورون بإصلاح الحالات المبلغ عنها ونشر التطبيق المحدث.
DevOps
DevOps هي ثقافة برمجية تكسر الحدود التقليدية لفرق التطوير والتشغيل. مع DevOps، لم يعد المطورون ومهندسو العمليات يعملون في مستودعات. بدلاً من ذلك، يستخدمون أدوات برمجية لتحسين التعاون ومواكبة الوتيرة السريعة لإصدارات تحديث البرامج.
هندسة موثوقية الموقع (SRE) مقارنةً مع DevOps
هندسة موثوقية الموقع (SRE) هو التنفيذ العملي لـ DevOps. يوفر DevOps الأساس الفلسفي لما يجب القيام به للحفاظ على جودة البرامج وسط الجدول الزمني للتطوير المختصر بشكل متزايد. تقدم هندسة موثوقية الموقع إجابات لكيفية تحقيق نجاح DevOps. تضمن هندسة موثوقية الموقع (SRE) أن يحقق فريق DevOps التوازن الصحيح بين السرعة والاستقرار.
ما مسؤوليات مهندس موثوقية الموقع؟
مهندس موثوقية الموقع هو خبير تكنولوجيا معلومات يستخدم أدوات الأتمتة في مراقبة ومتابعة موثوقية البرامج في بيئة الإنتاج. ويتمتع أيضًا بالخبرة في تحديد المشكلات الموجودة في البرامج وكتابة التعليمات البرمجية لإصلاحها. وعادةً يكون مسؤول سابق في النظام أو مهندس تشغيل يتمتع بمهارات جيدة في التعليمات البرمجية. فيما يلي بعض مسؤوليات موثوقية الموقع.
العمليات
يقضي مهندسو موثوقية الموقع قرابة نصف وقتهم في أعمال العمليات. يتضمن ذلك العديد من المهام، مثل ما يلي:
- الاستجابة لحوادث الطوارئ
- إدارة التغيير
- إدارة البنية الأساسية لتكنولوجيا المعلومات
يستخدم المهندسون أدوات SRE لأتمتة العديد من مهام العمليات وزيادة كفاءة الفريق.
دعم الأنظمة
يعمل مهندسو موثوقية الموقع بشكل وثيق مع فريق التطوير لإنشاء ميزات جديدة وتحقيق الاستقرار في أنظمة الإنتاج. إنهم ينشئون عملية هندسة موثوقية الموقع (SRE) لفريق البرنامج بأكمله ولديهم القدرة على دعم مشكلات التصعيد. والأهم من ذلك، توفر فرق موثوقية الموقع إجراءاتٍ موثقةً لدعم العملاء لمساعدتهم في التعامل بفعالية مع الشكاوى.
تحسين العملية
يعمل مهندسو موثوقية الموقع على تحسين دورة حياة تطوير البرامج من خلال إجراء مراجعات ما بعد الحوادث. يوثق فريق هندسة موثوقية الموقع (SRE) جميع مشكلات البرامج والحلول ذات الصلة في قاعدة معارف مشتركة. يساعد هذا فريق البرنامج على الاستجابة بكفاءة لمشكلات مماثلة في المستقبل.
ما أدوات هندسة موثوقية الموقع الشائعة؟
تستخدم فرق هندسة موثوقية الموقع (SRE) أنواعًا مختلفةً من الأدوات لتسهيل المراقبة والمتابعة والاستجابة للحوادث.
منسق الحاويات
يستخدم مطورو البرامج منسق حاويات لتشغيل تطبيقات الحاويات على أنظمة أساسية مختلفة. تخزن تطبيقات الحاويات ملفات التعليمات البرمجية والموارد ذات الصلة داخل حزمة واحدة تسمى الحاوية. على سبيل المثال، يستخدم مهندسو البرمجيات خدمة Kubernetes المرنة بـ Amazon (Amazon EKS) في تشغيل التطبيقات السحابية وتوسعة نطاقها.
أدوات الإدارة عند الطلب
أدوات الإدارة عند الطلب هي برمجيات تسمح لفرق هندسة موثوقية الموقع (SRE) بتخطيط وترتيب وإدارة موظفي الدعم الذين يتعاملون مع مشكلات البرامج المرصودة. تستخدم فرق هندسة موثوقية الموقع (SRE) البرنامج لضمان وجود فريق دعم دائمًا في وضع الاستعداد لتلقي تنبيهات في الوقت المناسب بشأن مشكلات البرامج.
أدوات الاستجابة للحوادث
تضمن أدوات الاستجابة للحوادث مسار تصعيد واضحًا لمشكلات البرمجيات المكتشفة. تستخدم فرق هندسة موثوقية الموقع (SRE) أدوات الاستجابة للحوادث لتصنيف شدة الحالات المبلغ عنها والتعامل معها على الفور. يمكن أن توفر الأدوات أيضًا تقارير تحليل ما بعد الحادث لمنع حدوث مشكلات مماثلة مرةً أخرى.
أدوات إدارة التكوين
أدوات إدارة التكوين هي برامج تعمل على أتمتة سير عمل البرامج. فرق هندسة موثوقية الموقع (SRE) تستخدم هذه الأدوات لإزالة المهام المتكررة وتصبح أكثر إنتاجية. على سبيل المثال، يستخدم مهندسو موثوقية الموقع AWS OpsWorks في إعداد الخوادم وإدارتها تلقائيًا في بيئات AWS.
كيف تساعد AWS في هندسة موثوقية الموقع؟
خدمات إدارة وحوكمة AWS توفر الأدوات اللازمة لفريق البرامج لإنشاء التطبيقات الموزعة وتوسعة نطاقها ونشرها بدون المساس بموثوقية النظام. فريق هندسة موثوقية الموقع (SRE) يستخدم العديد من خدمات الإدارة والحوكمة من AWS لمراقبة موارد الحوسبة المحلية وموارد AWS وإدارتها.
- AWS Service Catalog يسمح لفرق هندسة موثوقية الموقع (SRE) بفهرسة خدمات تكنولوجيا المعلومات وإدارتها ونشرها بسرعة.
- AWS Systems Manager يوفر مركز إدارة مركزي خاص بمهندسي موثوقية الموقع لاكتساب رؤى تشغيلية حول موارد حوسبة البرامج.
- AWS Proton هي أداة إدارة آلية تختص بنشر تطبيقات الحاويات وتطبيقات الخوادم.
ابدأ استخدام هندسة موثوقية الموقع على AWS عن طريق إنشاء حساب AWS اليوم.
الخطوات التالية على AWS
ابدأ الإنشاء باستخدام هندسة موثوقية الموقع في وحدة إدارة تحكم AWS.