بعد ظهور الحوسبة السحابية وإنتشارها, وزيادة سرعات الإنترنت وعدد مستخدميها, أصبح لدى العديد القدرة على بناء أنظمة تتوسع حسب الطلب, ومن هنا بدأ إنتشار مفهوم التطبيقات المؤجرة بالخدمة أو ما يسمى بال SaaS (Software as a Service)
في هذه التدوينة سأتحدث عن بعض النواحي الإدارية والفنية بنقاط متنوعة التي تساعدك في إتخاذ قرارك في بناء نظامك أو نظام شركتك من واقع تجربتي في بناء العديد من أنظمة ال SaaS وتنفيذها في رزن.
ماهو ال SaaS
سبق لنا وأن تحدثنا عن الحوسبة السحابية وعن سهولة التحكم في المصادر الحاسوبية بزيادتها أو إنقاصها حسب الحاجة كما ويمكن عمل أنظمة تصورية (Virtual) بحيث يسهل نقلها وإلغاءها أو تغيير مصادرها بسهولة على حسب طلب كل مستخدم وهذا ما يجعل فكرة الحوسبة السحابية تنتقل إلى طور الخدمة حسب الطلب والحاجة , وهذا ما يسمح إمكانية تقديم الأنظمة على أنها خدمات ومنها تقديم التطبيقات على أنها خدمات مؤجرة , ومن أمثلة هذه التطبيقات ال Gmail حيث أن لكل مستخدم تطبيق كامل خاص به يعرض بياناته الخاصه لكن الجميع يحصلون على نفس الخدمة وقس على ذلك.
إذا فالفكرة الأساسية في ال SaaS هي بناء نظام واحد فقط يقدم خدمة مؤجرة لكل مستخدم بشكل مستقل ومنعزل عن الآخرين وبياناتهم.
فكرة ال SaaS هي مثال مشابه لمشروع الفندق !
عندما تفكر في بناء نظام SaaS أنت تقوم ببناء فندق, حيث يوجد لديك نزلاء ينزلون لغرف لديها تقريبا نفس المواصفات مع بعض الخيارات المختلفة, ولذلك ففي حال قررت أن تبني هذا النظام فعليك دائما أن تقدم أفضل خدمة من ناحية المواصفات وكذلك أسعار, بمعنى أن تكون لديك خدمة زبائن مميزة, إتاحة دائمة وفعالية, لأن الخدمة تلعب دور مهم جدا في إبقاء الزبائن معك أم لا. وهذا يعني أنك لكي تستطيع فعلا أن تقدم خدمات منخفضة الثمن ينبغي أن تكون لديك قدرة تحمل التكاليف للبيئة وخدمة الزبائن, وهذا لن يكون إلا إذا حصلت فعلا على قاعدة بيانات كبيرة من الزبائن, وقدرة مالية على تحمل فترة الإنشاء. فأنت مسؤول عن إدارة موارد الزبون, والتأكد من الحفاظ على المعلومات, والإتاحة, وهو فقط مسؤول عن الدفع والتعامل مع التطبيق. وإن موارد الحوسبة السحابية وبرغم سهولة تكبيرها وتغيرها حسب الحاجة فهي ليست بالرخيصة خصوصا إذا ما أردت توفير خدمات الحماية والنسخ الإحتياطية ونحو ذلك.
إذا ماذا علي أن أفعل, هل أبني تطبيقي SaaS أم لا ؟
خلاصة ما ذكرناه مسبقا, إذا كنت ترى أن هناك خدمة مهمة وترى أنها ستقنع العديد من المستخدمين في شرائها, فعليك في المرحلة الثانية أن تدرس عدد الزبائن المحتمل وقيمة الخدمة بالنسبة لهم, المنافسين, والتكاليف وقدرتك على توفير خدمة للزبائن.
كيف يمكنني تسعير خدمتي ؟
ليس هناك قاعدة ثابتة للتسعير, فهناك من يسعر خدمته بناء على المنافسين, وهناك من يسعر خدمته بناء على التكلفة… ولكن ما أريد أن أشير إليه هنا أن التسعير يجب أن يكون له معنى وقيمة, بمعنى إذا قمت بإنشاء خطة فينبغي أن تكون تخدم فئة من مستخدميك يرون أنها فعلا قيمة لتكون بمبلغ التسعير الذي قدمته.
خدمتك واقعية, ومرتبطة بالآخرين
الخدمة يجب أن تكون واقعية بحيث يستطيع الجميع إستخدامها على الإنترنت, فيصعب على سبيل المثال تحويل أنظمة معقدة جدا مثل أنظمة المستشفيات إلى أن تكون كذلك, ولكن يمكن توفير بعض الخدمات لتكون كذلك, كما أن دعم الترابط بين الخدمات يساعد الكثيرين على تجربة خدمتك, مثال أن توفر إمكانية إرتباط خدمتك بالمصادر المفتوحة المشهورة مثل الوورد برس ونحوها.
هل يجب علي أن أوفر قاعدة بيانات لكل زبون, أم أستخدم قاعدة بيانات مشتركة؟
هذا السؤال يتكرر دائما خصوصا وأن هناك أيضا الكثير من مزودين الحوسبة السحابية يقدمون خدمات تساعد المطورين على توفير حلول لفكرة إستخدام قاعدة بيانات وموارد مشتركة مثل تشغيل التطبيقات متعددة الآجراء على ال SQL Azure Elastic Scale للتطبيقات التي تعمل على بيئات غير ال .NET, وهذا الأمر بالتأكيد يعتمد على القدرة, فهي بنفس المنطق هل ستوفر لكل زبون غرفة, أم جناح, وهي تتعلق بقدرتك على رفع التكلفة وكذلك عدد الزبائن وطبيعة الخدمة.
فكرة تطبيقات ال SaaS في المنطقة العربية ؟
هذه المنطقة هي منطقة واعدة جدا كما أشرنا مسبقا في تدوينة الشرق الأوسط ثورة التجارة الإلكترونية , ولكن هي منطقة خطرة حيث هناك العديد من المستخدمين ليست لديهم ثقافة الإستفادة من التطبيقات عبر الدفع بنظام الإيجار, ولكن أغلب التطبيقات الحالية تقوم بإستهداف فئة عامة من مستخدمين الإنترنت بشكل شبه مجاني في المنطقة العربية ويكون نظام الدخل من خلال الإعلانات, أو تسويق الخدمات, لذلك فإن ال SaaS في هذه المنطقة مازال في مراحله الأولى وعليك أن تعي ذلك إذا ما أردت أن تستهدف هذه المنطقة, و إذا قررت أن تبني النظام بهذه الآلية فينبغي عليك إستخدام أسلوب مهجن, مثل أن تقوم بإقناع المستخدمين عن طريق التواصل المباشر معهم ولقائهم وجها لوجه, لأن إعتمادتك على نشر التطبيق في فضاء الإنترنت فقط والتسويق من خلال هذه الطريقة لن يكون ذا جدوى حقيقية.
أفكار لتحويل نظامك الحالي لنظام ال SaaS ببساطة
هناك طرق مختلفة لتحويل تطبيقك ل SaaS تكمن الفكرة الرئيسية بعزل البيانات لكل مستخدم على مستوى قاعدة البيانات و ملفات النظام, وبالتالي فإنك إذا ما قررت فعل ذلك على قاعدة بيانات موجودة ولا تدعم هذا العزل مثل ال MySQL فإن بإمكانك عمل عزل بواسطة إعطاء كل زبون مستخدم لنفس قاعدة البيانات المشتركة وعمل صلاحية على مستوى الجداول لهذا المستخدم بحيث تكون الإستعلامات والعمليات خاصة بهذا المستخدم, أما فيما يتعلق بملفات النظام فيمكن تخصيص مجلد خاص لكل مستخدم إذا لزم الأمر. ولكن هناك بالمثل أنواع مختلفة من قواعد البيانات يوجد فيها إمكانية عزل البيانات في القاعدة الواحدة, كما ويمكن إنشاء قاعدة بيانات خاصة لكل مستخدم إن كان ذلك ممكنا.
دمتم بود, إلى تدوينة أخرى