البنية المتجانسة هي نموذج تطوير برمجيات تقليدي تنفذ فيه قاعدة تعليمات برمجية واحدة وظائف أعمال متعددة. في أنظمة التشغيل المتجانسة، تدير النواة جميع الوظائف. غالبًا ما تُقارن البنية المتجانسة بالخدمات المصغرة، والتي تؤدي خدمات مماثلة ولكنها تستخدم بنية مختلفة.
تتمثل إحدى طرق التفكير في البنية المتجانسة في تصور المعنى الآخر للمصطلح. عند التأمل في تصميم المباني الفعلية، نشير إلى البنية المتجانسة لوصف المنشآت المنحوتة في تكوينات صخرية ضخمة. يرتبط المعنى المرتبط بالكلمة الأساسية "متجانسة" بحقيقة أن جوهرها كله قطعة واحدة، ما يجعل تكوينها موحدًا تمامًا. يمكن إنشاء العديد من المباني المتصلة من تكوين واحد—تشترك جميعها في القاعدة الصخرية نفسها.
ينطبق هذا التشبيه بشكل جيد على مناقشتنا حول هندسة البرمجيات. في هذا السياق، تنجز البنية المتجانسة وظائف الأعمال (أي تنشئ مباني مختلفة) التي تتنوع ولكنها تتشارك في قاعدة تعليمات برمجية واحدة (أو قاعدة صخرية).
على مدار عقود من الزمان، كانت البنية المتجانسة تسيطر تمامًا على عملية تطوير البرمجيات كنموذج برمجي تقليدي. أما الآن، عند الحديث عن البنية المتجانسة يجب أن يخطر ببالك بديلها العظيم—الخدمات المصغرة—والتي تُستخدم بأعداد متزايدة.
في البرامج المتجانسة، تُحفظ جميع التعليمات البرمجية المطلوبة للتطبيقات في موقع مركزي واحد. يوفر ذلك ميزة تبسيط إضافية للمطورين نظرًا إلى أن النظام موجه لاستقبال الاتصالات بتنسيق واحد فقط. لا يتحمل النظام عبء ترجمة الاتصالات الواردة من الخدمات المختلفة. وهذا يجعل عمليات التطوير مثل DevOps أسهل في التنفيذ.
تحتوي التطبيقات المتجانسة عادةً على العناصر التالية:
بالنظر إلى البنية المتجانسة بمزيد من التفصيل، يمكننا أن نرى أنها توفر العديد من المزايا المهمة:
مع استخدام البنية المتجانسة، نرى أن ما يبدو أنه قوة (صلابتها) يمكن أن يُنظر إليه أيضًا على أنه نقطة ضعف:
بنية الخدمات المصغرة هي نمط بنية سحابة أصلية يتكون فيها التطبيق الواحد من العديد من العناصر أو الخدمات الأصغر حجمًا والمرتبطة بشكل مرن. تحتوي تطبيقات الخدمات المصغرة على مجموعة تقنية خاص بها (مجموعة من التقنيات التي تتضافر إمكاناتها لإنجاز مهمة معينة).
تتمثل إحدى مزايا الأعمال الرئيسية التي توفرها الخدمات المصغرة في سهولة الطريقة التي يمكن بها تحديث النظام ليعكس أجزاءً جديدة من التطبيق من دون التأثير في التطبيق بأكمله. يمكن أن يترجم هذا إلى توفير كبير في كل من الوقت والعمالة.
البديل الأقرب لبنية الخدمات المصغرة هو البنية القائمة على الأحداث (EDA)، والتي تُستخدم أحيانًا جنبًا إلى جنب مع الخدمات المصغرة. في بنية EDA، يُجرى تمثيل تغييرات الحالة كأحداث وتُجدول داخل النظام. توفر بنية EDA ارتباطًا مرنًا ومعالجة في الوقت الحقيقي، ما يجعلها خيارًا جذابًا.
الخدمات المصغرة مهيأة للنمو المستمر واستقبال التغييرات التقنية. وفيما يلي المزايا الرئيسية التي تقدمها:
على الرغم من أن الخدمات المصغرة توفر العديد من المزايا، فإن تعقيدها العام يدعم بعض المشكلات عند استخدامها:
لقد أدى ظهور الخدمات المصغرة إلى تحويل تطوير البرمجيات إلى تنافس محتدم بين بنية الخدمات المصغرة الناشئة والنهج التقليدي المتجانس لبنية البرمجيات.
عند إلقاء نظرة سريعة على هذا التنافس، قد تظن أن الخدمات المصغرة هي البنية المتفوقة لأنها كانت الأحدث في التطوير. إلا أن هذا الافتراض سيثبت أنه ضيق الأفق. فلا يزال هناك العديد من حالات الحوسبة التي تستفيد من بساطة نموذج البنية المتجانسة.
وعلاوة على ذلك، فإن لكل من بنيتي البرمجيات مزاياها وعيوبها، ومن الأفضل للمؤسسات أن تلقي نظرة فاحصة على كلا النوعين وأن تنظر في احتياجاتها المتوقعة لتطوير التطبيقات قبل تبني أحد النظامين.
ومن حيث أوجه المقارنة المباشرة، تختلف البنية المتجانسة والخدمات المصغرة في العديد من النواحي الرئيسية:
من الضروري معرفة وقت استخدام كل بنية، وكذلك فهم النظام الأنسب بناءً على الاستخدامات المطلوبة. فيما يلي أفضل استخدامات النظام المتجانس:
تصلح الخدمات المصغرة للعديد من المشاريع، بما في ذلك التطبيقات الأكثر تعقيدًا:
خدمة مُدارة بالكامل ومستأجر واحد لتطوير تطبيقات Java وتسليمها.
استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.
إن تطوير تطبيقات السحابة يعني البناء مرة واحدة، والتكرار بسرعة، والنشر في أي مكان.
1. مبيعات البيع بالتجزئة الإلكتروني عالميًا من 2014 إلى 2027، Statista، مايو 2024