مقارنة خيارات استضافة تطبيقات Java على Azure

Azure Spring Apps
Azure App Service
Azure Kubernetes Service (AKS)
Azure Virtual Machines

يقدم Azure العديد من الخيارات للفرق لإنشاء تطبيقات Java ونشرها. تغطي هذه المقالة السيناريوهات الرئيسية ل Java على Azure وتوفر اقتراحات واعتبارات تخطيط عالية المستوى.

Apache® وApache Kafka وApache Struts وApache Tomcat وشعار اللهب إما علامات تجارية مسجلة أو علامات تجارية لمؤسسة برامج Apache في الولايات المتحدة و/أو بلدان أخرى. لا توجد موافقة ضمنية من Apache Software Foundation باستخدام هذه العلامات.

النظام الأساسي

قبل تحديد سيناريو سحابة لتطبيق Java الخاص بك، حدد نظامه الأساسي. تستخدم معظم تطبيقات Java إحدى الأنظمة الأساسية التالية:

تطبيقات Spring Boot JAR

عادة ما يتم استدعاء تطبيقات Spring Boot JAR مباشرة من سطر الأوامر. إنهم يتعاملون مع طلبات الويب. بدلا من الاعتماد على خادم تطبيق لمعالجة طلبات HTTP، تتضمن هذه التطبيقات اتصال HTTP والتبعيات الأخرى مباشرة في حزمة التطبيق. غالبا ما يتم إنشاء مثل هذه التطبيقات مع أطر عمل مثل Spring Boot وDropwizard وMicronaut وMicroProfile وVert.x.

يتم حزم هذه التطبيقات في أرشيفات تحتوي على ملحق .jar ، والمعروفة باسم ملفات JAR.

تطبيقات Spring Cloud

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

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

يتم حزم هذه الخدمات في تطبيقات متعددة كملفات JAR.

تطبيقات الويب

تعمل تطبيقات الويب داخل حاوية servlet. يستخدم البعض واجهات برمجة تطبيقات servlet مباشرة، بينما يستخدم البعض الآخر أطر عمل أخرى تغلف واجهات برمجة تطبيقات servlet، مثل Apache Struts وSpring MVC وJavaServer Faces.

يتم حزم تطبيقات الويب في الأرشيفات التي تحتوي على ملحق .war ، والمعروفة باسم ملفات WAR.

تطبيقات Jakarta EE

يمكن أن تحتوي تطبيقات Jakarta Enterprise Edition (Jakarta EE) على بعض عناصر تطبيقات الويب أو كلها أو لا تحتوي على أي منها. كما يمكن أن تحتوي على العديد من المكونات وتستهلكها، كما هو محدد من قبل مواصفات Jakarta EE. كانت تطبيقات Jakarta EE تعرف سابقا باسم تطبيقات Java EE أو تطبيقات J2EE.

يمكن حزم تطبيقات Jakarta EE كملفات WAR أو كأرشيفات تحتوي على ملحق .ear ، والمعروفة باسم ملفات EAR.

يجب نشر تطبيقات Jakarta EE على خوادم التطبيقات المتوافقة مع Jakarta EE. ومن الأمثلة على ذلك WebLogic وWebSphere و WildFly و GlassFish و Payara.

يمكن ترحيل التطبيقات التي تعتمد فقط على الميزات التي توفرها مواصفات Jakarta EE من خادم تطبيق متوافق إلى خادم تطبيق آخر. إذا كان تطبيقك يعتمد على خادم تطبيق معين، فقد تحتاج إلى تحديد وجهة خدمة Azure التي تسمح لك باستضافة خادم التطبيق هذا.

خيارات النظام الأساسي

استخدم الجدول التالي لتحديد الأنظمة الأساسية المحتملة لنوع التطبيق الخاص بك.

Azure Spring Apps App Service Java SE App Service Tomcat App Service JBoss EAP Azure Container Apps AKS الأجهزة الظاهرية
تطبيقات Spring Boot / JAR
تطبيقات Spring Cloud
تطبيقات الويب
تطبيقات Jakarta EE
توفر منطقة Azure التفاصيل التفاصيل التفاصيل التفاصيل التفاصيل التفاصيل التفاصيل

تدعم Azure Kubernetes Service (AKS) والأجهزة الظاهرية جميع أنواع التطبيقات، ولكنها تتطلب من فريقك تحمل المزيد من المسؤوليات، كما هو موضح في القسم التالي.

إمكانية الدعم

بالإضافة إلى خيارات النظام الأساسي، قد يكون لتطبيقات Java الحديثة احتياجات دعم أخرى، مثل:

الوظائف الدفعية أو المجدولة

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

يتم حزم هذه التطبيقات كملفات JAR.

إشعار

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

تكامل الشبكة الظاهرية

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

نموذج تطوير بلا خادم

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

