نمط بنية الطبقة N

Azure Storage
Azure Cloud Services
Azure Virtual Machines

تُقسم البنية ذات المستويات N التطبيق إلى طبقات منطقية ومستويات فعلية.

رسم تخطيطي منطقي لنمط بنية الطبقة N

تعد الطبقات طريقة لفصل المسؤوليات وإدارة التبعيات. تتسم كل طبقة بمسؤولية محددة. يمكن للطبقة العليا استخدام الخدمات في طبقة أقل، ولكن ليس العكس.

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

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

يمكن أن يحتوي تطبيق الطبقة N على بنية طبقة مغلقة أو بنية طبقة مفتوحة:

  • في بنية الطبقة المغلقة، يمكن للطبقة فقط استدعاء الطبقة التالية لأسفل على الفور.
  • في بنية الطبقة المفتوحة، يمكن للطبقة استدعاء أيّ من الطبقات الموجودة أسفلها.

تحدد بنية الطبقة المغلقة التبعيات بين الطبقات. ومع ذلك، قد يؤدي ذلك إلى إنشاء نسبة استخدام الشبكة غير ضرورية للشبكة، إذا قامت إحدى الطبقات بتمرير الطلبات إلى الطبقة التالية.

متى تستخدم هذه البنية

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

بمراعاة البنية متعددة المستويات:

  • تطبيقات ويب بسيطة.
  • ترحيل تطبيق محلي إلى Azure بأقل قدر من إعادة بناء التعليمات البرمجية.
  • التطوير الموحد للتطبيقات المحلية والسحابية.

تعد بنى الطبقة N شائعة جدًا في التطبيقات المحلية التقليدية، لذا فهي مناسبة بشكل طبيعي لترحيل أحمال العمل الحالية إلى Azure.

المزايا

  • إمكانية النقل بين السحابة والمحلية، وبين الأنظمة الأساسية السحابية.
  • منحنى تعليمي أقل لمعظم المطورين.
  • التطور الطبيعي من نموذج التطبيق التقليدي.
  • مفتوح للبيئة غير المتجانسة (Windows/Linux)

التحديات

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

أفضل الممارسات

بنية الطبقة N في الأجهزة الظاهرية

يصف هذا القسم بنية الطبقة N الموصى بها والتي تعمل على أجهزة ظاهرية.

رسم تخطيطي فعلي لبنية الطبقة N

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

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

طبقات الويب والأعمال عديمة الحالة. يمكن لأي جهاز ظاهري معالجة أي طلب لهذه الطبقة. يجب أن تتكون الطبقة المسؤولة عن البيانات من قاعدة بيانات منسوخة نسخًا متماثلاً. بالنسبة إلى Windows، نوصي SQL Server، باستخدام مجموعات قابلية وصول عالية التوفر AlwaysOn لقابلية وصول عالية. وبالنسبة إلى Linux، اختر قاعدة بيانات تدعم النسخ المتماثل، مثل Apache Cassandra.

تقيد مجموعات أمان الشبكة الوصول إلى كل طبقة. على سبيل المثال، تسمح الطبقة المسؤولة عن البيانات فقط بالوصول من طبقة الأعمال.

إشعار

تعد الطبقة المسماة "طبقة الأعمال" في الرسم التخطيطي المرجعي الخاص بنا لقبًا لطبقة منطق تسلسل العمل. وبالمثل، فإننا نطلق على طبقة العرض "طبقة الويب". في مثالنا، هذا تطبيق ويب، على الرغم من أنه يمكن استخدام البنى متعددة الطبقات لطبولوجيا أخرى أيضًا (مثل تطبيقات سطح المكتب). قم بتسمية الطبقات الخاصة بك بما يناسب فريقك بشكل أفضل لتوصيل الهدف من تلك الطبقة المنطقية و/ أو المادية في تطبيقك، يمكنك حتى التعبير عن هذه التسمية في الموارد التي تختارها لتمثيل تلك الطبقة (على سبيل المثال، vmss-appName-business-layer).

اعتبارات إضافية

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

  • الطبقات هي حدود قابلية التوسع والموثوقية والأمان. ضع في اعتبارك وجود طبقات منفصلة للخدمات ذات المتطلبات المختلفة في تلك المناطق.

  • استخدم مجموعات مقياس الجهاز الظاهري للتحجيم التلقائي.

  • ابحث عن الأماكن في البنية حيث يمكنك استخدام خدمة مُدارة بدون إعادة بناء التعليمات البرمجية. وعلى وجه الخصوص، انظر إلى التخزين المؤقت والمراسلة والتخزين وقواعد البيانات.

  • لمزيد من الأمان، ضع شبكة DMZ أمام التطبيق. يتضمن DMZ الأجهزة الظاهرية للشبكة (NVA) التي تنفذ وظائف الأمان مثل جدران الحماية وفحص حزمة بيانات. لمزيد من المعلومات، راجع البنية المرجعية لشبكة DMZ.

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

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

  • يمكنك توسيع شبكة Azure الظاهرية لتشمل شبكتك المحلية باستخدام شبكة ظاهرية خاصة (VPN) من موقع لآخر أو Azure ExpressRoute. لمزيد من المعلومات، راجع البنية المرجعية للشبكة الهجينة.

  • إذا كانت مؤسستك تستخدم Active Directory لإدارة الهوية، فقد ترغب في توسيع بيئة Active Directory إلى شبكة Azure الظاهرية. للمزيد من المعلومات، راجع البنية المرجعية لإدارة الهوية.

  • إذا كنت بحاجة إلى توفر أعلى مما توفره Azure SLA للأجهزة الظاهرية، فقم بنسخ التطبيق عبر منطقتين واستخدم Azure Traffic Manager لتجاوز الفشل. لمزيد من المعلومات، راجع تشغيل أجهزة Windows الظاهرية في مناطق متعددة أو تشغيل أجهزة Linux الظاهرية في مناطق متعددة.