المقدمة
في إحدى تجاربي المهنية الأخيرة، شغلت منصب ممثل العميل التقني (Technical Client Representative - TCR)، وهو دور يُعنى بتمثيل العميل تقنيًا مع الجهة المطوِّرة لمشروعه. في كثير من الحالات يلجأ العملاء "غير التقنيين" إلى هذا النوع من الأدوار كآلية لحماية أعمالهم و مصالحهم و ضمان توافق الحلول التقنية مع متطلباتهم.
من أبرز المحاور التي تعاملت معها في هذا الدور هي اتفاقية مستوى الخدمة (Service Level Agreement - SLA)، وهي وثيقة رسمية تُحدد مستوى الخدمة الذي يتوقعه العميل من مزوّد الخدمة.
ما هي اتفاقية مستوى الخدمة (SLA)؟
اتفاقية مستوى الخدمة (SLA) هي عقد رسمي يُبرم بين مُزود الخدمة والعميل، تُحدَّد فيه بوضوح مستوى الخدمة المتوقع تقديمه. تشمل هذه الاتفاقية عادةً معايير الأداء مثل:
- نسبة توفّر النظام (Availability)
- زمن الاستجابة (Response Time)
- مدة حل المشاكل (Resolution Time)
- تغطية الاختبارات (Test Coverage)
تُساهم هذه المعايير في ضبط توقعات العميل وحمايته من أي قصور تقني قد يضر بمصالحه، خاصة في حال عدم امتلاكه خلفية تقنية كافية.
خلال عملي على إعداد مستند دليل العمل (Playbook)، دائما ما كان العميل يُولي اهتمام خاص للنسب المئوية التي كُنت أقوم بتحديدها و التعقيب عليها، وبالأخص نسبة التوفّر (Availability)، و كان يُريد أن تكون النسبة 100% و هو أمر شبه مستحيل تقنيًا.
لذلك نلجأ إلى استخدام مفهوم الـ High Availability، الذي يعني قُدرة النظام على العمل بشكل مستمر وبدون انقطاع لفترات طويلة مع تقليل أوقات التوقف سواء كان مخطط أو غير مخطط لها.
معادلة حساب نسبة التوفر (Availability)
تُحسب نسبة التوفر (Availability) وفق المعادلة التالية:
Availability (%) = (Total operational time / Total time) × 100
مثال عملي:
- عدد دقائق السنة: 365 يوم × 24 ساعة × 60 دقيقة = 525600 دقيقة
- إذا كان مجموع فترات التوقف في السنة 500 دقيقة فإن:
وقت التشغيل الفعلي (Total operational time) سيكون 525600 - 500 = 525100 دقيقة
إذًا: Availability (%) ≈ (525100 / 525600) × 100 ≈ 99.905%
لكن السؤال المطروح: ماذا تُمثل نسبة 99.905% من الـ availability؟ و هل تُعتبر هذه النسبة مرتفعة كفاية؟
و الإجابة تعتمد على طبيعة النظام:
- إذا كان النظام يُقدّم خدمة حسّاسة (Critical Service) مثل أنظمة الطيران أو البنوك حيث تؤدي دقيقة واحدة من التوقف إلى أضرار كبيرة، فهذه النسبة قد تكون غير كافية.
- أما إذا كان النظام يتحمل بعض التوقفات البسيطة، فقد تكون النسبة مقبولة.
و هنا يتجلى دور اتفاقية SLA التي تُحدد منذ البداية نسبة التوفر (Availability) المطلوبة والتي يجب على مُزوّد الخدمة الالتزام بها.
مفهوم "عدد التسعات - Nines" في الـ Availability
يُستخدم مصطلح "عدد التسعات" للتعبير عن درجة التوفر (Availability):
- 99.9% (تُقرأ ثلاث تسعات): يُسمح بتوقف يصل حتى 8 ساعات و 46 دقيقة سنويًا.
- 99.99% (تُقرأ أربع تسعات): يُسمح بتوقف يصل حتى 52.6 دقيقة سنويًا.
- 99.999% (تُقرأ خمس تسعات): يُسمح بتوقف لا يتجاوز 5.26 دقائق سنويًا.
كلما ارتفعت نسبة التوفر (availability) واقتربت من 100% زاد استقرار النظام و لكن في المقابل ترتفع التكلفة والتعقيد لتحقيق هذا الهدف.
لا تحتاج جميع الأنظمة للوصول إلى "خمسة تسعات"، فالأمر يعتمد على تأثير التوقف على الأعمال ومتطلبات اتفاقية مستوى الخدمة SLA.
استراتيجيات تحقيق الـ High Availability في الأنظمة الموزعة
لتحقيق الـ High Availability، تلجأ المؤسسات إلى عدة ممارسات من بينها:
- عن طريق الـ Redundancy & Replication
تتمثل هذه الاستراتيجية في مضاعفة المكونات الأساسية للنظام أو حتى النظام بأكمله، بحيث إذا حدث فشل في جزء معين، تتولى النسخة الاحتياطية العمل دون انقطاع الخدمة.
- عن طريق الـ Load Balancing
توزيع الحمل بين عدة خوادم لمنع الضغط على خادم واحد، مما يُحسن الأداء ويُقلل من فرص التعطل.
- عن طريق الـ Distributed Data Storage
يُخزّن النظام البيانات في مواقع جغرافية متعددة لتفادي فقدان البيانات أو توقف الخدمة عند حدوث مشكلة في موقع معين.
- من خلال الـ Consistency Models
الـ Consistency في الأنظمة الموزعة يُحدد كيف تُحافظ جميع نسخ البيانات على تحديثها وتطابقها:
- الـ Strong Consistency: يضمن تطابق جميع النسخ دائمًا لكنه يُقلل من الأداء و الـ availability.
- الـ Weak Consistency: يقبل بعض الاختلافات المؤقتة مقابل تحسين الأداء و الـ availability.
- الـ Eventual Consistency: جميع النسخ ستتطابق في النهاية مع موازنة جيدة بين الأداء و الـ availability.
- من خلال الـ Health Monitoring & Alerts
تتضمن مراقبة النظام بشكل مستمر للكشف المبكر عن الأعطال أو المشاكل و إرسال تنبيهات فورية، مما يسمح للفِرق التقنية بالتدخل قبل أن تتأثر الخدمة بشكل ملحوظ.
- من خلال الصيانة و التحديثات الدورية
تُساهم الصيانة المنتظمة في الحد من الأعطال غير المتوقعة وتحافظ على استقرار النظام.
- من خلال الـ Geographic Distribution
يُعزّز التوزيع الجغرافي من قدرة النظام على مقاومة الكوارث أو الانقطاعات المحلية، من خلال نشر مكوناته في مواقع مختلفة حول العالم لضمان استمرارية الخدمة للمستخدمين أينما كانوا.
في الختام
يجب التعامل مع مفهوم الـ High Availability كجزء أساسي يُؤخذ بعين الاعتبار عند تصميم الأنظمة لضمان استمرارية الخدمة بأعلى جودة ممكنة، و ليس كأرقام مجرّدة على الورق.
واختيار نسبة التوفّر (availability) المناسبة لا يتم بشكل عشوائي، بل ينطلق من فهم عميق لاحتياجات العمل، وطبيعة الخدمة، ومدى تأثير التوقف على المستخدمين.
Discussion