التشغيل السريع: نشر تطبيق خدمات موثوق به .NET إلى Service Fabric

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

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

لقطة شاشة التطبيق

باستخدام هذا التطبيق تتعلم كيفية:

  • إنشاء تطبيق باستخدام .NET وService Fabric
  • استخدام الذاكرة الأساسية ASP.NET كواجهة ويب الأمامية
  • تخزين بيانات التطبيق في خدمة ذات حالة خاصة
  • تصحيح أخطاء التطبيق الخاص بك على المستوى المحلي
  • توسيع نطاق التطبيق عبر عُقد متعددة
  • إجراء ترقية متجددة للتطبيق

المتطلبات الأساسية

لإكمال هذه التشغيل السريع:

  1. ثبّت Visual Studio 2019 باستخدام تطوير Azure وأحمال العمل الخاصة بـ ASP.NET وتطوير الويب.

  2. تثبيت Git

  3. تثبيتMicrosoft Azure Service Fabric SDK

  4. تشغيل الأمر التالي لتمكين Visual Studio من النشر إلى نظام مجموعة Service Fabric على المستوى المحلي:

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope CurrentUser
    

بنية نظام مجموعة

بعد تثبيت وقت التشغيل وSDKs وأدوات Visual Studio وDocker وتشغيل Docker، أنشئ مجموعة تطوير محلية من خمس عقد.

ملاحظة

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

إعداد Windows 10 أو Windows Server للحاويات

  1. فتح نافذة PowerShell جديدة وذات تشغيل كامل كمسؤول.

  2. تشغيل أمر PowerShell التالي لإنشاء نظام مجموعة تطوير:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1"
    
  3. تشغيل الأمر التالي لبدء تشغيل أداة إدارة نظام المجموعة المحلية:

    . "C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager\ServiceFabricLocalClusterManager.exe"
    

ملاحظة

يستخدم التطبيق النموذجي في هذا التطبيق السريع ميزات غير متوفرة في Windows 7.

تنزيل العينة

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

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

تشغيل تطبيق ويب محليًا

انقر بزر الماوس الأيمن فوق رمزVisual Studio في قائمة ابدأ واختر تشغيل كمسؤول. لإرفاق مصحح الأخطاء بخدماتك، تحتاج إلى تشغيل Visual Studio كمسؤول.

فتح حل Voting.sln Visual Studio من المستودع الذي نسخته.

بشكل افتراضي، يستمع تطبيق Voting إلى منفذ 8080. تم تعيين منفذ التطبيق في ملف /VotingWeb/PackageRoot/ServiceManifest.xml. يمكن تغيير منفذ التطبيق عن طريق تحديث سمة المنفذ لعنصر نقطة النهاية. لنشر التطبيق وتشغيله محلياً، يجب أن يكون منفذ التطبيق مفتوحاً ومتاحاً على جهاز الكمبيوتر الخاص بك. إذا قمت بتغيير منفذ التطبيق، فاستبدل قيمة منفذ التطبيق الجديدة بـ "8080" خلال هذه المقالة.

لنشر التطبيق، اضغط على "F5" .

ملاحظة

في نافذة إخراج Visual Studio، سترى الرسالة "لم يتم تعيين عنوان URL للتطبيق أو لم يتم تعيين عنوان URL HTTP/HTTPS حتى لا يتم فتح المستعرض للتطبيق." لا تشير هذه الرسالة إلى وجود خطأ، ولكن لن يتم تشغيل المستعرض بشكل تلقائي.

عند اكتمال النشر، قم بتشغيل متصفح وافتح http://localhost:8080لعرض واجهة الويب الأمامية للتطبيق.

الواجهة الأمامية للتطبيق

يمكنك الآن إضافة مجموعة من خيارات التصويت، والبدء في أخذ الأصوات. يعمل التطبيق ويخزن جميع البيانات في نظام مجموعة Service Fabric الخاصة بك، دون الحاجة إلى قاعدة بيانات منفصلة.

تفقد نموذج تطبيق التصويت

