تُقسم البنية ذات المستويات N التطبيق إلى طبقات منطقية ومستويات فعلية.
تعد الطبقات طريقة لفصل المسؤوليات وإدارة التبعيات. تتسم كل طبقة بمسؤولية محددة. يمكن للطبقة العليا استخدام الخدمات في طبقة أقل، ولكن ليس العكس.
يتم فصل الطبقات ماديًا، وتعمل على أجهزة منفصلة. تعاقديا، يمكن أن تكون نماذج الاتصال الخاصة بهم صارمة أو مريحة. في النموذج الصارم، يجب أن يمر الطلب عبر المستويات المجاورة، واحدا تلو الآخر، ولا يمكن تخطي أي مستوى بينهما. على سبيل المثال، من جدار حماية تطبيق الويب إلى طبقة الويب، ثم إلى الطبقة المتوسطة 1، وهكذا. في المقابل، في النهج المريح، قد يتخطى الطلب بعض المستويات إذا كان ذلك ضروريا. النهج الصارم له زمن انتقال ونفقات أكبر، والنهج المريح يحتوي على اقترانات أكثر ومن ثم يكون من الصعب تغييره. يمكن للنظام استخدام نهج مختلط: وجود مستويات مريحة وصارمة عند الضرورة.
يمكن للطبقة الاتصال بطبقة أخرى مباشرة، أو استخدام أنماط المراسلة غير المتزامنة من خلال قائمة انتظار الرسائل. على الرغم من إمكانية استضافة كل طبقة في مستواها الخاص، إلا أن هذا ليس مطلوبًا. قد يتم استضافة عدة طبقات على نفس المستوى. يؤدي فصل الطبقات فعليًا إلى تحسين قابلية التوسع والمرونة، ولكنه يضيف أيضًا زمن انتقال من اتصالات الشبكة الإضافية.
يحتوي التطبيق التقليدي ثلاثي الطبقات على طبقة عرض تقديمي وطبقة متوسطة والطبقة المسؤولة عن البيانات. الطبقة الوسطى اختيارية. يمكن أن تحتوي التطبيقات الأكثر تعقيدًا على أكثر من ثلاثة طبقات. يوضح الرسم البياني أعلاه تطبيقًا بطبقتين متوسطين، يغلفان مجالات وظيفية مختلفة.
يمكن أن يحتوي تطبيق الطبقة N على بنية طبقة مغلقة أو بنية طبقة مفتوحة:
- في بنية الطبقة المغلقة، يمكن للطبقة فقط استدعاء الطبقة التالية لأسفل على الفور.
- في بنية الطبقة المفتوحة، يمكن للطبقة استدعاء أيّ من الطبقات الموجودة أسفلها.
تحدد بنية الطبقة المغلقة التبعيات بين الطبقات. ومع ذلك، قد يؤدي ذلك إلى إنشاء نسبة استخدام الشبكة غير ضرورية للشبكة، إذا قامت إحدى الطبقات بتمرير الطلبات إلى الطبقة التالية.
متى تستخدم هذه البنية
عادةً ما يتم تنفيذ بنية الطبقة N كتطبيقات للبنية التحتية كخدمة (IaaS)، مع تشغيل كل طبقة على مجموعة منفصلة من الأجهزة الظاهرية. ومع ذلك، لا يحتاج تطبيق الطبقة N إلى أن يكون IaaS خالصًا. غالبًا ما يكون من المفيد استخدام الخدمات المُدارة لبعض أجزاء البنية، لا سيما التخزين المؤقت والمراسلة وتخزين البيانات.
بمراعاة البنية متعددة المستويات:
- تطبيقات ويب بسيطة.
- نقطة بداية جيدة عندما لا تكون المتطلبات المعمارية واضحة بعد.
- ترحيل تطبيق محلي إلى Azure بأقل قدر من إعادة بناء التعليمات البرمجية.
- التطوير الموحد للتطبيقات المحلية والسحابية.
تعد بنى الطبقة N شائعة جدًا في التطبيقات المحلية التقليدية، لذا فهي مناسبة بشكل طبيعي لترحيل أحمال العمل الحالية إلى Azure.
المزايا
- إمكانية النقل بين السحابة والمحلية، وبين الأنظمة الأساسية السحابية.
- منحنى تعليمي أقل لمعظم المطورين.
- تكلفة منخفضة نسبيا من خلال عدم إعادة تصميم الحل
- التطور الطبيعي من نموذج التطبيق التقليدي.
- مفتوح للبيئة غير المتجانسة (Windows/Linux)
التحديات
- من السهل أن ينتهي بك الأمر مع الطبقة الوسطى التي تقوم فقط بعمليات CRUD في قاعدة البيانات، مما يضيف زمن انتقال إضافي دون القيام بأي عمل مفيد.
- يمنع التصميم الأحادي النشر المستقل للميزات.
- تعد إدارة تطبيق IaaS عملاً أكثر من مجرد تطبيق يستخدم الخدمات المُدارة فقط.
- قد يصعب إدارة أمان الشبكة في نظام كبير.
- تمتد تدفقات المستخدم والبيانات عادة عبر مستويات متعددة، ما يضيف تعقيدا إلى مخاوف مثل الاختبار وقابلية الملاحظة.
أفضل الممارسات
- استخدم التحجيم التلقائي لمعالجة التقلبات في التحميل. راجع أفضل الممارسات للتحجيم التلقائي.
- استخدم المراسلة غير المتزامنة لفصل الطبقات.
- التخزين المؤقت للبيانات شبه الساكنة. راجع أفضل الممارسات للتخزين المؤقت.
- قم بتكوين طبقة مسؤولة عن البيانات لقابلية وصول عالية، باستخدام حل مثل مجموعات قابلية وصول عالية التوفر AlwaysOn Microsoft SQL Server.
- ضع جدار حماية لتطبيق ويب (WAF) بين الواجهة الأمامية والإنترنت.
- ضع كل طبقة في شبكتها الفرعية، واستخدم الشبكات الفرعية كحد أمان.
- تقييد الوصول إلى طبقة البيانات، من خلال السماح بالطلبات من الطبقة (الطبقات) الوسطى فقط.
بنية الطبقة N في الأجهزة الظاهرية
يصف هذا القسم بنية الطبقة N الموصى بها والتي تعمل على أجهزة ظاهرية.
تتكون كل طبقة من جهازي ظاهريين أو أكثر، يتم وضعها في مجموعة إتاحة أو مجموعة تغيير سعة جهاز ظاهري. توفر الأجهزة الظاهرية المتعددة المرونة في حالة فشل جهاز ظاهري واحد. تُستخدم موازنة التحميل لتوزيع الطلبات عبر الأجهزة الظاهرية في الطبقة. يمكن تحجيم الطبقة أفقيًا عن طريق إضافة المزيد من الأجهزة الظاهرية إلى التجمع.
يتم وضع كل طبقة أيضًا داخل شبكتها الفرعية، مما يعني أن عناوين IP الداخلية الخاصة بها تقع ضمن نطاق العنوان نفسه. هذا يجعل من السهل تطبيق قواعد مجموعة أمان الشبكة وجداول التوجيه إلى المستويات الفردية.
طبقات الويب والأعمال عديمة الحالة. يمكن لأي جهاز ظاهري معالجة أي طلب لهذه الطبقة. يجب أن تتكون الطبقة المسؤولة عن البيانات من قاعدة بيانات منسوخة نسخًا متماثلاً. بالنسبة إلى Windows، نوصي SQL Server، باستخدام مجموعات قابلية وصول عالية التوفر AlwaysOn لقابلية وصول عالية. وبالنسبة إلى Linux، اختر قاعدة بيانات تدعم النسخ المتماثل، مثل Apache Cassandra.
تقيد مجموعات أمان الشبكة الوصول إلى كل طبقة. على سبيل المثال، تسمح الطبقة المسؤولة عن البيانات فقط بالوصول من طبقة الأعمال.
إشعار
تعد الطبقة المسماة "طبقة الأعمال" في الرسم التخطيطي المرجعي الخاص بنا لقبًا لطبقة منطق تسلسل العمل. وبالمثل، فإننا نطلق على طبقة العرض "طبقة الويب". في مثالنا، هذا تطبيق ويب، على الرغم من أنه يمكن استخدام البنى متعددة الطبقات لطبولوجيا أخرى أيضًا (مثل تطبيقات سطح المكتب). قم بتسمية الطبقات الخاصة بك بما يناسب فريقك بشكل أفضل لتوصيل الهدف من تلك الطبقة المنطقية و/ أو المادية في تطبيقك، يمكنك حتى التعبير عن هذه التسمية في الموارد التي تختارها لتمثيل تلك الطبقة (على سبيل المثال، vmss-appName-business-layer).
اعتبارات إضافية
لا تقتصر بنى الطبقة N على ثلاثة طبقات. بالنسبة للتطبيقات الأكثر تعقيدًا، من الشائع وجود المزيد من الطبقات. في هذه الحالة، ضع في الاعتبار استخدام توجيه الطبقة 7 لتوجيه الطلبات إلى طبقة معينة.
الطبقات هي حدود قابلية التوسع والموثوقية والأمان. ضع في اعتبارك وجود طبقات منفصلة للخدمات ذات المتطلبات المختلفة في تلك المناطق.
ابحث عن الأماكن في البنية حيث يمكنك استخدام خدمة مُدارة بدون إعادة بناء التعليمات البرمجية. وعلى وجه الخصوص، انظر إلى التخزين المؤقت والمراسلة والتخزين وقواعد البيانات.
لمزيد من الأمان، ضع شبكة DMZ أمام التطبيق. يتضمن DMZ الأجهزة الظاهرية للشبكة (NVA) التي تنفذ وظائف الأمان مثل جدران الحماية وفحص حزمة بيانات. لمزيد من المعلومات، راجع البنية المرجعية لشبكة DMZ.
لقابلية وصول عالية، ضع اثنين أو أكثر من الأجهزة الظاهرية للشبكة في مجموعة إتاحة، مع موازنة التحميل الخارجي لتوزيع طلبات الإنترنت عبر المثيلات. لمعرفة المزيد، راجع توزيع أجهزة ظاهرية لشبكة عالية التوافر.
لا تسمح بوصول RDP أو SSH المباشر إلى الأجهزة الظاهرية التي تقوم بتشغيل تعليمة التطبيق البرمجية. بدلاً من ذلك، يجب على عوامل التشغيل تسجيل الدخول إلى Jumpbox، والذي يُطلق عليه أيضًا اسم مضيف الأساس. هذا جهاز ظاهري على الشبكة يستخدمه المسؤولون للاتصال بأجهزة ظاهرية أخرى. يحتوي Jumpbox على مجموعة أمان شبكة تسمح بـ RDP أو SSH فقط من عناوين IP العامة المعتمدة.
يمكنك توسيع شبكة Azure الظاهرية لتشمل شبكتك المحلية باستخدام شبكة ظاهرية خاصة (VPN) من موقع لآخر أو Azure ExpressRoute. لمزيد من المعلومات، راجع البنية المرجعية للشبكة الهجينة.
إذا كانت مؤسستك تستخدم Active Directory لإدارة الهوية، فقد ترغب في توسيع بيئة Active Directory إلى شبكة Azure الظاهرية. للمزيد من المعلومات، راجع البنية المرجعية لإدارة الهوية.
إذا كنت بحاجة إلى توفر أعلى مما توفره Azure SLA للأجهزة الظاهرية، فقم بنسخ التطبيق عبر منطقتين واستخدم Azure Traffic Manager لتجاوز الفشل. لمزيد من المعلومات، راجع تشغيل أجهزة Windows الظاهرية في مناطق متعددة أو تشغيل أجهزة Linux الظاهرية في مناطق متعددة.
الموارد ذات الصلة
- تطبيق N-tier مع Apache Cassandra
- [تطبيق Windows N-tier على Azure مع SQL Server] [n-tier-windows-SQL]
- الوحدة النمطية Microsoft Learn: قم بجولة في نمط بنية N-tier
- Azure Bastion
- مزيد من المعلومات حول المراسلة في نمط بنية N-tier على Azure