عندما تحتاج المؤسسات إلى إنشاء تطبيق، فإن أحد أهم القرارات التي يتعين على قادتها اتخاذها هو اختيار نوع التطوير البرمجي الذي سيتم استخدامه. على الرغم من وجود العديد من البنى البرمجية للاختيار من بينها، فإن البنى البرمجية عديمة الخوادم والخدمات المصغرة تحظى بشعبية متزايدة بفضل ما توفره من قابلية عالية للتوسع، ومرونة، وكفاءة في الأداء. بالإضافة إلى ذلك، مع توقع مضاعفة الإنفاق على الخدمات السحابية خلال السنوات الأربع المقبلة، فإن كل من الخدمات عديمة الخوادم والخدمات المصغرة من المتوقع أن تنمو بسرعة لأنها تستخدم على نطاق واسع في بيئات الحوسبة السحابية.
في حين أن البنى عديمة الخوادم مفضلة بشكل عام من قبل الشركات الناشئة والشركات التي تحتاج إلى البناء السريع والتوسع بسرعة، فإن الخدمات المصغرة أكثر شيوعًا لدى المؤسسات التي تتطلب إدارة عملية أكثر للبنية التحتية الخلفية. تُقدِّم جميع الشركات الرائدة في مجال تكنولوجيا الحوسبة السحابية حلولًا عديمة الخوادم وخدمات مصغرة، بما في ذلك Microsoft (Azure) وAmazon (AWS Lambda) وIBM وGoogle Cloud.
فيما يلي نظرة أكثر تعمقًا على ما يجعل الخدمات عديمة الخوادم والخدمات المصغرة فريدة من نوعها وكيفية اختيار أيهما مناسب لك.
الحوسبة عديمة الخوادم، المعروفة أيضًا باسم البنية عديمة الخادم أو الحوسبة عديمة الخوادم، هو نهج لتطوير البرامج يتيح للمطورين إنشاء وتشغيل كود التطبيق دون الحاجة إلى القلق بشأن إدارة البنية التحتية الأساسية.
في بيئة عديمة الخوادم، يتم إسناد مهام الصيانة الروتينية مثل تثبيت أنظمة التشغيل (OS) وتحديثات البرامج وإدارة الأمان والمراقبة وغيرها إلى مزود خدمة سحابية (CSP).
على الرغم من اسمها، لا يعني إطار العمل بدون خادم الحوسبة بدون خوادم. ومع ذلك، في المنصات عديمة الخوادم، يتولى مزود الخدمة السحابية (بدلاً من المطور) مهمة توفير الخوادم بدلًا من المطور، مما يمكِّنه من التركيز على الكود ومنطق الأعمال. ومن المزايا الأخرى للتطبيقات عديمة الخوادم أنها تسمح لمزودي السحابة بتوفير الموارد حسب الطلب، وهو أمر أكثر مرونة وفعالية من حيث التكلفة. ومع عدم وجود خادم، تبدأ عملية الفوترة عند بدء تنفيذ التعليمات البرمجية وتنتهي عند انتهاءها. إلى جانب البنية الأساسية كخدمة (IaaS) ، والوظيفة كخدمة (FaaS) ، أصبحت الخدمات بدون خادم بمثابة خدمة سحابية رائدة.
الخدمات المصغرة، والمعروفة أيضًا باسم بنية الخدمات المصغرة، هي النهج البنائي للحوسبة السحابية حيث يتكون التطبيق بأكمله من العديد من الأجزاء الأصغر المستقلة والمترابطة. غالبًا ما تحتوي تطبيقات الخدمات المصغرة على مجموعة خاصة بها تتضمن قاعدة بيانات ونموذج إدارة قاعدة بيانات.
تتواصل الخدمات المصغرة باستخدام مزيج من عمليات نقل الحالة التمثيلية (واجهات برمجة تطبيقات REST)، وبث الأحداث، ووسطاء الرسائل. عادةً ما يتم تصنيف الخدمات المصغرة حسب قدرات الأعمال الخاصة بها (على سبيل المثال، الخدمات المصغرة لمحركات البحث أو معالجة الطلبات عبر الإنترنت)، مع وجود خط يفصل بين الخدمات يسمى السياق المحدود.
وكما هو الحال مع الحوسبة بلا خادم، ترتبط شعبية الخدمات المصغرة ارتباطاً وثيقاً بالبنية التحتية السحابية. مع النمو الهائل في حالات استخدام البنية التحتية السحابية في جميع أنحاء العالم، من المتوقع أن يصل الإنفاق على الخدمات المصغرة إلى 6 مليارات دولار أمريكي في السنوات الأربع المقبلة.
في حين أن الخدمات المصغرة غالبًا ما يتم الحديث عنها في سياق تعريفها المعماري، فقد يكون من الأسهل فهم قيمتها التجارية من خلال النظر إليها عبر عدسة أبرز مزاياها المؤسسية:
تشترك كل من البنى عديمة الخوادم والخدمات المصغرة في هدف تعزيز مرونة التطبيقات المعقدة وقابليتها للتوسع. وفي حين أنهما تتشاركان في العديد من أوجه التشابه، إلا أن هناك بعض الاختلافات المهمة التي يجب أخذها في الاعتبار، يشمل ذلك ما يلي:
تُعَد كل من الخدمات عديمة الخوادم والخدمات المصغرة "قابلة للتوسع بصورة كبيرة"، مما يعني أنها تمكّن الحلول البرمجية من إضافة مستخدمين مع تحقيق مستوى عالٍ من الأداء.
يكمن الفرق في مستوى التحكم مقابل مستوى الأتمتة الذي تقدمه البنيتان للمؤسسة. تمكّن التقنيات عديمة الخوادم من توسيع نطاق الوظائف الفردية تلقائيًا بناءً على الأحداث المُحفِّزة، بينما تسمح الخدمات المصغرة بتوسيع نطاق كل خدمة بشكل مستقل عند الطلب. في حين أن نهج الخدمات المصغرة يتطلب مزيدًا من التهيئة اليدوية، فإنه يمنح المطورين أيضًا مزيدًا من التحكم.
مرة أخرى، عندما يتعلق الأمر بالتطوير، فإن الفرق بين تنفيذ الحوسبة عديمة الخوادم والخدمات المصغرة يعود إلى مستوى التحكم الذي تتطلبه مؤسستك.
تحتاج الخدمات المصغرة إلى إنشاء كل خدمة ووظيفة واختبارها ونشرها بشكل مستقل باستخدام حاوية مثل تلك التي تم إنشاؤها بواسطة Docker و/أو منصة تنسيق حاويات مثل Kubernetes. في حين أن هذا النهج يوفر قابلية تخصيص أكبر من الحوسبة عديمة الخوادم، فإنه يتطلب أيضًا مزيدًا من التنسيق والوقت والإشراف من المطورين.
من ناحية أخرى، صُمِمَت الحوسبة عديمة الخوادم من أجل دورات تطوير ونشر سريعة ذات مرونة عالية وتعقيد أقل. في البنية عديمة الخوادم، يتم إسناد إدارة البنية التحتية الأساسية — مثل تثبيت نظام التشغيل وتكوينه وإدارة الخادم وتحديث البرامج — إلى مقدم خدمات سحابية. يتيح ذلك تجميع وظائف التطبيق ونشرها وتوسيع نطاقها تلقائيًّا.
في البنية عديمة الخادم، يتولى طرف ثالث (عادةً يكون مقدم خدمات سحابية) إدارة جميع عمليات التوفير والإدارة والتوسع للبنية التحتية، مما يُمكّن المطورين من التركيز بشكل حصري على منطق الأعمال وكتابة التعليمات البرمجية ونشرها.
بالإضافة إلى ذلك، في النموذج عديم الخوادم، يتم تشغيل الكود بالقرب من المستخدم، مما يقلل من زمن الانتقال ويحسن السرعة والأداء. ومع ذلك، في حين يمكن للمطورين التركيز بشكل أكبر على كتابة التعليمات البرمجية في نموذج عديم الخادم، إلا أنهم لا يتحكمون إلا قليلًا أو لا يتحكمون في البنية التحتية الأساسية على الإطلاق، مثل نظام التشغيل أو توفير الخوادم.
في بنية الخدمات المصغرة، يتعين على المطورين إدارة المجموعة التي تدعم كل خدمة مصغرة يخططون لنشرها. يتضمن ذلك أي بنية تحتية وعمليات تطوير وتكوينات للشبكة قابلة للتطبيق. في حين أن الخدمات المصغرة توفر تحكمًا أكبر في بيئة التطوير، فإنها تتطلب أيضًا مستوى أعلى من الخبرة للمطورين عندما يتعلق الأمر بعمليات التطوير، وهي المنهجية التي تُمكّن تطوير التطبيقات.
تشير دقة التجزئة إلى مدى تفكيك النظام إلى أجزاء أصغر. وتُعتبر كل من بنى الحوسبة عديمة الخوادم و الخدمات المصغرة أكثر دقة في التجزئة من سابقتها، البنية المتجانسة.
تجمع البنية المتجانسة بين جميع وظائف التطبيق، مثل واجهة المستخدم والمنطق وعمليات قاعدة البيانات، وهي الأجزاء التي تفصلها بنيتا الحوسبة بلا خادم والخدمات المصغرة. كانت بساطة البنية المتجانسة — ولا تزال — جذابة لبعض المؤسسات التي تحتاج إلى تطوير تطبيقات بسيطة ذات تركيز أحادي.
البنية القائمة على الخدمات المصغرة هي بنية أكثر دقة من البنية المتجانسة، ولكنها ليست بنفس دقة الحوسبة بلا خادم. تعمل بنية الخدمات المصغرة على تقسيم التطبيقات إلى خدمات أصغر وأكثر استقلالية يمكن نشرها بشكل منفصل. بنية الحوسبة بلا خادم هي الأكثر دقة في التجزئة. تقسم النماذج عديمة الخوادم كل تطبيق إلى وظائف فردية تكون أصغر حتى من الخدمات. في البنية بدون خادم، تمثل كل دالة جزءًا من منطق العمل ولا يتم تنفيذها إلا عندما يتم تشغيلها بواسطة حدث معين
في بيئة بدون خادم، يتم إسناد إدارة البنية التحتية الحيوية اللازمة لتطوير ونشر التطبيق إلى مقدم خدمات سحابية، بما في ذلك بيئة التشغيل — البيئة التي تتم فيها برمجة التطبيق أو الخدمة للتشغيل. هذا يعني أن البيانات التي يتم تخزينها أثناء تنفيذ وظيفة تفقد في اللحظة التي تكتمل فيها الوظيفة.
من ناحية أخرى، يتم تشغيل بنى الخدمات المصغرة غالبًا على أجهزة افتراضية مخصصة، مما يُمكّنها من تخزين حالتها.
غالبًا ما تكون بنيات الخدمات المصغرة أقل فعالية من حيث التكلفة من البنى عديمة الخوادم بسبب نماذج الفوترة الخاصة بها. بينما تتم فوترة الوظائف بدون خادم وفقًا لعدد الأحداث التي تؤدي إلى نشر التعليمات البرمجية، تتطلب الخدمات المصغرة دفع التكاليف مقدمًا بناءً على توفير البنية التحتية والموارد الأخرى.
في بنية الخدمات المصغرة، تدفع المؤسسات مقابل الموارد بغض النظر عما إذا كانت ستُستخدم أم لا، بينما في البنية عديمة الخوادم، يتم فوترة المستخدمين على أساس الاستخدام فقط.
اعتمادًا على احتياجات المؤسسة، من الممكن الجمع بين أفضل ما في بنيتي الخدمات بدون خادم والخدمات المصغرة في نموذج يُعرف باسم "الخدمات المصغرة بدون خوادم".
الخدمات المصغرة عديمة الخوادم هي إطار عمل معماري هجين حيث يتم بناء الخدمات المصغرة كدالة بدون خادم. تتناسب الوظائف عديمة الخوادم بشكل جيد مع الخدمات المصغرة بسبب قابليتها العالية للتوسع، ويمكن دمجها بسهولة مع الخدمات المُدارة، مما يقلل أحيانًا من تكلفة تشغيل الخدمة المصغرة.
يتيح هذا النهج للمطورين التركيز على بناء وظائف أكثر تخصصًا مما هو معتاد في بيئة بلا خادم (ولكن دون عناء إدارة البنية التحتية). يؤدي الجمع بين البنى بدون خادم والخدمات المصغرة إلى تحقيق العديد من الفوائد نفسها التي يحققها استخدام البنى بشكل مستقل، بما في ذلك قابلية التوسع وفعالية التكلفة والمرونة. ومع ذلك، هناك أيضًا بعض التحديات التي تستحق الدراسة.
مع استمرار نمو استخدام الحوسبة السحابية وبحث الشركات عن طرق جديدة للاستفادة من التقنية لخلق قيمة جديدة للأعمال، تتوسع حالات الاستخدام للخدمات المصغرة والخدمات عديمة الخوادم.
شهدت السنوات القليلة الماضية نموًا هائلًا في حالات الاستخدام التجاري لتطبيقات الذكاء الاصطناعي (AI) والتعلم الآلي (ML) ، وخاصة في مجال الذكاء الاصطناعي التوليدي. على وجه التحديد، تساعد الحوسبة عديمة الخوادم على تمكين ما يسمى بالذكاء الاصطناعي القائم على الأحداث، حيث يعمل التدفق المستمر للذكاء على تغذية قدرات صناعة القرار آنيًّا.
تجمع السحابة الهجينة بين السحابة العامة و السحابة الخاصة والبنية التحتية المحلية لإنشاء بنية تحتية مرنة، ومُحسَّنة التكلفة، وموحدة لتكنولوجيا المعلومات. تساعد الحوسبة عديمة الخوادم في دعم المؤسسات التي تتبنى استراتيجية السحابة الهجينة من خلال توفير المرونة، والقابلية للتكيف، وقابلية التوسع التي تحتاجها هذه التكنولوجيا.
تقلل الحوسبة بدون خوادم بشكل كبير من تكلفة وتعقيد كتابة ونشر التعليمات البرمجية لتطبيقات البيانات. تتيح البيئات عديمة الخوادم للمطورين التركيز على التعليمات البرمجية ومنطق الأعمال الخاص بهم، بدلًا من جميع المهام الروتينية لإدارة البنية التحتية.
في حين أن الخدمات المصغرة ليست مطلوبة لبيئات الحوسبة السحابية، فإن بناها المعمارية تجعلها مناسبة تمامًا بسبب عناصر التطبيقات الموزعة. تُمكّن بنى الخدمات المصغرة الخدمات والوظائف من العمل بشكل مستقل ونشرها لدعم التطبيق. بالإضافة إلى ذلك، تعني قابلية التوسع العالية للخدمات المصغرة إمكانية تشغيل نُسخ متعددة على خادم، وهي ميزة إضافية لبيئات الحوسبة السحابية.
التطبيقات التي تحتاج إلى معالجة البيانات في زمن شبه حقيقي، مثل تلك التي تدعم المركبات ذاتية القيادة أو بث الفيديو، مناسبة بشكل خاص للخدمات المصغرة. تمكّن الخدمات المصغرة من تنفيذ العمليات آنيًّا حتى تتمكن من تقديم مخرجات فورية، مما يسمح لهذه الأنواع من التطبيقات بالعمل.
تُعد إعادة الهيكلة — عندما تقرر المؤسسة إعادة تصميم قدرات تكنولوجيا المعلومات الخاصة بها — حالة استخدام شائعة لبنى الخدمات المصغرة. في كثير من الأحيان، تتطلع إدارات تكنولوجيا المعلومات إلى إعادة الهيكلة من نموذج متجانس إلى شيء أكثر مرونة وكفاءة، وهو ما يمكن أن توفره الخدمات المصغرة.
يعد اختيار البنية المناسبة لتطبيقك أحد أهم القرارات التي يمكن لعملك اتخاذها. فيما يلي بعض الأسئلة للمساعدة في تحديد ما إذا كانت بنيتا الحوسبة عديمة الخوادم أو الخدمات المصغرة مناسبة:
في حين أن هذه مجرد عينة من الأسئلة التي قد ترغب في أخذها بعين الاعتبار، إلا أنها يجب أن تساعد في وضع إطار عمل لاتخاذ قرارك.
وعادةً ما تختار الشركات التي تتطلع إلى الحركة السريعة والتكرار في كثير من الأحيان بنية عديمة الخوادم، بينما تختار الشركات التي لديها تطبيقات أكثر تعقيدًا وتطلبًا — والتي لا تمانع في دورة تطوير أطول — استخدام الخدمات المصغرة. لكن هذه تعميمات واسعة، ويجب عليك مراعاة نقاط القوة والضعف في كلتا التقنيتين قبل اتخاذ قرارك.
توفر الحوسبة دون خادم طريقة أبسط وأكثر فعالية من حيث التكلفة لإنشاء التطبيقات وتشغيلها على التقنيات السحابية. تعرَّف على IBM Cloud Code Engine، وهي عبارة عن منصة دون خادم تعمل بنظام الدفع مقابل الاستخدام. تُتيح المنصة للمطورين نشر التطبيقات وسير العمل دون خادم أو الحاجة إلى مهارات Kubernetes.