يتكون تطبيق التصويت من خدمتين:

  • خدمة الويب الأمامية (VotingWeb) - خدمة ASP.NET Core للواجهة الأمامية للويب، والتي تخدم صفحة الويب وتعرض واجهات برمجة التطبيقات على الويب للتواصل مع خدمة الواجهة الخلفية.
  • خدمة الخلفية (VotingData) - خدمة ويب ASP.NET Core، والتي تعرض واجهة برمجة تطبيقات بقصد تخزين نتائج التصويت في قاموس موثوق على القرص.

مخطط التطبيق

عند التصويت في التطبيق يحدث ما يلي:

  1. يرسل JavaScript طلب التصويت إلى واجهة برمجة تطبيقات الويب في خدمة واجهة ويب الأمامية في شكل طلب HTTP PUT.

  2. تستخدم خدمة واجهة ويب الأمامية وكيلاً لتحديد موقع طلب HTTP PUT وإعادة توجيهه إلى الخدمة الخلفية.

  3. تأخذ الخدمة الخلفية الطلب الوارد، وتخزن النتيجة المُحدّثة في قاموس موثوق به، والذي ينسخ نسخاً متماثلاً إلى عقد متعددة داخل نظام المجموعة ويحتفظ به في القرص. يتم تخزين جميع بيانات التطبيق في نظام المجموعة، ولذا لا توجد حاجة إلى قاعدة بيانات.

تتبع الأخطاء في Visual Studio

يجب أن يكون التطبيق قيد التشغيل بشكل جيد، ولكن يمكنك استخدام مصحح الأخطاء لمعرفة كيفية عمل الأجزاء الرئيسية من التطبيق. عند تتبع أخطاء تطبيق في Visual Studio، يمكن استخدام خدمة نظام مجموعةFabric development محلية. يمكن ضبط تجربة تتبع الأخطاء في الخاصة بك في السيناريو. في هذا التطبيق، يتم تخزين البيانات في الخدمة الخلفية باستخدام قاموس موثوق. Visual Studio يزيل التطبيق افتراضياً عند إيقاف المصحح. تؤدي إزالة التطبيق، إلى حذف البيانات التي في الخدمة الخلفية أيضاً. لاستمرار البيانات بين جلسات التصحيح، افتح "Voting" "project" "Properties" وغيّر "Application Debug Mode" إلى "Auto Upgrade" .

للاطلاع على ما يحدث في التعليمات البرمجية، تابع الخطوات التالية:

  1. افتح ملف /VotingWeb/Controllers/VotesController.cs وقم بتعيين نقطة توقف في طريقة Put الخاصة بواجهة برمجة تطبيقات الويب (السطر 69) - يمكن البحث عن الملف في Solution Explorer في Visual Studio.

  2. افتح ملف /VotingWeb/Controllers/VotesController.cs وقم بتعيين نقطة توقف في طريقة Put الخاصة بواجهة برمجة تطبيقات الويب (السطر 54).

  3. العودة إلى المتصفح والتحديد على خيار التصويت أو إضافة خيار تصويت جديد. الضغط على نقطة التوقف الأولى في وحدة تحكم الواجهة الأمامية.

    • هذه الخطوة هي المكان الذي ترسل فيه JavaScript في المستعرض طلباً إلى وحدة تحكم API التي على الويب في خدمة الواجهة الأمامية.

      إضافة خدمة التصويت الأمامية

    • أولاً، قم بإنشاء عنوان URL لـ ReverseProxy لخدمة النهاية (1) .

    • ثم إرسال طلب HTTP PUT إلى ReverseProxy (2) .

    • أخيراً إرجاع الاستجابة من الخدمة الخلفية إلى العميل (3) .

  4. اضغط F5 للمتابعة

    • إذا طلب المستعرض ذلك، فامنح مجموعة ServiceFabricAllowedUsers قراءة وتنفيذ أذونات وضع التصحيح.

    • أنت الآن في نقطة التوقف في الخدمة الخلفية.

      إضافة خدمة التصويت الخلفية

    • في السطر الأول في الأسلوب (1) يحصل StateManager على قاموس موثوق أو يضيفه باسم counts.

    • تتطلب جميع التفاعلات مع القيم في القاموس الموثوق به معاملة، وهذا باستخدام العبارة (2) بإنشاء تلك الحركة.

    • في المعاملة، قم بتحديث قيمة المفتاح المتصل بخيار التصويت، وثبت العملية (3) . بمجرد إرجاع الأسلوب التثبيت، يتم تحديث البيانات في القاموس ثم نسخها نسخاً متماثلاً إلى العقد الأخرى في نظام المجموعة. يتم الآن تخزين البيانات بأمان في نظام المجموعة، ويمكن أن تفشل الخدمة الخلفية إلى عقد أخرى، لا تزال لديها البيانات المتاحة.

  5. اضغط F5 للمتابعة

