ما هي فوائد الخدمات المصغرة ، وهل ستدفع مقابل عملك؟

نشرت: 2022-01-12

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

يقول ما يقرب من 80٪ من المستخدمين الحاليين أن أعمالهم من المرجح أن تزيد من الاستثمار في الخدمات المصغرة. دفعت مزايا الخدمات المصغرة شركات Netflix و Amazon و eBay و Twitter والعديد من عمالقة التكنولوجيا الآخرين إلى الانتقال من بنية متجانسة إلى بنية الخدمات المصغرة. ولكن هل ينبغي لشركتك استخدام الخدمات المصغرة؟ يعتمد ذلك على السياق وما إذا كانت مزايا الخدمات المصغرة تفوق سلبيات تطبيقك. تقدم هذه المدونة نظرة عامة على الخدمات المصغرة مقابل النهج المتآلف وخمس فوائد رئيسية لاستخدام بنية الخدمات المصغرة. كما أنها تشارك بعضًا من تجربة الخدمات المصغرة الخاصة بـ ITRex وتقدم نصائح حول متى يجب (عدم) استخدام الشركات للخدمات المصغرة. الغوص في.

تعريف الخدمات المصغرة والمقارنة مع العمارة المتجانسة

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

الخدمات المصغرة:

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

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

ومع ذلك ، بدون استخدام بنية الخدمات المصغرة ، لم تكن أمازون قد تطورت لتصبح واحدة من أكثر الشركات قيمة في العالم (بقيمة سوقية تبلغ 1.694 تريليون دولار اعتبارًا من ديسمبر 2021). تم اتخاذ قرار الاستفادة من مزايا الخدمات المصغرة في أوائل العقد الأول من القرن الحادي والعشرين عندما أدركت أمازون أنها فشلت في التوسع بسرعة نمو قاعدة العملاء بسبب بطء التطوير ومشكلات الترميز.

استيقظت Netflix على فوائد بنية الخدمات المصغرة القائمة على السحابة في أواخر العقد الأول من القرن الحادي والعشرين بعد أن كانت غير قادرة على إرسال أقراص DVD إلى العملاء بالبريد لبضعة أيام بسبب تلف كبير في قاعدة البيانات. بعد تقسيم تطبيقاتهم إلى أكثر من 700 خدمة مصغرة ، يستطيع مهندسو Netflix اليوم نشر كود آلاف المرات يوميًا ، مما يسمح للشركة ببث حوالي 250 مليون ساعة من المحتوى يوميًا إلى أكثر من 200 مليون عضو حول العالم. ما هي الهندسة المعمارية التي استخدمها نجوم التكنولوجيا والعديد من الشركات الأخرى سابقًا ، في أيام ما قبل السحابة؟ استخدموا متراصة.

ما هي العمارة المتجانسة؟

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

  • يحتوي على قاعدة بيانات واحدة لجميع الوظائف ،
  • يقترن بإحكام ، و
  • يستخدم البيانات المركزية.

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

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

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

5 فوائد رئيسية للخدمات المصغرة

1. النشر المستقل

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

2. انخفاض نصف قطر الانفجار من الفشل

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

3. عزل البيانات

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

4. استخدام التكنولوجيا المناسبة

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

5. الكفاءة

يمكّن نهج الخدمات المصغرة الشركات من إنشاء فرق صغيرة متعددة الوظائف حول خدمة واحدة أو مجموعة من الخدمات التي يمكن أن تعمل بأسلوب رشيق. يقلل هذا النموذج من عمليات التسليم عندما يحتاج فريق ما إلى انتظار آخر لإكمال مهمته ، سواء كانت عملية نشر أو اختبار ، قبل أن يتمكنوا من بدء عملهم. مع عدم الاعتماد على فريق آخر ، تتسارع سرعة التطوير. أبلغ المتبنيون عن فوائد متعددة لاستخدام الخدمات المصغرة ، وفقًا لمسح IMB الذي شمل 1200 من المديرين التنفيذيين والمطورين لتكنولوجيا المعلومات. تشمل أهم مزايا الخدمات المصغرة التي شعروا بها ما يلي: 30٪ - ارتفاع رضا العملاء 29٪ - أمان أفضل لبيانات الشركة / العملاء 29٪ - وقت أسرع للتسويق 28٪ - تحسين أداء التطبيق 27٪ - مرونة أكبر لتوسيع الموارد أو انخفض بنسبة 26٪ - تحسين إنتاجية الموظف هل هناك أي تحديات مع الخدمات المصغرة؟ حسنًا ، كما هو مذكور في الاقتباس الشائع ، فإن الخدمات المصغرة ليست وجبة غداء مجانية. واصل القراءة.

الجزء السيئ حول الخدمات المصغرة

1. التعقيد

يزداد التعقيد المتأصل في الخدمات المصغرة مع زيادة عدد الخدمات. هذا التعقيد متعدد الجوانب ويعزى إلى ما يلي:

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

2. التكاليف

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

3. المخاطر الأمنية

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

متى (لا) تستخدم الخدمات المصغرة

وأخيرًا ، سؤالنا الأخير: متى تستحق بنية الخدمات المصغرة العناء؟ في حين أن الضجة التي تكمن وراء الخدمات المصغرة باعتبارها مناسبة بشكل طبيعي لتطبيقات السحابة الأصلية مضمونة جميعها ، فلا ينبغي أن تكون أسلوبك الافتراضي. تضع الأدبيات الأمر ببساطة: ابدأ بوحدة متراصة وقم بتقسيمها عندما تواجهك قابلية التوسع أو مشكلات استهلاك الموارد ، أو أي شيء آخر يبرر اتباع مسار الخدمات المصغرة.

فيما يلي نصائحنا الأساسية عند عدم استخدام الخدمات المصغرة:

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

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

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

حسنًا إذن ، ولكن متى تستخدم الخدمات المصغرة لجني فوائدها؟

تكون الخدمات المصغرة منطقية عندما تكون أي من العبارات الواردة أعلاه خاطئة. بعبارات أخرى:

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

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

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

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

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

تعليق ختامي

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

هل مازلت في حيرة من أمرك إذا كان ينبغي لشركتك أن تقع ضمن مزايا الخدمات المصغرة؟ تواصل مع مستشاري ITRex. سوف نساعدك على اكتشافها.


نُشر في الأصل على https://itrexgroup.com في 10 يناير 2022.