برمجة السحابة
يتطلب تصميم البرامج المخصصة للسحابة اعتبارات خاصة. اعتمادًا على نوع التطبيق والتحميل المتوقع، يمكن للمطورين الاستفادة من بعض الميزات التي يزودها موفرو السحابة لتحسين قابلية توسع البرامج وقابليتها للصيانة. يسمح استخدام أنظمة التحجيم الأوتوماتيكي وموازنات التحميل للمطورين بتنمية البنية التحتية أو تقليصها على نحوٍ ديناميكي بناءً على استخدام الأجهزة أو عامل تحميل محسوب بواسطة البرنامج.
هناك العديد من الاعتبارات التي يجب على المطور أخذها في الحسبان عند تطوير تطبيق إلى السحابة أو ترحيلها، لا سيما تلك المتعلقة بالأداء والأمان.
عوامل الأداء للتطبيقات على السحابة
تختلف البيئة في مركز البيانات الذي يركز على السحابة عما قد يستخدمه المطورون عند تصميم التطبيقات وتوزيعها على البنية الأساسية المملوكة. يجد بعض المطورون صعوبة في ضبط أداء تطبيقاتهم أو تحسينها لأنه ليس لديهم حق الوصول إلى تخطيط الأجهزة الفعلية أو المواصفات على السُحب العامة. سنحاول تعداد بعض أهم الشواغل، مع التركيز بوجهٍ خاص على العوامل التي تؤثر على أداء التطبيق على السحابة:
النطاق الترددي المورد وزمن الانتقال
الشاغل الأساسي لتطوير التطبيقات السحابية وتوزيعها هو زمن الانتقال. يجب أن يخطط المطورون لتطبيقاتهم مع مراعاة متطلبات زمن الانتقال الصارمة. ويتمثل أحد الأساليب في تحميل توزيع مواقع العملاء برمجيًا. سيسمح ذلك للمطورين بالعثور على المجموعة المثلى من مواقع مراكز البيانات التي يمكن استخدامها لتحسين أداء المستخدم النهائي واستجابته. وينطبق هذا بخاصةٍ على تطبيقات الويب، حيث يمكن أن تمثل طلبات HTTP الفردية لمحتوى الويب الثابت جزءًا مهمًا من أوقات تحميل صفحة الويب.
وبصرف النظر عن زمن الانتقال، قد يكون للتطبيقات أيضا متطلبات النطاق الترددي الصارمة، لا سيما تلك التي تتعامل مع محتوى الوسائط المتعددة الغنية مثل الصوت والفيديو. يسمح العديد من موفري خدمة السحابة لمطوري السحابة بتحديد معلمات الأداء أثناء التزويد في شكل متطلبات IOPS للحوسبة وموارد التخزين. بالإضافة إلى ذلك، يسمح العديد من مزودي السحابة للمطورين بإعداد شبكات ظاهرية. يقدم تنفيذ واعتماد الشبكات والتخزين المعرفة بالبرمجيات (التي تغطيها الوحدات اللاحقة) رؤى إضافية عن التقنيات الحديثة التي تستخدمها مراكز البيانات لإدارة نسبة استخدام الشبكة من عدة عملاء، مع إدارة المتطلبات الفردية على النحو المحدد في أهداف مستوى الخدمة للعميل (SLOs).
التقنيات المذكورة أعلاه تستهدف بالأساس المحتوى الثابت. تتمثل المشكلة الأكثر صعوبة في تحسين زمن الانتقال إلى أنظمة تخزين البيانات الموزعة، لا سيما تلك التي يتعين عليها التعامل مع عمليات الكتابة والتحديثات. سنعرف المزيد عن هذه الشواغل في الوحدات اللاحقة.
متعدد المستأجرين
تعمل التطبيقات على مراكز البيانات العامة عادةً على البنية الأساسية المشتركة. يثير هذا الجانب من الخدمات السحابية العديد من المسائل المهمة. في حين تزود تقنيات المحاكاة الافتراضية الحديثة بيئة معزولة من حيث بيئة التطبيق والأمان، فإنها عادةً لا تضمن عزل الأداء. لذلك، لا يمكن أن تضمن الموارد الظاهرية على السحب أداءً متناسقًا في جميع الأوقات. أداء المورد في وقت معين هو دالة من إجمالي التحميل على الموارد من جميع المستأجرين، والمعروف أيضًا بالتداخل من المستأجرين الآخرين الذين يتقاسمون الأجهزة نفسها.
يقدم بعض موفري خدمة السحابة، مثل Azure، للعملاء القدرة على تزويد أنواع معينة من الموارد (مثل الأجهزة الظاهرية) على أجهزة مخصصة. ويقدم ذلك الحماية ضد التقلبات الواسعة في أداء الموارد، مما يحقق أداء متناسقًا إلى حدٍ ما بالنسبة للموارد. ومع ذلك، تكلف مثيلات الأجهزة المخصصة أكثر بكثير من المثيلات العادية عند الطلب، حيث تحتاج Azure إلى تعيين خادم حصري للموارد.
تتمثل أحد الجوانب ذات الصلة في تعدد المستأجرين في مسألةتغير التزويد، حيث لا تعين طلبات مماثلة للموارد الظاهرية على السُحب العامة بصورة مماثلة على الموارد المادية، مما يتسبب في حدوث تغير في الأداء. 1 على سبيل المثال، يمكن توجيه طلبين متطابقين للأجهزة الظاهرية (VM1 وVM2) إلى جهازين فعليين مختلفين ( A وB). قد يكون للجهاز المادي (أ) أربعة مستأجرين آخرين يتنافسون على الموارد على الجهاز نفسه، بينما قد يكون للجهاز (ب) اثنين من المتنافسين فقط. يتحمل العميل الرسوم نفسها على الأجهزة الظاهرية VM1 وVM2لكن يمكن أن يواجه أداءً مختلفًا على هذه الأجهزة.
إعدادات الأمان
تخضع السُحب العامة لخطوط متجهة للهجوم المتزايد، كما رأينا في الوحدة 1. يجب أن يتوخى المطورون الحذر الشديد في ضمان اتباعهم لأفضل الممارسات والبروتوكولات والإجراءات عند توزيع التطبيقات وصيانتها على السحابة. نتيجةً لذلك، قد تُختبر نفقات الأداء الإضافية بسبب استخدام بروتوكولات الأمان التي تفرضها السحابة العامة.
نظرًا لأننا ناقشنا هذه البروتوكولات في وحدة سابقة، فلن نناقشها مرةً أخرى بالتفصيل. يجب أن تخضع أي تعليمة برمجية تُنشر على السحابة العامة لعملية صارمة من مراجعات التعليمات البرمجية المصدر اليدوية والآلية وتحليل التعليمات البرمجية، بالإضافة إلى تحليل الثغرات الأمنية الديناميكية واختبار الاختراق. تُعرض إرشادات توزيع التطبيقات على نحوٍ آمن في الصفحة التالية.
المراجع
- رحمان، إم. س وصقر، إم. إف (2010). النتائج الأولية لتزويد التغيّر في حوسبة السحابة من المؤتمر الدولي الثاني IEEE لعام 2010 بشأن تكنولوجيا حوسبة السحابة والعلوم (CloudCom)