التعبئة في حاويات

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

CI/CD

التكامل المستمر والتسليم المستمر (CI/CD) هو طريقة لتقديم التطبيقات بشكل متكرر للعملاء من خلال إدخال الأتمتة في مراحل تطوير التطبيقات. المفاهيم الرئيسية في CI/CD هي التكامل المستمر والتسليم المستمر والنشر المستمر. تدعم جميع خيارات Azure معظم أدوات CI/CD. على سبيل المثال، قد تستخدم حلولا مثل Azure Pipelines أو Jenkins.

محرك بحث مفتوح المصدر

عمليات البحث هي أجزاء متكاملة من أي تطبيق. إذا كانت السرعة والأداء والتوافر العالي أمرا بالغ الأهمية، يمكن أن تكون عمليات البحث على تيرابايت والبتابايت من البيانات صعبة. عند استضافة تطبيقات Java على Azure، خطط لاستضافة مثيلات Solr و Elasticsearch ذات الصلة. بدلا من ذلك، ضع في اعتبارك الترحيل إلى Azure Cognitive Search.

أدوات البيانات الضخمة

تتيح أدوات البيانات الضخمة أتمتة تدفق البيانات بين أنظمة البرامج. وهي تدعم الرسوم البيانية لتوجيه البيانات القابلة للتطوير والقوة والمبسطة جنبا إلى جنب مع منطق وساطة النظام. يتم استخدامها لبناء مسارات تدفق البيانات المباشرة وتطبيقات الدفق. تعرف على كيفية ملاءمة Nifi وApache Kafka على Azure لاحتياجاتك.

خيارات إمكانية الدعم

استخدم الجدول التالي لتحديد الخيارات المحتملة لنوع التطبيق الخاص بك. تدعم AKS والأجهزة الظاهرية جميع أنواع التطبيقات، ولكنها تتطلب من فريقك تحمل المزيد من المسؤوليات.

Azure Spring Apps App Service Java SE App Service Tomcat App Service JBoss EAP Azure Container Apps AKS الأجهزة الظاهرية
الوظائف الدفعية أو المجدولة
تكامل الشبكة الظاهرية
بلا خادم
التعبئة في حاويات
توفر منطقة Azure التفاصيل التفاصيل التفاصيل التفاصيل التفاصيل التفاصيل التفاصيل

أيضا، راجع شجرة القرار هذه.

يوضح الرسم التخطيطي شجرة قرارات ل Java على خدمات Azure.

قم بتنزيل ملف Visio لهذا الرسم التخطيطي.

إنشاء تطبيقات Java أو ترحيلها

لإنشاء تطبيقات Java أو ترحيلها، حدد النظام الأساسي Java لتطبيقاتك. بعض الأنظمة الأساسية الشائعة هي Java SE و Jakarta EE و MicroProfile.

Java SE

Java Platform، الإصدار القياسي (Java SE) هو نظام أساسي للحوسبة لتطوير ونشر التعليمات البرمجية المحمولة لبيئات سطح المكتب والخادم. تتضمن المشاريع الشائعة المبنية على Java SE Spring Boot وSpring Cloud وSpring Framework وApache Tomcat.

Jakarta EE

Jakarta EE هو المستقبل مصدر مفتوح ل Java للمؤسسة السحابية الأصلية. إنها مجموعة من المواصفات التي توسع Java SE مع ميزات المؤسسة مثل الحوسبة الموزعة وخدمات الويب. تعمل تطبيقات Jakarta EE على تشغيل أوقات التشغيل المرجعية. يمكن أن تكون أوقات التشغيل هذه خدمات مصغرة أو خوادم تطبيقات. وهي تتعامل مع المعاملات والأمان وقابلية التوسع والتزامن وإدارة المكونات التي ينشرها التطبيق.

ملف MicroProfile

يوفر مشروع MicroProfile مجموعة من المواصفات المصممة لمساعدة المطورين على إنشاء خدمات مصغرة أصلية على سحابة Enterprise Java. Quarkus وOpen Liberty هما تطبيقان شائعان ل MicroProfile.

إنشاء ملخص أو ترحيله

يوفر الجدول التالي معلومات الإنشاء أو الترحيل حسب نوع التطبيق وخدمة Azure.

نوع Java SE ملف MicroProfile JarkartaSE
الجهاز الظاهري IaaS
VMware Tanzu IaaS
Azure Kubernetes Service الحاوية
Red Hat OpenShift الحاوية
Azure Container App PaaS
JBoss EAP PaaS App Service
Apache Tomcat PaaS App Service
Java SE PaaS App Service
Azure Spring Apps PaaS

المساهمون

تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.

الكتاب الرئيسيون:

لمشاهدة ملفات تعريف LinkedIn غير العامة، سجل الدخول إلى LinkedIn.

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