لإيقاف جلسة عمل تتبع الأخطاء، اضغط على Shift+F5.

إجراء ترقية متجددة للتطبيق

عند نشر تحديثات جديدة للتطبيق، يطرح Service Fabric التحديث بطريقة آمنة. لا تمنح الترقيات المتدرجة أي توقف أثناء الترقية وكذلك التراجع التلقائي في حالة حدوث أخطاء.

قم بما يلي لترقية التطبيق:

  1. افتح ملف /VotingWeb/Views/Home/Index.cshtml في Visual Studio.

  2. تغيير العنوان على الصفحة عن طريق إضافة أو تحديث النص. على سبيل المثال، قم بتغيير العنوان إلى "Service Fabric Voting Sample v2".

  3. احفظ الملف.

  4. انقر بزر الماوس الأيمن فوق "Voting" في مستكشف الحلول واختر "Publish" . يظهر مربع الحوار نشر Publish.

  5. انقر فوق الزر "Manifest Version" لتغيير إصدار الخدمة والتطبيق.

  6. تغيير إصدار عنصر "Code" ضمن VotingWebPkg إلى "2.0.0" ، على سبيل المثال، وانقر فوق Save.

    مربع حوار

  7. في مربع الحوار "Publish Service Fabric "Application حدد مربع الحوار خانة الاختيار "Upgrade the Application" .

  8. غيّر "Target profile" إلى PublishProfiles \ Local.5Node.xml وتأكد من تعيين "Connection Endpoint" على "Local Cluster" .

  9. حدد "Upgrade the Application" .

  10. انقر على نشر.

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

  11. افتح المتصفح وتصفح للوصول إلى عنوان نظام المجموعة على المنفذ 19080. على سبيل المثال، ⁧http://localhost:19080/⁩.

  12. انقر فوق عقدة "Applications" في عرض الشجرة، ثم انقر فوق "Upgrades in Progress" في الجزء الأيمن. ترى كيف تتم الترقية عبر مجالات الترقية في مجموعتك، مع التأكد من أن كل مجال سليم قبل المتابعة إلى التالي. يظهر مجال الترقية في شريط التقدم باللون الأخضر عند التحقق من صحة المجال. ترقية العرض في مستكشف تصميم الخدمة

    يجعل Service Fabric الترقيات آمنة من خلال الانتظار لمدة دقيقتين بعد ترقية الخدمة على كل عقدة في المجموعة. توقع أن يستغرق التحديث بالكامل ثماني دقائق تقريباً.

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

في هذا التشغيل السريع، قد تعلّمت كيفية:

  • إنشاء تطبيق باستخدام .NET وService Fabric
  • استخدام الذاكرة الأساسية ASP.NET كواجهة ويب الأمامية
  • تخزين بيانات التطبيق في خدمة ذات حالة خاصة
  • تصحيح أخطاء التطبيق الخاص بك على المستوى المحلي
  • توسيع نطاق التطبيق عبر عُقد متعددة
  • إجراء ترقية متجددة للتطبيق

لمعرفة المزيد حول Service Fabric و.NET ، ألق نظرة على هذا البرنامج التعليمي: