تصميم الخدمة والحاويات

مقدمة

يعد Azure Service Fabric نظاماً أساسياً للأنظمة الموزعة يجعل من السهل حزم الخدمات والحاويات القابلة للتطوير والموثوقة وتوزيعها وإدارتها.

تصميم الخدمة هو منسق حاويات Microsoft لتوزيع الخدمات الصغيرة عبر مجموعة من الأجهزة. يستفيد تصميم الخدمة من الدروس المستفادة خلال سنوات تشغيل خدماته في Microsoft على نطاق واسع.

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

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

للانتقال مباشرة وتجربة الحاويات على تصميم الخدمة جرب التشغيل السريع أو البرنامج التعليمي أو العينة:

التشغيل السريع: توزيع تطبيق حاوية Linux إلى تصميم الخدمة
التشغيل السريع: توزيع تطبيق حاوية Windows إلى تصميم الخدمة
تضمين تطبيق ‎.NET موجود بحاوية
عينات حاوية تصميم الخدمة

ما هي الحاويات

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

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

بالمقارنة مع الأجهزة الافتراضية، تتمتع الحاويات بالمزايا التالية:

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

دعم تصميم الخدمة للحاويات

يدعم تصميم الخدمة توزيع حاويات Docker على Linux وحاويات Windows Server على Windows Server 2016 والإصدارات الأحدث، إلى جانب دعم وضع عزل Hyper-V.

أوقات تشغيل الحاوية المتوافقة مع ServiceFabric:

  • Linux: Docker
  • Windows:
    • Windows Server 2022: وقت تشغيل حاوية Mirantis
    • Windows Server 2019/2016: DockerEE

حاويات Docker على Linux

يوفر Docker واجهات برمجة التطبيقات لإنشاء وإدارة الحاويات أعلى حاويات نواة Linux. يوفر Docker Hub مستودعًا مركزيًّا لتخزين صور الحاويات واستردادها. للحصول على برنامج تعليمي يستند إلى Linux، راجع إنشاء أول تطبيق حاوية تصميم خدمة على Linux.

حاويات خادم Windows

يوفر Windows Server 2016 والإصدارات الأحدث نوعين مختلفين من الحاويات التي تختلف حسب مستوى العزل. تتشابه حاويات Windows Server وحاويات Docker لأن كلاهما يحتوي على مساحة اسم وعزل نظام الملفات، أثناء مشاركة النواة مع المضيف الذي يتم تشغيله عليه. على Linux، تم توفير هذه العزلة تقليديًّا بواسطة cgroups ومساحات الأسماء، وتتصرف حاويات Windows Server بالمثل.

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

يوضح الشكل التالي الأنواع المختلفة من مستويات المحاكاة الافتراضية والعزل المتاحة. منصة Service Fabric

سيناريوهات لاستخدام الحاويات

فيما يلي أمثلة نموذجية حيث تكون الحاوية خيارًا جيدًا:

  • IIS الرفع والتحول: يمكنك وضع تطبيق ASP.NET MVC موجود في حاوية بدلًا من ترحيله إلى ASP.NET Core. تعتمد تطبيقات ASP.NET MVC هذه على خدمات معلومات الإنترنت (IIS). يمكنك حزم هذه التطبيقات في صور حاوية من صورة IIS التي تم إنشاؤها مسبقًا ونشرها باستخدام تصميم الخدمة. راجع صور الحاويات على Windows Server للحصول على معلومات حول حاويات Windows.

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

  • تقليل تأثير خدمات «الجيران الصاخبين»: يمكنك استخدام قدرة إدارة الموارد للحاويات لتقييد الموارد التي تستخدمها الخدمة على مضيف. إذا كانت الخدمات قد تستهلك العديد من الموارد وتؤثر على أداء الآخرين (مثل عملية طويلة الأمد تشبه الاستعلام)، ففكر في وضع هذه الخدمات في حاويات تحتوي على إدارة الموارد.

ملاحظة

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

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

يمكنك أيضا تشغيل خدمات تصميم الخدمة داخل حاوية. دعم تشغيل خدمات تصميم الخدمة داخل الحاويات محدود حاليًّا.

يوفر تصميم الخدمة العديد من إمكانات الحاويات التي تساعدك على إنشاء تطبيقات تتكون من خدمات مصغرة في حاويات، مثل:

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

للحصول على نظرة عامة شاملة حول دعم الحاويات على Azure، مثل كيفية إنشاء مجموعة Kubernetes باستخدام Azure Kubernetes Service، وكيفية إنشاء سجل Docker خاص في سجل حاويات Azure، والمزيد، راجع Azure for Containers.

الخطوات التالية

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

أنشئ أول تطبيق حاوية تصميم الخدمة على Linux
أنشئ أول تطبيق حاوية تصميم الخدمة على Windows
تعرف على المزيد حول حاويات Windows