إعداد بيئة تقسيم مرحلي في Azure Spring Apps
إشعار
سيتم إهمال الخطط الأساسية والقياسية والمؤسسة بدءا من منتصف مارس 2025، مع فترة تقاعد 3 سنوات. نوصي بالانتقال إلى Azure Container Apps. لمزيد من المعلومات، راجع إعلان إيقاف Azure Spring Apps.
سيتم إهمال الاستهلاك القياسي والخطة المخصصة بدءا من 30 سبتمبر 2024، مع إيقاف التشغيل الكامل بعد ستة أشهر. نوصي بالانتقال إلى Azure Container Apps. لمزيد من المعلومات، راجع ترحيل استهلاك Azure Spring Apps القياسي وخطة مخصصة إلى Azure Container Apps.
هذه المقالة تنطبق على: ✔️ 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
إعداد التطبيق وعمليات التوزيع
لإنشاء التطبيق، اتبع الخطوات التالية:
إنشاء التعليمات البرمجية لنموذج التطبيق باستخدام Spring Initializr مع هذا التكوين.
قم بتنزيل التعليمات البرمجية.
أضف الملف المصدر 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!"; } }
إنشاء ملف .jar:
mvn clean package -DskipTests
إنشاء التطبيق في مثيل 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
توزيع التطبيق إلى 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
تعديل التعليمات البرمجية للتوزيع المرحلي الخاص بك:
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"; } }
إعادة إنشاء ملف .jar:
mvn clean package -DskipTests
إنشاء التوزيع الأخضر:
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
عرض التطبيقات وعمليات التوزيع
استخدم الخطوات التالية لعرض التطبيقات المنشورة.
انتقل إلى مثيل Azure Spring Apps في مدخل Azure.
من جزء التنقل، افتح جزء التطبيقات لعرض التطبيقات لمثيل الخدمة.
حدد تطبيقا لعرض التفاصيل.
افتح عمليات التوزيع لمشاهدة جميع عمليات توزيع التطبيق. تعرض الشبكة عمليات التوزيع الخاصة بالإنتاج والتقسيم المرحلي.
حدد عنوان URL لفتح التطبيق الموزع حالياً.
حدد الإنتاج في عمود الحالة لمشاهدة التطبيق الافتراضي.
حدد التقسيم المرحلي في عمود الحالة لمشاهدة تطبيق التقسيم المرحلي.
تلميح
تأكد من أن نقطة نهاية الاختبار تنتهي بشرطة مائلة (/) للتأكد من تحميل ملف CSS بشكل صحيح. إذا تطلب منك المستعرض إدخال بيانات اعتماد تسجيل الدخول لعرض الصفحة، فاستخدم فك تشفير URL لفك تشفير نقطة نهاية الاختبار. يقوم فك ترميز URL بإرجاع عنوان URL بالتنسيق https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green
. استخدم هذا التنسيق للوصول إلى نقطة النهاية. إذا كنت ترغب في تعطيل المصادقة الأساسية لنقطة نهاية الاختبار، فقم بتشغيل أمر Azure CLI التالي: az spring app update --resource-group <resource-group-name> --service <Azure-Spring-Apps-instance-name> --name demo --disable-test-endpoint-auth true
إشعار
تنطبق إعدادات خادم التكوين على كل من بيئة التقسيم المرحلي وبيئة التشغيل. على سبيل المثال، إذا قمت بتعيين مسار السياق (server.servlet.context-path) للعرض التوضيحي لتطبيقك في خادم التكوين على أنه مسار ما، يتغير المسار إلى النشر الأخضر إلى https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/...
.
إذا قمت بزيارة العرض التوضيحي للتطبيق العام في هذه المرحلة، يجب أن تشاهد الصفحة القديمة دون تغييرك الجديد.
تعيين التوزيع الأخضر كبيئة تشغيل
بعد التحقق من تغييرك في بيئة التقسيم المرحلي، يمكنك دفعه إلى الإنتاج. في صفحة التطبيقات>عمليات التوزيع، حدد التطبيق الموجود حالياً في الإنتاج.
حدد علامة الحذف بعد حالة التسجيل للتوزيع الأخضر، ثم حدد تعيين كتشغيل.
تأكد من أن عنوان 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