هندسة الأداء

يشمل هندسة الأداء التقنيات المُطبقة خلال دورة حياة تطوير الأنظمة لضمان تلبية المتطلبات غير الوظيفية للأداء (مثل الإنتاجية ، وزمن الاستجابة ، واستخدام الذاكرة ). ويُشار إليها أيضاً بهندسة أداء الأنظمة ضمن هندسة الأنظمة ، وهندسة أداء البرمجيات أو هندسة أداء التطبيقات ضمن هندسة البرمجيات .

مع تزايد الاعتراف بالصلة بين نجاح التطبيقات ونجاح الأعمال، لا سيما في مجال تطبيقات الهواتف المحمولة، اكتسبت هندسة أداء التطبيقات دورًا وقائيًا وتحسينيًا [ 1 ] ضمن دورة حياة تطوير البرمجيات. ولذلك، يُستخدم هذا المصطلح عادةً لوصف العمليات والأفراد والتقنيات اللازمة لاختبار المتطلبات غير الوظيفية بفعالية، وضمان الالتزام بمستويات الخدمة، وتحسين أداء التطبيق قبل نشره.

يشمل مصطلح هندسة الأداء أكثر من مجرد البرمجيات والبنية التحتية الداعمة، ولذلك يُفضّل استخدامه من منظور شامل. كما يتم التحقق من الالتزام بالمتطلبات غير الوظيفية بعد النشر من خلال مراقبة أنظمة الإنتاج. وهذا جزء من إدارة خدمات تقنية المعلومات (انظر أيضًا ITIL ).

أصبحت هندسة الأداء تخصصًا مستقلاً في عدد من الشركات الكبرى، حيث تُنفذ مهام منفصلة ولكنها موازية لهندسة النظم. وهي منتشرة على نطاق واسع، وتشمل أفرادًا من وحدات تنظيمية متعددة، ولكنها تتركز بشكل أساسي داخل قسم تكنولوجيا المعلومات .

أهداف هندسة الأداء

  • زيادة إيرادات الأعمال من خلال ضمان قدرة النظام على معالجة المعاملات ضمن الإطار الزمني المطلوب
  • القضاء على فشل النظام الذي يتطلب إلغاءه وشطب جهود تطوير النظام بسبب فشل تحقيق أهداف الأداء
  • القضاء على تأخير نشر النظام بسبب مشاكل الأداء
  • التخلص من إعادة العمل غير الضرورية على النظام بسبب مشاكل الأداء
  • التخلص من جهود ضبط النظام غير الضرورية
  • تجنب تكاليف اقتناء الأجهزة الإضافية وغير الضرورية
  • تقليل تكاليف صيانة البرامج المتزايدة نتيجة لمشاكل الأداء في بيئة الإنتاج
  • تقليل تكاليف صيانة البرامج المتزايدة نتيجة لتأثر البرامج بإصلاحات الأداء المؤقتة.
  • تقليل النفقات التشغيلية الإضافية لمعالجة مشكلات النظام الناتجة عن مشاكل الأداء
  • تحديد الاختناقات المستقبلية من خلال المحاكاة على النموذج الأولي
  • زيادة قدرة الخادم

نهج هندسة الأداء

نظراً لتطبيق هذا المنهج ضمن منهجيات متعددة، ستتم الأنشطة التالية ضمن مراحل محددة بشكل مختلف. مع ذلك، إذا تم استخدام مراحل عملية التكامل العقلاني الموحد (RUP) كإطار عمل، فستتم الأنشطة على النحو التالي:

خلال المرحلة المفاهيمية الأولى لأي برنامج أو مشروع، يتم تحديد العمليات التجارية الأساسية . وعادةً ما تُصنّف هذه العمليات على أنها أساسية بناءً على قيمتها الإيرادية، أو وفورات التكاليف، أو أي قيمة تجارية أخرى مُحددة. ويتم هذا التصنيف من قِبل وحدة الأعمال، وليس قسم تقنية المعلومات. وفي هذه المرحلة، يتم تحديد ووصف المخاطر عالية المستوى التي قد تؤثر على أداء النظام. ومن الأمثلة على ذلك مخاطر الأداء المعروفة لنظام مورد معين. وأخيرًا، يتم تحديد أنشطة الأداء والأدوار والمخرجات لمرحلة التوسع. وتُدمج الأنشطة وتوزيع الموارد في خطط مشروع مرحلة التوسع.

شرح مفصل

خلال هذه المرحلة المحورية، تُقسّم العمليات التجارية الأساسية إلى حالات استخدام أساسية . وسيتم تقسيم حالات الاختبار، حسب الحاجة، إلى انتقالات بين صفحات (شاشات) منفردة. وهذه هي حالات الاستخدام التي ستخضع لاختبارات الأداء المعتمدة على البرامج النصية .

