إعداد بيئة تقسيم مرحلي في Azure Spring Apps

إشعار

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

هذه المقالة تنطبق على: ✔️ Java ❌ C#‎

تنطبق هذه المقالة على:❌ Basic ✔️ Standard ✔️ Enterprise

تشرح هذه المقالة كيفية إعداد توزيع تقسيم مرحلي باستخدام نمط التوزيع الأزرق والأخضر في Azure Spring Apps. التوزيع الأزرق/الأخضر هو نمط تسليم مستمر لـ Azure DevOps يعتمد على الاحتفاظ بنسخة (زرقاء) موجودة مباشرة، بينما يتم توزيع إصدار جديد (أخضر). توضح لك هذه المقالة كيفية وضع هذا التوزيع المرحلي في الإنتاج دون تغيير توزيع الإنتاج.

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

  • مثيل Azure Spring Apps موجود على الخطة القياسية.
  • Azure CLI.

تستخدم هذه المقالة تطبيقاً تم إنشاؤه من Spring Initializr. إذا كنت ترغب في استخدام تطبيق مختلف لهذا المثال، قم بإجراء تغيير في جزء عام من التطبيق لتمييز النشر المرحلي عن توزيع الإنتاج.

تلميح

Azure Cloud Shell هو shell تفاعلية مجانية يمكنك استخدامها لتشغيل الخطوات في هذه المقالة. وهي تحتوي على أدوات Azure شائعة ومثبتة مسبقًا، بما في ذلك أحدث إصدارات Git وJDK وMaven وAzure CLI. إذا قمت بتسجيل الدخول إلى اشتراك Azure، فابدأ تشغيل مثيل Cloud Shell. ولمزيد من المعلومات، اطلع على نظرة عامة على Azure Cloud Shell.

لإعداد التوزيع الأزرق والأخضر في Azure Spring Apps، اتبع الإرشادات الموجودة في الأقسام التالية.

تثبيت امتداد Azure CLI

تثبيت ملحق Azure Spring Apps ل Azure CLI باستخدام الأمر التالي:

az extension add --name spring

إعداد التطبيق وعمليات التوزيع

لإنشاء التطبيق، اتبع الخطوات التالية:

  1. إنشاء التعليمات البرمجية لنموذج التطبيق باستخدام Spring Initializr مع هذا التكوين.

  2. قم بتنزيل التعليمات البرمجية.

  3. أضف الملف المصدر HelloController.java التالي إلى المجلد *\src\main\java\com\example\hellospring*:

    package com.example.hellospring;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @RestController
    
    public class HelloController {
    
    @RequestMapping("/")
    
      public String index() {
          return "Greetings from Azure Spring Apps!";
      }
    
    }
    
  4. إنشاء ملف ‎.jar:

    mvn clean package -DskipTests
    
  5. إنشاء التطبيق في مثيل Azure Spring Apps الخاص بك:

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --runtime-version Java_17 \
        --assign-endpoint
    
  6. توزيع التطبيق إلى Azure Spring Apps:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    
  7. تعديل التعليمات البرمجية للتوزيع المرحلي الخاص بك:

    package com.example.hellospring;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @RestController
    
    public class HelloController {
    
    @RequestMapping("/")
    
      public String index() {
          return "Greetings from Azure Spring Apps! THIS IS THE GREEN DEPLOYMENT";
      }
    
    }
    
  8. إعادة إنشاء ملف ‎.jar:

    mvn clean package -DskipTests
    
  9. إنشاء التوزيع الأخضر:

    az spring app deployment create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --app demo \
        --name green \
        --runtime-version Java_17 \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    

عرض التطبيقات وعمليات التوزيع

استخدم الخطوات التالية لعرض التطبيقات المنشورة.

  1. انتقل إلى مثيل Azure Spring Apps في مدخل Azure.

  2. من جزء التنقل، افتح جزء التطبيقات لعرض التطبيقات لمثيل الخدمة.

    لقطة شاشة لجزء التطبيقات تعرض التطبيقات لمثيل الخدمة.

  3. حدد تطبيقا لعرض التفاصيل.

    لقطة شاشة لتطبيق العرض التوضيحي الذي يعرض صفحة نظرة عامة مع الإعدادات المتوفرة.

  4. افتح عمليات التوزيع لمشاهدة جميع عمليات توزيع التطبيق. تعرض الشبكة عمليات التوزيع الخاصة بالإنتاج والتقسيم المرحلي.

    لقطة شاشة تعرض عمليات نشر التطبيقات المدرجة.

  5. حدد عنوان URL لفتح التطبيق الموزع حالياً.

    لقطة شاشة تعرض عنوان URL للتطبيق المنشور.

  6. حدد الإنتاج في عمود الحالة لمشاهدة التطبيق الافتراضي.

    لقطة شاشة تعرض عنوان URL للتطبيق الافتراضي.

  7. حدد التقسيم المرحلي في عمود الحالة لمشاهدة تطبيق التقسيم المرحلي.

    لقطة شاشة تعرض عنوان URL للتطبيق المرحلي.

تلميح

تأكد من أن نقطة نهاية الاختبار تنتهي بشرطة مائلة (/) للتأكد من تحميل ملف CSS بشكل صحيح. إذا تطلب منك المستعرض إدخال بيانات اعتماد تسجيل الدخول لعرض الصفحة، فاستخدم فك تشفير URL لفك تشفير نقطة نهاية الاختبار. يقوم فك ترميز URL بإرجاع عنوان URL بالتنسيق https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green. استخدم هذا التنسيق للوصول إلى نقطة النهاية.

إشعار

تنطبق إعدادات خادم التكوين على كل من بيئة التقسيم المرحلي وبيئة التشغيل. على سبيل المثال، إذا قمت بتعيين مسار السياق (server.servlet.context-path) للعرض التوضيحي لتطبيقك في خادم التكوين على أنه مسار ما، يتغير المسار إلى النشر الأخضر إلى https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/....

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

تعيين التوزيع الأخضر كبيئة تشغيل

  1. بعد التحقق من تغييرك في بيئة التقسيم المرحلي، يمكنك دفعه إلى الإنتاج. في صفحة التطبيقات>عمليات التوزيع، حدد التطبيق الموجود حالياً في الإنتاج.

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

    لقطة شاشة تعرض التحديدات لإعداد البنية المرحلية للإنتاج.

  3. تأكد من أن عنوان URL للتطبيق يعرض التغييرات التي أجريتها.

    لقطة شاشة تعرض عنوان URL للتطبيق الآن قيد الإنتاج.

إشعار

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

تعديل التوزيع المرحلي

إذا لم تكن راضياً عن التغيير الذي قمت به، يمكنك تعديل التعليمات البرمجية للتطبيق الخاص بك، وإنشاء حزمة ‎.jar جديدة، وتحميلها إلى التوزيع الأخضر باستخدام Azure CLI:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name demo \
    --deployment green \
    --artifact-path demo.jar

حذف التوزيع المرحلي

لحذف التوزيع المرحلي من مدخل Azure، انتقل إلى صفحة التوزيع المرحلي، وحدد الزر حذف.

بدلاً من ذلك، احذف نشر توزيع التقسيم المرحلي من Azure CLI عن طريق تشغيل الأمر التالي:

az spring app deployment delete \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name <staging-deployment-name> \
    --app demo

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