Menyebarkan aplikasi Java dengan percaya diri dan mudah
Ekosistem Java mencakup beragam teknologi seperti Java SE, Jakarta EE (penerus Java EE dan J2EE), Spring, banyak server aplikasi, dan kerangka kerja lainnya. Apa pun yang Anda lakukan dengan Java - membangun aplikasi, menggunakan kerangka kerja, dan menjalankan server aplikasi - Azure mendukung beban kerja Anda dengan banyak pilihan. Demikian pula, Azure mendukung arsitektur aplikasi apa pun - dari aplikasi monolitik yang berjalan pada VM atau dalam kontainer hingga aplikasi berbasis layanan mikro asli cloud yang berjalan pada layanan yang dikelola sepenuhnya.
Biasanya, untuk menjalankan aplikasi Java, Anda menyebarkannya ke server aplikasi - instans Java Virtual Machine (JVM) yang menjalankan aplikasi Anda. Atau Anda dapat membangun aplikasi mandiri dengan server aplikasi yang disematkan. Bagaimanapun, server aplikasi menyediakan infrastruktur aplikasi umum dan kemampuan fungsional, berkolaborasi dengan kontainer Web untuk mengembalikan respons dinamis dan disesuaikan terhadap permintaan klien. Permintaan klien dapat diproses menggunakan komponen perangkat lunak yang mungkin mencakup servlet, halaman dinamis, biji perusahaan, kelas pendukung, pustaka dependen, dan driver data.
Tomcat, JBoss EAP, WildFly, WebLogic, dan WebSphere adalah server aplikasi populer. Demikian pula, Spring Boot, Quarkus, dan Open Liberty adalah kerangka kerja populer untuk membangun aplikasi mandiri dengan server aplikasi yang disematkan. Azure mendukung semuanya, memungkinkan Anda menggunakan server aplikasi Java apa pun dan menyebarkan aplikasi Java Anda dengan percaya diri dan mudah.
Menyebarkan aplikasi Spring Boot atau Java ke server aplikasi apa pun - Tomcat dan Jakarta EE
Dengan Azure, Anda dapat menjalankan versi apa pun dan distribusi Java dan server aplikasi apa pun, tanpa batasan, dan tanpa harus mengelola infrastruktur fisik Anda sendiri. Anda memutuskan berapa banyak kontrol yang Anda inginkan, atau berapa banyak manajemen sehari-hari yang ingin Anda tangani Azure untuk Anda dengan opsi seperti komputer virtual, kontainer, dan layanan yang dikelola sepenuhnya. Jika Anda menggunakan server atau kerangka kerja aplikasi Java yang didukung secara komersial - seperti VMware Spring Runtime, Red Hat JBoss EAP, Oracle WebLogic Server, atau IBM WebSphere, Liberty, atau OpenLiberty - Azure menawarkan penawaran yang dikembangkan dan didukung bersama untuk semuanya.
Opsi penyebaran
Azure menyediakan banyak opsi penyebaran untuk aplikasi Java, termasuk layanan infrastruktur sebagai layanan (IaaS), kontainer sebagai layanan (CaaS), dan layanan hosting platform-as-a-service (PaaS). Anda dapat mengalihkan dan mengalihkan aplikasi Java yang ada ke komputer virtual (VM), menampungnya dalam beberapa cara, atau menyebarkannya ke layanan PaaS yang dikelola sepenuhnya untuk mengoptimalkan kemudahan manajemen, pengembang, dan produktivitas operasional, dan total biaya kepemilikan.
VM dan kontainer
Anda bebas menggunakan distribusi dan versi Java apa pun - dan server aplikasi apa pun - saat Anda menyebarkan ke komputer virtual atau kontainer di Azure. Pilihan sepenuhnya terserah Anda. Ingat saja, Anda perlu mengonfigurasi infrastruktur dan komponennya secara manual. Opsi penyebaran yang termasuk dalam kategori ini meliputi:
Azure Virtual Machines, yang memberi Anda fleksibilitas virtualisasi tanpa harus membeli dan memelihara perangkat keras fisik yang menjalankannya. Namun, Anda masih perlu mempertahankan VM dengan menginstal, mengonfigurasi, dan menambal perangkat lunak yang berjalan di atasnya.
Azure Virtual Machine Scale Sets, yang memungkinkan Anda membuat dan mengelola sekelompok VM yang seimbang bebannya. Jumlah instans komputer virtual bisa secara otomatis meningkat atau menurun sebagai respons terhadap permintaan atau jadwal yang ditentukan.
Azure Kubernetes Service (AKS), yang menyederhanakan penyebaran kluster Kubernetes terkelola dengan menangani semua overhead operasional untuk Anda - termasuk tugas penting seperti pemeliharaan dan pemantauan kesehatan. AKS mendukung provisi kapasitas elastis, termasuk penskalaan otomatis berbasis peristiwa dan pemicu KEDA.
Azure Red Hat OpenShift, yang menyediakan kluster OpenShift yang sangat tersedia dan dikelola sepenuhnya sesuai permintaan. OpenShift memberikan fitur bernilai tambah untuk melengkapi Kubernetes, menjadikannya platform kontainer turnkey yang memberikan pengalaman pengembang dan operator yang lebih baik.
Meskipun Anda dapat menyebarkan runtime Java apa pun di semua layanan IaaS dan CaaS ini, kami sarankan Anda menggunakan salah satu runtime berikut:
Microsoft Build of OpenJDK untuk Java 11 atau 17 - gambar kontainer dasar yang disediakan dan dikelola Microsoft.
Eclipse Adoptium Temurin untuk Java 8 - runtime Java yang disediakan oleh proyek Eclipse Adoptium (sebelumnya proyek OpenJDK).
Kedua build ini tersedia secara gratis untuk pengembangan dan pengujian lokal, dan untuk membangun biner siap produksi menggunakan platform atau alat DevOps apa pun - tanpa harus membayar biaya lisensi apa pun. Kami merekomendasikan mereka sebagai masalah kenyamanan. Saat Anda menggunakan salah satu build ini, jika Anda memiliki masalah dan memiliki paket dukungan yang memenuhi syarat untuk Azure, Anda dapat membuka tiket dukungan Azure - tanpa biaya lagi. Meskipun demikian, ada baiknya menunjukkan bahwa rekomendasi ini hanyalah itu - opsi yang kami rekomendasikan di antara berbagai build OpenJDK lain yang tersedia secara bebas untuk kemudahan dukungan. Untuk informasi selengkapnya, lihat Ddukungan Java di Azure dan Azure Stack.
Semua opsi penyebaran IaaS dan CaaS ini memungkinkan Anda dengan mudah menyebarkan server aplikasi Apache Tomcat. Jika Anda menggunakan penawaran komersial - seperti Spring Runtime dari VMware, JBoss EAP dari Red Hat, WebLogic Server dari Oracle, atau WebSphere dari IBM - Azure juga menawarkan opsi hosting yang dikembangkan dan didukung bersama dari vendor tersebut. Mereka tercakup nanti, di bawah Solusi yang dibangun bersama dan didukung dengan mitra ekosistem Java.
Layanan terkelola penuh (PaaS)
Layanan PaaS yang dikelola sepenuhnya untuk menjalankan aplikasi Java di Azure mencakup opsi berikut:
- Azure Container Apps, yang memungkinkan Anda menjalankan layanan mikro dan aplikasi kontainer pada platform tanpa server. Penggunaan umum termasuk menyebarkan titik akhir API, menghosting aplikasi pemrosesan latar belakang, menangani pemrosesan berbasis peristiwa, dan menjalankan layanan mikro. Aplikasi yang dibangun di Azure Container Apps dapat menskalakan secara dinamis berdasarkan lalu lintas HTTP, pemrosesan berbasis peristiwa, CPU, atau beban memori, atau scaler yang didukung KEDA.
- Azure App Service, layanan berbasis HTTP untuk menghosting aplikasi web, REST API, dan back end seluler - dengan keamanan bawaan, penyeimbangan beban, penskalaan otomatis, dan manajemen otomatis. App Service juga mendukung kemampuan DevOps yang komprehensif, seperti penyebaran berkelanjutan, manajemen paket, lingkungan penahapan, domain kustom, dan sertifikat TLS/SSL.
Runtime Java untuk Azure App Service dan untuk Azure Container Apps yang disebarkan sebagai kode atau biner (JAR/WAR) disediakan dan dikelola oleh Microsoft. Mereka hanya mendukung distribusi LTS OpenJDK, menggunakan Eclipse Adoptium Temurin untuk Java 8 dan Microsoft Build of OpenJDK untuk Java 11 dan 17. Yang mengatakan, ada beberapa peringatan - misalnya, penawaran mitra kami yang dikembangkan dan didukung bersama (dibahas nanti) menggunakan runtime mereka sendiri.
Untuk Azure Container Apps yang dibangun dari gambar kontainer Anda sendiri, karena Anda perlu membuat dan mengelola gambar kontainer Anda sendiri dari kode sumber, Anda bebas menggunakan distribusi dan versi Java - dan server aplikasi - pilihan Anda.
Fungsi tanpa server
Terkadang Anda tidak memerlukan seluruh aplikasi Java. Misalnya, untuk pemrosesan data real time, Anda mungkin hanya memerlukan sepotong kecil kode yang dapat dipicu dalam skala besar - mungkin oleh jutaan dan jutaan peristiwa. Peristiwa tersebut dapat diserap melalui Azure Event Hubs, diproses oleh kode Java tanpa server berbasis peristiwa yang berjalan dalam skala besar di Azure Functions, dan disimpan ke penyimpanan data seperti Azure Cosmos DB.
Solusi yang dibangun dan didukung bersama dengan mitra ekosistem Java
Microsoft telah bermitra dengan vendor terkemuka dalam ekosistem Java untuk memberikan solusi terbaik di kelasnya untuk menjalankan Java di Azure - mulai dari layanan terkelola yang dikembangkan dan didukung bersama hingga penawaran Marketplace Azure untuk server aplikasi Java populer. Kami juga mengintegrasikan alat pemantauan aplikasi populer, yang dibahas nanti dalam dokumentasi ini.
JBoss EAP (Red Hat)
Red Hat menyediakan solusi sumber terbuka untuk perusahaan. Salah satu solusi tersebut adalah JBoss Enterprise Application Platform (EAP), platform server aplikasi populer yang bersertifikat Java EE dan Jakarta EE Compliant di Profil Web dan Platform Lengkap. Red Hat juga merupakan kontributor untuk standar Java , OpenJDK, MicroProfile, Jakarta EE, dan Quarkus.
Kami bermitra dengan Red Hat untuk memberikan Red Hat JBoss Enterprise Application Platform (EAP) di Azure App Service - memungkinkan pengembang Java untuk menyebarkan aplikasi EE Jakarta mereka ke App Service tanpa memerlukan langganan atau lisensi Red Hat terpisah dengan dukungan terintegrasi dari kedua perusahaan. Kami juga meluncurkan penawaran bersama serupa untuk JBoss EAP di Azure VM, pada Azure VM Scale Sets, dan di Azure RedHat OpenShift (ARO) - yang terakhir juga dioperasikan bersama oleh Microsoft dan Red Hat.
WebLogic Server (Oracle)
Kami bermitra dengan Oracle untuk mengirimkan Oracle WebLogic Server (WLS) di Azure VM dan Oracle WebLogic Server di Azure Kubernetes Service. Solusi ini memfasilitasi migrasi mudah ke Azure dengan mengotomatiskan operasi boilerplate seperti menyediakan jaringan/penyimpanan virtual, menginstal sumber daya Linux/Java, menyiapkan WebLogic Server, dan mengonfigurasi keamanan dengan kelompok keamanan jaringan.
WebSphere/Liberty/Open Liberty (IBM)
Kami bermitra dengan IBM, bersama-sama mengembangkan solusi untuk WebSphere Application Server (WAS) di Azure VM, WebSphere Liberty dan Open Liberty di Azure Kubernetes Service, dan WebSphere Liberty dan Open Liberty di Azure Red Hat OpenShift. Untuk informasi selengkapnya, lihat Apa solusi untuk menjalankan kumpulan produk IBM WebSphere di Azure? Solusi ini memungkinkan migrasi beban kerja WebSphere yang mudah ke Azure, mengotomatiskan sebagian besar tugas provisi sumber daya yang diperlukan untuk menyiapkan kluster WebSphere yang sangat tersedia. Kemitraan mencakup berbagai kasus penggunaan - dari beban kerja misi penting yang ada hingga aplikasi cloud-native.
Apache Kafka di Confluent Cloud (Confluent)
Di masa lalu, pelanggan Azure yang ingin menggunakan layanan Kafka Confluent harus membuat dan mengelola sumber daya dan pengguna secara terpisah di Azure dan Confluent Cloud. Untuk meringankan rasa sakit ini, Confluent dan Microsoft bermitra untuk memberikan Apache Kafka untuk Confluent Cloud, penawaran Marketplace Azure yang menyediakan Apache Kafka sebagai layanan yang dikelola sepenuhnya - termasuk kemampuan untuk membuat dan mengelola sumber daya Confluent Cloud melalui portal Azure, Azure CLI, atau Azure Management SDK.
Saat ini, pengalaman pelanggan lebih sederhana, lebih aman, dan lebih mulus. Pelanggan dapat menyediakan dan mengelola sumber daya Confluent Cloud bersama dengan sumber daya Azure mereka, sebagai bagian dari alur kerja terpadu - dan memanfaatkan konektor terkelola sepenuhnya yang dibangun untuk Azure Functions, Azure Blob Storage, Azure Event Hubs, Azure Data Lake Storage Gen2, dan Microsoft SQL Server. Pengembang dapat terus membuat kode menggunakan pustaka klien Apache Kafka.
Ringkasan
Pengembangan bersama dengan mitra untuk banyak penawaran ini adalah upaya berkelanjutan dan berkelanjutan. Karena mitra kami terus berinovasi pada penawaran mereka, kami bekerja sama dengan mereka untuk dengan cepat menghadirkan inovasi yang sama ke Azure - sehingga pelanggan dapat menyebarkan dan menskalakan aplikasi Java mereka dengan percaya diri dan mudah.
Singkatnya, Azure mendukung beban kerja Anda dengan banyak pilihan terlepas dari apa yang Anda lakukan dengan Java. Anda dapat membuat aplikasi Java apa pun, menggunakan kerangka kerja apa pun, menjalankan server aplikasi apa pun, dan mendukung arsitektur aplikasi apa pun - mulai dari aplikasi monolitik yang berjalan di VM atau dalam kontainer hingga aplikasi berbasis cloud-native, layanan mikro yang berjalan pada layanan yang dikelola sepenuhnya.
Langkah selanjutnya
Menskalakan dengan keamanan, pemantauan, dan otomatisasi end-to-end