تُعرف المتطلبات غير الوظيفية، أو NFR، بأنها نوع من المتطلبات المتعلقة بهندسة الأداء. فبينما يتعلق المتطلب الوظيفي بالعمليات التجارية التي سيتم تنفيذها، يتعلق المتطلب غير الوظيفي المتعلق بالأداء بمدى سرعة تنفيذ تلك العمليات التجارية في ظل ظروف محددة.

بناء

في بداية هذه المرحلة، يلزم القيام بعدد من الأنشطة المتعلقة بأدوات قياس الأداء. وتشمل هذه الأنشطة ما يلي:

  • تحديد أعضاء فريق التطوير الرئيسيين كخبراء في مجال الأدوات المختارة.
  • حدد أداة تحليل الأداء لبيئة اختبار وحدة التطوير/المكونات.
  • حدد أداة اختبار أداء الوحدة (المكونات) الآلية لبيئة اختبار وحدة التطوير/المكونات؛ يتم استخدام هذا عندما لا توجد واجهة مستخدم رسومية بعد لتشغيل المكونات قيد التطوير.
  • حدد أداة آلية لتشغيل وحدة (مكونات) جانب الخادم لبيئة اختبار وحدة التطوير/المكونات.
  • حدد أداة آلية متعددة المستخدمين تعتمد على البرامج النصية من البداية إلى النهاية لبيئة اختبار وحدة التطوير/المكونات؛ يتم استخدام هذا لتنفيذ حالات الاستخدام التي تعتمد على الشاشة.
  • حدد أداة تحميل بيانات اختبار قاعدة البيانات لبيئة اختبار وحدة التطوير/المكونات؛ هذا مطلوب لضمان أن يختار مُحسِّن قاعدة البيانات مسارات التنفيذ الصحيحة ولتمكين إعادة تهيئة قاعدة البيانات وإعادة تحميلها حسب الحاجة.
  • قم بنشر أدوات تحسين الأداء لفريق التطوير.
  • يجب تقديم عروض توضيحية وتدريب لأعضاء فريق التطوير حول الأدوات المختارة.

لا يُجري فريق اختبار الأداء عادةً اختبارات الأداء في بيئة التطوير، بل في بيئة ما قبل النشر مُخصصة ومُهيأة لتكون أقرب ما يُمكن إلى بيئة الإنتاج المُخطط لها. يُجري هذا الفريق اختبارات الأداء على حالات الاختبار ، للتحقق من توافق حالات الاستخدام الحرجة مع المتطلبات غير الوظيفية المُحددة. كما يُجري الفريق اختبارات التحميل على الحمل المُتوقع (المتوسط) بالإضافة إلى حمل الذروة. وغالبًا ما يُجري اختبارات الضغط لتحديد نقاط الاختناق في النظام. تُرسل البيانات المُجمعة والتحليلات إلى الفريق المسؤول عن ضبط الأداء . وعند الضرورة، يُضبط النظام لجعل الاختبارات غير المُطابقة مُتوافقة مع المتطلبات غير الوظيفية.

إذا طُبقت هندسة الأداء بشكل صحيح في كل مرحلة من مراحل المشروع حتى الآن، فمن المأمول أن يكون ذلك كافيًا لحصول النظام على شهادة الأداء. مع ذلك، إذا وُجدت، لسبب ما (ربما لعدم تطبيق ممارسات هندسة الأداء السليمة)، اختبارات لا يمكن ضبطها لتتوافق مع المعايير، فسيكون من الضروري إعادة أجزاء من النظام إلى مرحلة التطوير لإعادة هيكلتها. في بعض الحالات، يمكن حل المشكلة بإضافة أجهزة إضافية، لكن إضافة المزيد من الأجهزة يؤدي سريعًا إلى تناقص العائد.

انتقال

خلال هذه المرحلة النهائية، يتم نشر النظام في بيئة الإنتاج. ويتطلب ذلك عدداً من الخطوات التحضيرية، منها:

  • تهيئة أنظمة التشغيل والشبكة والخوادم (التطبيقات، والويب، وقواعد البيانات، وموازن الأحمال، وما إلى ذلك) وأي برامج لإدارة قوائم انتظار الرسائل وفقًا لقوائم التحقق الأساسية والتحسينات المحددة في بيئة اختبار الأداء.
  • ضمان نشر جميع برامج مراقبة الأداء وتكوينها.
  • تشغيل الإحصائيات على قاعدة البيانات بعد اكتمال تحميل بيانات الإنتاج

بمجرد نشر النظام الجديد، تتولى العمليات الجارية أنشطة الأداء، بما في ذلك:

  • التحقق من أن تقارير الأداء الأسبوعية والشهرية تشير إلى أن حالات الاستخدام الحرجة تعمل ضمن معايير المتطلبات غير الوظيفية المحددة
  • في حال كانت حالات الاستخدام لا تندرج ضمن معايير المتطلبات غير الوظيفية، يُرجى الإبلاغ عن العيوب.
  • تحديد الاتجاهات المتوقعة من التقارير الشهرية والفصلية، وتنفيذ أنشطة إدارة تخطيط القدرات على أساس فصلي.

إدارة الخدمات

في المجال التشغيلي (نشر ما بعد الإنتاج)، تركز هندسة الأداء بشكل أساسي على ثلاثة مجالات: إدارة مستوى الخدمة ، وإدارة السعة ، وإدارة المشكلات .

إدارة مستوى الخدمة

في مجال إدارة مستوى الخدمة، يهتم هندسة الأداء باتفاقيات مستوى الخدمة ومراقبة الأنظمة المرتبطة بها، والتي تهدف إلى التحقق من الالتزام بمستوى الخدمة، واكتشاف المشكلات، وتحديد الاتجاهات. على سبيل المثال، عند تطبيق مراقبة المستخدمين الفعليين، يُمكن ضمان تنفيذ معاملات المستخدمين بما يتوافق مع المتطلبات غير الوظيفية المحددة. يتم تسجيل وقت استجابة المعاملات في قاعدة بيانات، مما يسمح بتشغيل الاستعلامات والتقارير بناءً على البيانات. وهذا يُتيح تحليل الاتجاهات، وهو أمر مفيد لإدارة السعة. عندما تخرج معاملات المستخدمين عن النطاق المسموح به، يجب أن تُصدر تنبيهات لتوجيه الانتباه إلى الموقف.

إدارة السعة

في إدارة السعة، يركز هندسة الأداء على ضمان التزام الأنظمة بمعايير الأداء. وهذا يعني إجراء تحليل للاتجاهات على البيانات التاريخية المُولَّدة من المراقبة، بحيث يمكن التنبؤ بفترة عدم الامتثال في المستقبل. على سبيل المثال، إذا أظهر النظام اتجاهًا نحو تباطؤ معالجة المعاملات (والذي قد يكون ناتجًا عن تزايد أحجام مجموعات البيانات، أو زيادة عدد المستخدمين المتزامنين، أو عوامل أخرى)، فسيصل النظام في مرحلة ما إلى مرحلة لا يفي فيها بالمعايير المحددة في اتفاقيات مستوى الخدمة. وتتولى إدارة السعة مسؤولية ضمان إضافة سعة إضافية قبل تلك المرحلة (وحدات معالجة مركزية إضافية، وذاكرة أكبر، وفهرسة جديدة لقاعدة البيانات، وما إلى ذلك) لإعادة ضبط خطوط الاتجاه وضمان بقاء النظام ضمن نطاق الأداء المحدد.

إدارة المشكلات

في مجال إدارة المشكلات، تركز ممارسات هندسة الأداء على حل السبب الجذري للمشكلات المتعلقة بالأداء. وتشمل هذه الممارسات عادةً ضبط النظام، أو تغيير معلمات نظام التشغيل أو الجهاز، أو حتى إعادة هيكلة برامج التطبيقات لمعالجة ضعف الأداء الناتج عن سوء التصميم أو ممارسات البرمجة الخاطئة.

يراقب

لضمان وجود تغذية راجعة مناسبة تُؤكد استيفاء النظام لمعايير الأداء المحددة في متطلبات الأداء غير الوظيفية، يحتاج أي نظام رئيسي إلى نظام فرعي للمراقبة. ويتم تحديد تخطيط وتصميم وتركيب وتكوين والتحكم في نظام المراقبة الفرعي من خلال عملية مراقبة مُحددة بشكل مناسب. وتتلخص فوائد ذلك فيما يلي:

  • من الممكن وضع اتفاقيات مستوى الخدمة على مستوى حالة الاستخدام.
  • من الممكن تشغيل وإيقاف المراقبة في نقاط دورية أو لدعم حل المشكلات.
  • فهو يُمكّن من إنشاء تقارير دورية.
  • فهو يتيح القدرة على تتبع الاتجاهات بمرور الوقت، مثل تأثير زيادة أحمال المستخدمين ونمو مجموعات البيانات على أداء مستوى حالة الاستخدام.

لا يمكن التقليل من أهمية عنصر تحليل الاتجاهات في هذا النظام. فهذه الخاصية، عند تطبيقها بشكل صحيح، ستُمكّن من التنبؤ بموعد تجاوز تطبيق معين، مع تزايد أحمال المستخدمين ومجموعات البيانات المتنامية، لمتطلبات الأداء غير الوظيفية المحددة لحالة استخدام معينة. وهذا يسمح بإدارة الميزانية بشكل سليم، وتوفير الموارد اللازمة، ونشرها لضمان استمرار تشغيل النظام ضمن حدود متطلبات الأداء غير الوظيفية.

انظر أيضاً

مراجع

  1. "دروس مستفادة من قطاع البنوك في مجال الاستعانة بمصادر خارجية لخدمات الاختبار"، غارتنر. 2 أغسطس 2012.

للمزيد من القراءة