أخبار قطاع الأعمال

تفاصيل الجلسة الحوارية الرابعة: “أفضل ممارسات استخدام الخدمات المصغرة”

انطلق منتدى التقنية الرقمية في يوم 18 أكتوبر تحت شعار “برمجيات رائدة لاقتصاد رقمي مزدهر” في نسخته الثالثة في العاصمة الرياض في المملكة العربية السعودية، برعاية معالي المهندس عبدالله بن عامر السواحه؛ وزير الاتصالات وتقنية المعلومات، رئيس مجلس إدارة هيئة الاتصالات والفضاء والتقنية.

شهد المؤتمر خمس جلسات حوارية قوية حول البرمجيات، والتحول الرقمي، وسنستعرض في هذا التقرير تفاصيل الجلسة الحوارية الرابعة؛ التي كانت بعنوان: “أفضل ممارسات استخدام الخدمات المصغرة”.

انطلق الحوار ضمن الجلسة الحوارية الرابعة بين الأستاذ سعود البازعي الذي عرّف نفسه قائلا: “أنا مهندس في جوجل وكنت أعمل سابقًا مسؤولًا عن الخدمات الرقمية في أمازون، وعملت مع شركات ناشئة شبه حكومية مدعومة من (SoftBank) وعدد قليل من الشركات الأخرى”.

وعرف بدوره الأستاذ عمر ضو البيت عن نفسه قائلا: “أنا مهندس الحلول الرئيسية في خدمات الويب الخاصة بأمازون مع التركيز على عملاء القطاع العام، لذا ساعدتهم في رحلتهم السحابية، وقبل ذلك كنت أعمل في شركة (Mckinsey & Company) لمدة خمس سنوات تقريبًا في منطقة دول مجلس التعاون الخليجي وأيضًا في جنوب شرق آسيا، بالتركيز على التحول الرقمي الواسع النطاق”.

الحوار في هذه الجلسة الحوارية الرابعة كان مشتركًا بين الطرفين وكان مليئًا بالمعلومات والتفاصيل، بداية طرح الأستاذ سعود البازعي سؤالًا حول كيف بدأ مجال الخدمات المصغرة (Microservices)، وكيف يمكن فهم تطوره السريع؟

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

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

الأستاذ سعود البازعي كان له رأي في هذه النقطة فقال: “ولكن بالنسبة للمطورين الجدد – ومن الواضح أن الكثير من رواد الأعمال يسمعون عن الخدمات المصغرة، ويعتقدون أن هذه هي المعمارية المطلوبة لأعمالهم، وحتى صدى كلمة (monolith) لا يبدو لطيفًا في معظم الحالات – هي معمارية سيئة حقًا، وهي ليست الطريقة الصحيحة للاختيار ولكنها لا تزال مفيدة في بعض الحالات، فعلى سبيل المثال إذا كنت تبدأ توًّا، فيجب أن تكون معمارية (monolith) هي الخيار الافتراضي. لأن الخدمات المصغرة تقدِّم على نحو أساسي تعقيدات معينة أو طبقات تعقيد إضافية يمكنك تجنبها من خلال وجود (monolith). لذلك، أنا أؤيد طريقة (monolith) نوعًا ما في البدايات وخاصة مع الشركات الصغيرة في عالم البرمجيات، وأحاول أن أقول إنها ليست بهذا السوء حقًا، فهي لا تزال صالحة خاصة إذا كان لديك فريق صغير أو كان تطبيقك قابلًا للإدارة وبدأت مرحلة بناء نموذج أولي أو (منتج الحد الأدنى) Minimum Viable Product – الذي يُعرف اختصارًا باسم (MVP) – فلن  تكون الخدمات المصغرة هي الخيار الصحيح، ولكن يمكنك الانتقال إلى الخدمات المصغرة إذا قررت التوسع”.

ضمن النقطة نفسها من الحوار سأل الأستاذ سعود البازعي عن مبررات الانتقال إلى الخدمات المصغرة من معمارية (monolith) ليجيب بنفسه قائلًا: “أول ما أود قوله هو لنفترض أن لديك 10 مطورين وأن هؤلاء المطورين العشرة يعملون على قاعدة التعليمات البرمجية نفسها (قاعدة الكود)؛ لذا فإن 10 هو رقم يمكن التحكم فيه، ويمكنهم التواصل في غرفة واحدة، ويمكنهم التعاون، ويمكنهم إدارة مسار واحد على نحو مثالي، ولكن بمجرد أن تنمو إلى 100 أو 200 أو مع شركة تكنولوجيا كبيرة مكونة من عشرات الآلاف ويعملون جميعًا على المنتج نفسه أو الخدمة نفسها، كيف ستدير بالضبط مسار الإصدار هذا؟ هل ستنشر كل شيء معًا في قاعدة تعليمات برمجية واحدة حيث ينتهي بك الأمر بقاعدة تعليمات برمجية معقدة للغاية، وتُجبِر الجميعَ على استخدام التكنولوجيا نفسها سواء لغة البرمجة أو إطار العمل أو أي أدوات كانت. لذا هنا تبدأ الخدمات المصغرة بظهورها كحل منطقي، حيث تقوم بتقسيم الفريق إلى فرق أصغر يمكنهم أخذ العمل على عاتقهم بالكامل وإطلاق المنتج أو التطبيق وذلك بدءًا من التطوير ووصولاً إلى إدارة الإنتاج، لذا هو أمر مبرر للغاية بأن تتوجه حينها نحو الخدمات المصغرة”.

وشارك الأستاذ عمر ضو البيت برأيه قائلًا: “نحن نسمع هذه القصص عن الشركات ذات المنشأ الرقمي مثل: Spotify وNetflix، كل هؤلاء يستخدمون هذه المنهجية بالفعل لتطوير البرمجيات ونشرها. لذلك ربط مؤلفو كتاب (Accelerator) هذه المقاييس بأداء المنظمة على أساس أنهم وجدوا أن هذه المنظمات العالية الأداء تتمتع بربحية فُضلى، ولديها أيضًا حصة سوقية كبرى ورضا أفضل للعملاء. لكن في العموم من الواضح جدًا أن المنظمات العالية الأداء أفضل بمرتين في تحقيق الربحية والنمو في السوق من المنظمات ذات الأداء المنخفض، لذا فإن تأثير الخدمات المصغرة – من حيث خفض التكاليف، وزيادة الكفاءة، وزيادة الموثوقية – له تأثير إيجابي حقًا في الاقتصاد الرقمي؛ لأنها تمكن الشركات من أن تكون أكثر مرونة وأكثر كفاءة في تحقيق المزيد من هوامش الربح ومن الواضح أن الأهم هو القدرة على تلبية احتياجات العملاء”.

زر الذهاب إلى الأعلى