إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكن ل Azure Container Apps تشغيل أي تطبيق Java في حاوية في السحابة مع إعطاء خيارات مرنة لكيفية نشر تطبيقاتك.
عند استخدام Container Apps لتطبيقات Java المعبأة في حاويات، تحصل على:
التحجيم الفعال من حيث التكلفة: عند استخدام خطة الاستهلاك، يمكن لتطبيقات Java تغيير الحجم إلى الصفر. يؤدي التحجيم عندما يكون هناك طلب ضئيل على تطبيقك إلى خفض التكاليف تلقائيا لمشاريعك.
خيارات النشر: تتكامل Azure Container Apps مع Buildpacks، والتي تسمح لك بالنشر مباشرة من بنية Maven، أو عبر ملفات البيانات الاصطناعية، أو مع Dockerfile الخاص بك.
توزيع JAR (معاينة): يمكنك نشر تطبيق الحاوية مباشرة من ملف JAR.
نشر WAR (معاينة): يمكنك نشر تطبيق الحاوية مباشرة من ملف WAR.
دعم IDE: يمكنك نشر تطبيق الحاوية مباشرة من IntelliJ.
ملاءمة الذاكرة التلقائية (معاينة): تعمل تطبيقات الحاوية على تحسين كيفية إدارة جهاز Java الظاهري (JVM) للذاكرة، مما يجعل الذاكرة الأكثر الممكنة متاحة لتطبيقات Java الخاصة بك.
بناء متغيرات البيئة (معاينة): يمكنك تكوين أزواج قيمة المفتاح المخصصة للتحكم في بناء صورة Java من التعليمات البرمجية المصدر.
توضح هذه المقالة بالتفصيل المعلومات التي تحتاج إلى معرفتها أثناء إنشاء تطبيقات Java على Azure Container Apps.
أنواع التوزيع
عادة ما يعني تشغيل التطبيقات الحاوية أنك بحاجة إلى إنشاء Dockerfile لتطبيقك، ولكن تشغيل تطبيقات Java على Container Apps يمنحك بعض الخيارات.
| النوع | الوصف | يستخدم Buildpacks | يستخدم Dockerfile |
|---|---|---|---|
| بناء التعليمات البرمجية المصدر | يمكنك النشر مباشرة إلى Container Apps من التعليمات البرمجية المصدر. | نعم | لا |
| إنشاء البيانات الاصطناعية | يمكنك إنشاء بنية Maven لنشرها في Container Apps | نعم | لا |
| Dockerfile | يمكنك إنشاء Dockerfile يدويا والتحكم الكامل في النشر الخاص بك. | لا | نعم |
إشعار
تدعم عمليات نشر Buildpacks إصدارات JDK 8 و11 و17 و21.
نوع التطبيقات
يتم تنفيذ أنواع التطبيقات المختلفة إما كتطبيق حاوية فردي أو كوظيفة Container Apps. استخدم الجدول التالي لمساعدتك في تحديد نوع التطبيق الأفضل للسيناريو الخاص بك.
لا يقصد بالأمثلة المدرجة في هذا الجدول أن تكون شاملة، ولكن لمساعدة أفضل فهم للهدف من أنواع التطبيقات المختلفة.
| نوع | الأمثلة | تنفيذ ك... |
|---|---|---|
| تطبيقات الويب ونقاط نهاية واجهة برمجة التطبيقات | Spring Boot و Quarkus و Apache Tomcat و Jetty | تطبيق حاوية فردي |
| تطبيقات وحدة التحكم والمهام المجدولة ومشغلات المهام والوظائف الدفعية | SparkJobs, ETL tasks, Spring Batch Job, Jenkins pipeline job | مهمة تطبيقات الحاوية |
التصحيح
أثناء تتبع أخطاء تطبيق Java الخاص بك على Container Apps، تأكد من فحص عامل Java قيد المعالجة لرسائل تصحيح أخطاء دفق السجل ووحدة التحكم.
استكشاف الأخطاء وإصلاحها
ضع العناصر التالية في الاعتبار أثناء تطوير تطبيقات Java الخاصة بك:
الموارد الافتراضية: بشكل افتراضي، يحتوي التطبيق على نصف وحدة معالجة مركزية و1 غيغابايت متاحة.
العمليات عديمة الحالة: مع تحجيم تطبيق الحاوية الخاص بك داخل وخارج، يتم إنشاء عمليات جديدة وإيقاف تشغيلها. تأكد من التخطيط للمستقبل بحيث تكتب البيانات إلى التخزين المشترك مثل قواعد البيانات ومشاركات نظام الملفات. لا تتوقع أن تكون أي ملفات مكتوبة مباشرة إلى نظام ملفات الحاوية متاحة لأي حاوية أخرى.
المقياس إلى الصفر هو الافتراضي: إذا كنت بحاجة إلى التأكد من تشغيل مثيل واحد أو أكثر من تطبيقك باستمرار، فتأكد من تحديد قاعدة مقياس لتلبية احتياجاتك على أفضل وجه.
سلوك غير متوقع: إذا فشل تطبيق الحاوية في الإنشاء أو البدء أو التشغيل، فتحقق من تعيين مسار البيانات الاصطناعية بشكل صحيح في الحاوية.
مشكلات دعم Buildpack: إذا كانت Buildpack لا تدعم التبعيات أو إصدار Java الذي تحتاج إليه، فقم بإنشاء Dockerfile الخاص بك لنشر تطبيقك. يمكنك عرض نموذج Dockerfile للرجوع إليه.
إشارات SIGTERM وSIGINT: بشكل افتراضي، يتعامل
SIGTERMJVM معSIGINTإشارات ولا يمررها إلى التطبيق إلا إذا اعترضت هذه الإشارات وعالجتها في تطبيقك وفقا لذلك. تستخدم تطبيقات الحاوية كلا منSIGTERMوSIGINTللتحكم في العملية. إذا لم تلتقط هذه الإشارات، وإنهاء تطبيقك بشكل غير متوقع، فقد تفقد هذه الإشارات ما لم تستمر في تخزينها.الوصول إلى صور الحاوية: إذا كنت تستخدم توزيع البيانات الاصطناعية أو التعليمات البرمجية المصدر مع السجل الافتراضي، فلن يكون لديك حق الوصول المباشر إلى صور الحاوية.
مراقبة
تعمل جميع أدوات المراقبة القياسية مع تطبيق Java الخاص بك. أثناء إنشاء تطبيقات Java للتشغيل على Container Apps، ضع في اعتبارك العناصر التالية:
المقاييس: تعد مقاييس جهاز Java الظاهري (JVM) ضرورية لمراقبة صحة وأداء تطبيقات Java الخاصة بك. تتضمن البيانات التي تم جمعها رؤى حول استخدام الذاكرة، وجمع البيانات المهملة، وعدد مؤشرات الترابط ل JVM الخاص بك. يمكنك التحقق من المقاييس للمساعدة في ضمان صحة تطبيقاتك واستقرارها.
التسجيل: إرسال رسائل الخطأ والتطبيق إلى
stdoutأوstderrorحتى تظهر في دفق السجل. تجنب التسجيل مباشرة إلى نظام ملفات الحاوية كما هو شائع عند استخدام خدمات التسجيل الشائعة.تكوين مراقبة الأداء: نشر خدمات مراقبة الأداء كحاوية منفصلة في بيئة تطبيقات الحاوية الخاصة بك حتى تتمكن من الوصول مباشرة إلى التطبيق الخاص بك.
التشخيصات
تقدم Azure Container Apps أدوات تشخيص مضمنة حصريا لمطوري Java. يبسط هذا الدعم تصحيح أخطاء تطبيقات Java التي تعمل على Azure Container Apps واستكشاف الأخطاء وإصلاحها لتحسين الكفاءة وسهولة.
- مستوى المسجل الديناميكي: يسمح لك بالوصول إلى مستوى مختلف من تفاصيل السجل والتحقق منها دون تعديلات التعليمات البرمجية أو إجبارك على إعادة تشغيل تطبيقك. يمكنك عرض تعيين مستوى المسجل الديناميكي للرجوع إليه.
تغير الحجم
إذا كنت بحاجة إلى التأكد من وصول الطلبات من تطبيقات الواجهة الأمامية إلى نفس الخادم، أو تقسيم تطبيق الواجهة الأمامية بين حاويات متعددة، فتأكد من تمكين جلسات العمل الملصقة.
الأمان
ينهي وقت تشغيل Container Apps TLS/SSL لك داخل بيئة Container Apps.
إدارة الذاكرة
للمساعدة في تحسين إدارة الذاكرة في تطبيق Java الخاص بك، يمكنك التأكد من تمكين ملاءمة ذاكرة JVM في تطبيقك.
يتم قياس الذاكرة بأزواج gibibytes (Gi) ووحدات المعالجة المركزية الأساسية. يعرض الجدول التالي نطاق الموارد المتوفرة لتطبيق الحاوية.
| الحد | وحدة المعالجة المركزية | الذاكرة في جيبي بايت (Gi) |
|---|---|---|
| الحد الأدنى | 0.25 | 0.5 |
| الحد الأقصى | 4 | 8 |
تتوفر الذاكرات الأساسية بزيادات 0.25 نواة، مع توفر الذاكرة بنسبة 2:1. على سبيل المثال، إذا كنت تحتاج إلى 1.25 نواة، فلديك 2.5 جيجابت من الذاكرة المتوفرة لتطبيق الحاوية.
إشعار
بالنسبة للتطبيقات التي تستخدم إصدارات JDK 9 والإصدارات الأقل، تأكد من تحديد إعدادات ذاكرة JVM المخصصة لمطابقة تخصيص الذاكرة في Azure Container Apps.
دعم مكونات Java
توفر Azure Container Apps الدعم لمكونات Java التالية كخدمات مدارة:
خادم يوريكا ل Spring: تسجيل الخدمة واكتشافها هما من المتطلبات الرئيسية للحفاظ على قائمة بمثيلات التطبيق المباشر. يستخدم التطبيق الخاص بك هذه القائمة لتوجيه الطلبات الواردة وموازنة التحميل. يستغرق تكوين كل عميل وقتاً يدوياً، ويقدم إمكانية حدوث خطأ بشري. يبسط خادم يوريكا إدارة اكتشاف الخدمة من خلال العمل كسجل خدمة حيث يمكن للخدمات المصغرة تسجيل نفسها واكتشاف خدمات أخرى داخل النظام.
خادم التكوين ل Spring: يوفر خادم التكوين إدارة تكوين خارجية مركزية للأنظمة الموزعة. تم تصميم هذا المكون لمواجهة تحديات إدارة إعدادات التكوين عبر خدمات مصغرة متعددة في بيئة سحابية أصلية.
بوابة الربيع: توفر بوابة Spring طريقة فعالة وقوية لتوجيه طلبات واجهة برمجة التطبيقات وإدارتها والتعامل معها كجزء من بنية الخدمات المصغرة. وهو بمثابة بوابة واجهة برمجة التطبيقات التي توجه الطلبات الخارجية إلى خدمات مختلفة، وإضافة قدرات مختلفة مثل التصفية وموازنة التحميل والمزيد.
المسؤول ل Spring: يوفر المكون المدار من قبل مسؤول Spring واجهة إدارية لتطبيقات ويب Spring Boot التي تحتوي على نقاط نهاية وحدة تشغيل. يوفر المكون المدار التكامل والإدارة لتطبيق الحاوية الخاص بك من خلال السماح لك بربط تطبيق الحاوية الخاص بك بمكون Admin for Spring.