Menyebarkan aplikasi Java secara manual dengan Open Liberty/WebSphere Liberty pada kluster Azure Red Hat OpenShift
Artikel ini menyediakan panduan manual langkah demi langkah untuk menjalankan Open/WebSphere Liberty pada kluster Azure Red Hat OpenShift. Ini memandu Anda menyiapkan aplikasi Liberty, membangun gambar Docker aplikasi dan menjalankan aplikasi dalam kontainer pada kluster Azure Red Hat OpenShift.
Secara khusus, Anda mempelajari cara menyelesaikan tugas-tugas berikut:
- Menyiapkan aplikasi Liberty
- Membangun gambar aplikasi
- Jalankan aplikasi dalam kontainer pada kluster Azure Red Hat OpenShift menggunakan GUI dan CLI
Untuk solusi yang lebih otomatis yang mempercepat perjalanan Anda ke kluster Azure Red Hat OpenShift, lihat Menyebarkan IBM WebSphere Liberty dan Open Liberty di Azure Red Hat OpenShift menggunakan penawaran Marketplace Azure.
Untuk informasi lebih lanjut tentang Open Liberty, lihat laman proyek Open Liberty. Untuk informasi selengkapnya tentang WebSphere Liberty, lihat halaman produk WebSphere Liberty.
Artikel ini dimaksudkan untuk membantu Anda dengan cepat sampai ke penyebaran. Sebelum pergi ke produksi, Anda harus menjelajahi Tuning Liberty.
Jika Anda tertarik untuk memberikan umpan balik atau bekerja erat pada skenario migrasi Anda dengan tim teknik yang mengembangkan WebSphere di solusi Azure, isi survei singkat ini tentang migrasi WebSphere dan sertakan informasi kontak Anda. Tim manajer program, arsitek, dan insinyur akan segera menghubungi Anda untuk memulai kolaborasi yang erat.
Penting
Meskipun Azure Red Hat OpenShift direkayasa bersama, dioperasikan, dan didukung oleh Red Hat dan Microsoft untuk memberikan pengalaman dukungan terintegrasi, perangkat lunak yang Anda jalankan di atas Azure Red Hat OpenShift, termasuk yang dijelaskan dalam artikel ini, tunduk pada persyaratan dukungan dan lisensinya sendiri. Untuk informasi selengkapnya tentang dukungan untuk Azure Red Hat OpenShift, lihat Siklus hidup dukungan untuk Azure Red Hat OpenShift 4. Untuk informasi selengkapnya tentang dukungan untuk perangkat lunak yang dijelaskan dalam artikel ini, lihat halaman utama untuk perangkat lunak tersebut seperti yang tercantum dalam artikel.
Catatan
Azure Red Hat OpenShift memerlukan minimal 40 inti untuk membuat dan menjalankan kluster OpenShift. Kuota sumber daya Azure default untuk langganan Azure baru tidak memenuhi persyaratan ini. Untuk meminta peningkatan batas sumber daya Anda, lihat Kuota standar: Menambah batas berdasarkan rangkaian komputer virtual. Perhatikan bahwa langganan uji coba gratis tidak memenuhi syarat untuk peningkatan kuota, tingkatkan ke langganan PAYG sebelum meminta peningkatan kuota.
Prasyarat
Komputer lokal dengan sistem operasi seperti Unix terinstal - misalnya, Ubuntu, macOS, atau Subsistem Windows untuk Linux.
Implementasi Java Standard Edition (SE), versi 17 atau yang lebih baru - atau contoh, Eclipse Open J9.
Maven, versi 3.9.8 atau lebih tinggi.
Docker untuk OS Anda.
Azure CLI, versi 2.61.0 atau yang lebih baru.
Kluster Azure Red Hat OpenShift 4. Untuk membuat kluster, ikuti instruksi di Membuat kluster Azure Red Hat OpenShift 4 saat menggunakan instruksi berikut:
Meskipun langkah "Dapatkan rahasia penarikan Red Hat" diberi label opsional, langkah ini diperlukan untuk artikel ini. Rahasia penarikan memungkinkan kluster Azure Red Hat OpenShift Anda menemukan Operator Open Liberty.
Variabel lingkungan berikut yang ditentukan dalam Membuat kluster Azure Red Hat OpenShift 4 digunakan nanti dalam artikel ini:
RESOURCEGROUP
- nama grup sumber daya tempat kluster disebarkan.CLUSTER
- nama kluster.
Jika Anda berencana untuk menjalankan aplikasi intensif memori di kluster, tentukan ukuran komputer virtual yang tepat untuk simpul pekerja menggunakan parameter
--worker-vm-size
. Untuk informasi lebih lanjut, baca artikel berikut:
Sambungkan ke kluster dengan mengikuti langkah-langkah dalam Menyambungkan ke kluster Azure Red Hat OpenShift 4 saat menggunakan instruksi berikut:
- Pastikan untuk mengikuti langkah-langkah di "Instal OpenShift CLI" karena Anda menggunakan perintah nanti
oc
di artikel ini. - Simpan selain URL konsol kluster. Ini akan terlihat seperti:
https://console-openshift-console.apps.<random>.<region>.aroapp.io/
- Catat info masuk
kubeadmin
. - Pastikan untuk mengikuti langkah-langkah di "Sambungkan menggunakan OpenShift CLI" dengan
kubeadmin
kredensial.
- Pastikan untuk mengikuti langkah-langkah di "Instal OpenShift CLI" karena Anda menggunakan perintah nanti
Menginstal Operator Open Liberty OpenShift
Setelah Anda membuat dan menyambungkan ke kluster, gunakan langkah-langkah berikut untuk menginstal Operator Open Liberty. Halaman awal utama untuk Operator Open Liberty ada di GitHub.
Masuk ke konsol web OpenShift dari browser Anda menggunakan info masuk
kubeadmin
.Navigasi ke Operator OperatorHub> dan cari Open Liberty.
Pilih Buka Liberty dari hasil pencarian.
Pilih Instal.
Pada halaman Operator Penginstalan, gunakan langkah-langkah berikut:
- Untuk Perbarui saluran, pilih saluran terbaru v1.3.
- Untuk mode Penginstalan, lihat Lihat Semua namespace pada kluster (default).
- Untuk Persetujuan pembaruan, pilih Otomatis.
Pilih Instal dan tunggu satu atau dua menit hingga penginstalan selesai.
Amati bahwa Operator Open Liberty berhasil diinstal dan siap digunakan. Jika belum siap, diagnosis dan selesaikan masalah sebelum melanjutkan.
Catatan
Panduan ini menginstal Operator Open Liberty untuk mengelola aplikasi Liberty pada kluster Azure Red Hat OpenShift. Jika Anda ingin menggunakan Operator WebSphere Liberty, ikuti langkah-langkah dalam Menginstal operator WebSphere Liberty untuk menginstal Operator WebSphere Liberty pada kluster.
Membuat namespace layanan OpenShift untuk aplikasi Java
Gunakan langkah-langkah berikut untuk membuat namespace OpenShift untuk digunakan dengan aplikasi Anda:
Pastikan Anda masuk ke konsol web OpenShift dari browser Anda menggunakan
kubeadmin
kredensial.Navigasikan ke Administrasi>Namespace Layanan>Buat Namespace Layanan.
Isi
open-liberty-demo
untuk Nama dan pilih Buat, seperti yang ditunjukkan berikutnya.
Membuat Server Fleksibel Azure Database for MySQL
Model penyebaran Azure Database for MySQL Flexible Server adalah mode penyebaran yang dirancang untuk memberikan kontrol dan fleksibilitas yang lebih terperinci atas fungsi manajemen database dan pengaturan konfigurasi daripada mode penyebaran server tunggal Azure Database for MySQL. Bagian ini memperlihatkan kepada Anda cara membuat instans Azure Database for MySQL Flexible Server menggunakan Azure CLI. Untuk informasi selengkapnya, lihat Mulai Cepat: Membuat instans Azure Database for MySQL - Server Fleksibel dengan menggunakan Azure CLI.
Jalankan perintah berikut di terminal Anda untuk membuat instans Azure Database for MySQL Flexible Server. Ganti <server-admin-password>
dengan kata sandi yang memenuhi persyaratan kompleksitas kata sandi untuk Azure Database for MySQL Flexible Server.
az mysql flexible-server create \
--name ${CLUSTER} \
--resource-group ${RESOURCEGROUP} \
--admin-user admin${RESOURCEGROUP} \
--admin-password '<server-admin-password>' \
--database-name ${RESOURCEGROUP}db \
--public-access 0.0.0.0 \
--yes
Catatan
Jika Anda menerima pesan kesalahan Tidak ada SKU yang tersedia di lokasi ini, Anda perlu menentukan lokasi lain menggunakan --location
parameter dan mencoba lagi. Gunakan perintah berikut untuk mencantumkan SKU yang tersedia di lokasi tertentu:
az mysql flexible-server list-skus --location <Location>
Temukan lokasi yang memiliki SKU yang tersedia lalu ulangi sebelumnya az mysql flexible-server create command
, tetapi tambahkan parameter yang sesuai --location <Location>
, biarkan semua parameter lain tidak berubah.
Dibutuhkan beberapa menit untuk membuat server, database, pengguna admin, dan aturan firewall yang menerima koneksi dari semua sumber daya Azure. Jika perintah berhasil, output terlihat mirip dengan contoh berikut:
{
"connectionString": "mysql <database-name> --host <server-name>.mysql.database.azure.com --user <server-admin-username> --password=<server-admin-password>",
"databaseName": "<database-name>",
"firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2024-7-10_16-22-8",
"host": "<server-name>.mysql.database.azure.com",
"id": "/subscriptions/REDACTED/resourceGroups/<resource-group-of-the-OpenShift-cluster>/providers/Microsoft.DBforMySQL/flexibleServers/<server-name>",
"location": "West US",
"password": "<server-admin-password>",
"resourceGroup": "<resource-group-of-the-OpenShift-cluster>",
"skuname": "Standard_B1ms",
"username": "<server-admin-username>",
"version": "5.7"
}
Menyiapkan aplikasi Liberty
Kami menggunakan aplikasi Java EE 8 sebagai contoh kami dalam panduan ini. Open Liberty adalah server yang kompatibel dengan profil lengkap Java EE 8, sehingga dapat menjalankan aplikasi dengan mudah. Open Liberty juga kompatibel dengan profil lengkap Jakarta EE 8.
Menjalankan aplikasi di Open Liberty
Untuk menjalankan aplikasi di Open Liberty, Anda perlu membuat file konfigurasi server Open Liberty sehingga plugin Liberty Maven dapat mengemas aplikasi untuk penyebaran. Plugin Liberty Maven tidak diperlukan untuk menyebarkan aplikasi ke OpenShift. Namun, kami menggunakannya dalam contoh ini dengan mode pengembang (dev) Open Liberty. Mode pengembang memungkinkan Anda dengan mudah menjalankan aplikasi secara lokal. Untuk mempelajari lebih lanjut tentang liberty-maven-plugin
, lihat Membangun aplikasi web dengan Maven.
Ikuti langkah-langkah di bagian ini untuk menyiapkan aplikasi sampel untuk digunakan nanti dalam artikel ini. Langkah-langkah ini menggunakan Maven dan liberty-maven-plugin
.
Lihat aplikasinya
Gunakan perintah berikut untuk mengkloning kode sampel untuk panduan ini. Sampelnya ada di GitHub.
git clone https://github.com/Azure-Samples/open-liberty-on-aro.git
cd open-liberty-on-aro
export BASE_DIR=$PWD
git checkout 20240920
cd ${BASE_DIR}/3-integration/connect-db/mysql
Jika Anda melihat pesan tentang berada dalam status "HEAD yang terlepas", pesan ini aman untuk diabaikan. Ini hanya berarti Anda memeriksa tag.
Terdapat beberapa sampel di repositori. Kami menggunakan open-liberty-on-aro/3-integration/connect-db/mysql. Berikut adalah struktur file aplikasi:
open-liberty-on-aro/3-integration/connect-db/mysql
├─ src/main/
│ ├─ aro/
│ │ ├─ db-secret.yaml
│ │ ├─ openlibertyapplication.yaml
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ Dockerfile
├─ Dockerfile-wlp
├─ pom.xml
Direktori java, resources, dan webapp berisi kode sumber dari contoh aplikasi. Kode mendeklarasikan dan menggunakan sumber data bernama jdbc/JavaEECafeDB
.
Di direktori aro, kami menempatkan dua file penyebaran. db-secret.xml digunakan untuk membuat Rahasia dengan kredensial koneksi database. File openlibertyapplication.yaml digunakan untuk menyebarkan gambar aplikasi.
Di direktori akar, kami menempatkan dua Dockerfiles. Dockerfile dan Dockerfile-wlp digunakan untuk penelusuran kesalahan lokal dan untuk membangun gambar untuk penyebaran Azure Red Hat OpenShift, masing-masing bekerja dengan Open Liberty dan WebSphere Liberty.
Dalam direktori liberty/config, server.xml digunakan untuk mengonfigurasi koneksi database untuk kluster Open Liberty dan WebSphere Liberty.
Membangun proyek
Menggunakan variabel lingkungan yang ditentukan sebelumnya, jalankan perintah berikut di terminal Anda untuk membangun proyek. File POM untuk proyek membaca banyak properti dari lingkungan.
cd ${BASE_DIR}/3-integration/connect-db/mysql
# The following variables are used for deployment file generation
export DB_SERVER_NAME=$CLUSTER.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=${RESOURCEGROUP}db
export DB_USER=admin${RESOURCEGROUP}
export DB_PASSWORD='<server-admin-password>'
export NAMESPACE=open-liberty-demo
mvn clean install
(Opsional) Menguji aplikasi Anda secara lokal
Secara opsional, Anda dapat menjalankan aplikasi secara lokal untuk memverifikasi bahwa aplikasi berfungsi seperti yang diharapkan. Pertama, Anda perlu menambahkan aturan firewall untuk memungkinkan komputer lokal Anda tersambung ke instans Server Fleksibel Azure Database for MySQL. Gunakan langkah-langkah berikut untuk menambahkan aturan firewall:
- Masuk ke portal Azure dan navigasikan ke instans Server Fleksibel Azure Database for MySQL yang Anda buat sebelumnya.
- Di panel kiri, pilih Pengaturan>Jaringan.
- Pilih Tambahkan alamat IP klien saat ini.
- Pilih Simpan dan tunggu hingga aturan firewall ditambahkan.
Gunakan langkah-langkah berikut untuk menjalankan liberty:devc
perintah untuk menjalankan dan menguji gambar proyek dan kontainer secara lokal sebelum berurusan dengan kompleksitas Azure apa pun. Untuk informasi lebih lanjut tentang liberty:devc
, lihat dokumentasi Plugin Liberty.
Mulai lingkungan Docker lokal Anda jika diperlukan. Petunjuk untuk melakukan ini bervariasi tergantung pada sistem operasi host.
Gunakan perintah berikut untuk memulai aplikasi dalam
liberty:devc
mode:cd ${BASE_DIR}/3-integration/connect-db/mysql # If you are running with Open Liberty mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile # If you are running with WebSphere Liberty mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile-wlp
Verifikasi aplikasi berfungsi seperti yang diharapkan. Anda akan melihat pesan yang serupa dengan
[INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.
di output perintah jika berhasil. Bukahttps://localhost:9443/
di browser Anda dan pastikan aplikasi dapat diakses dan semua fungsi berfungsi.Untuk menghentikan
liberty:devc
mode, tekan Control+C.
Menyiapkan gambar aplikasi
Untuk menyebarkan dan menjalankan aplikasi Liberty Anda pada kluster Azure Red Hat OpenShift, kontainerisasi aplikasi Anda sebagai gambar Docker menggunakan gambar kontainer Open Liberty atau gambar kontainer WebSphere Liberty.
Bangun aplikasi dan dorong ke aliran gambar
Karena Anda sudah berhasil menjalankan aplikasi di kontainer Liberty Docker menggunakan liberty:devc
perintah , Anda akan membangun gambar dari jarak jauh pada kluster dengan menggunakan langkah-langkah berikut:
Pastikan Anda masuk ke OpenShift CLI menggunakan
kubeadmin
kredensial.Gunakan perintah berikut untuk mengidentifikasi direktori sumber dan Dockerfile:
cd ${BASE_DIR}/3-integration/connect-db/mysql # If you are building with the Open Liberty base image, the existing Dockerfile is ready for you # If you are building with the WebSphere Liberty base image, uncomment and execute the following two commands to rename Dockerfile-wlp to Dockerfile # mv Dockerfile Dockerfile.backup # mv Dockerfile-wlp Dockerfile
Gunakan perintah berikut untuk mengubah proyek menjadi open-liberty-demo:
oc project open-liberty-demo
Gunakan perintah berikut untuk membuat aliran gambar:
oc create imagestream javaee-cafe-mysql
Gunakan perintah berikut untuk membuat konfigurasi build yang menentukan tag aliran gambar dari output build:
oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1
Gunakan perintah berikut untuk memulai build untuk mengunggah konten lokal, kontainerisasi, dan output ke tag aliran gambar yang ditentukan sebelumnya:
oc start-build javaee-cafe-mysql-config --from-dir . --follow
Menyebarkan aplikasi pada kluster Azure Red Hat OpenShift
Sekarang Anda dapat menyebarkan sampel aplikasi Liberty ke kluster Azure Red Hat OpenShift yang Anda buat sebelumnya saat bekerja melalui prasyarat.
Menyebarkan aplikasi dari konsol web
Karena kita menggunakan Operator Open Liberty untuk mengelola aplikasi Liberty, kita perlu membuat instans Definisi Sumber Daya Kustomnya, dari jenis OpenLibertyApplication
. Operator mengurus semua aspek pengelolaan sumber daya OpenShift yang diperlukan untuk penyebaran. Gunakan langkah-langkah berikut untuk membuat instans ini:
Masuk ke konsol web OpenShift dari browser Anda menggunakan info masuk
kubeadmin
.Pilih proyek dengan mengunjungi Proyek Rumah>>open-liberty-demo.
Navigasi ke Rahasia Beban>Kerja.
Pilih Buat> dari YAML.
Ganti yaml yang dihasilkan dengan yaml Anda, yang terletak di <path-to-repo>/3-integration/connect-db/mysql/target/db-secret.yaml.
Pilih Buat. Anda dikembalikan ke halaman Detail rahasia.
Navigasikan ke Operator>Operator Terinstal.
Di tengah halaman, Anda akan melihat Open Liberty.
Dari API yang Disediakan, pilih OpenLibertyApplication. Navigasi item di antarmuka pengguna mencerminkan hierarki penahanan aktual dari teknologi yang digunakan.
Pilih Buat OpenLibertyApplication.
Pilih tampilan YAML untuk Konfigurasikan melalui.
Ganti yaml yang dihasilkan dengan yaml Anda, yang terletak di <path-to-repo>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.
Pilih Buat. Anda dikembalikan ke daftar OpenLibertyApplications.
Navigasi ke Operator yang>Diinstal Operator>Open Liberty>OpenLibertyApplication.
Pilih javaee-café-mysql.
Di bagian tengah halaman, pilih Sumber Daya.
Dalam tabel, pilih tautan untuk javaee-café-mysql dengan Jenis Rute.
Pada halaman yang terbuka, pilih tautan di bawah Lokasi.
Beranda aplikasi terbuka di browser.
Menghapus aplikasi dari konsol web
Setelah selesai dengan aplikasi, gunakan langkah-langkah berikut untuk menghapus aplikasi dari Open Shift:
- Di panel navigasi kiri, luaskan entri untuk Operator.
- Pilih Operator Terinstal.
- Pilih Buka Liberty.
- Di tengah halaman, pilih OpenLibertyApplication.
- Untuk javaee-café-mysql, pilih elipsis vertikal (tiga titik vertikal) lalu pilih Hapus OpenLibertyApplication.
- Pilih Hapus untuk menghapus aplikasi.
Gunakan langkah-langkah berikut untuk menghapus rahasia dari Open Shift:
- Navigasi ke Rahasia Beban>Kerja.
- Pilih db-secret-mysql.
- Pilih Tindakan>Hapus Rahasia.
- Pilih Hapus untuk menghapus rahasia.
Membersihkan sumber daya
Hapus kluster Azure Red Hat OpenShift dengan mengikuti langkah-langkah dalam Tutorial: Menghapus kluster Azure Red Hat OpenShift 4. Pastikan database dan sumber daya terkait juga dihapus.
Langkah berikutnya
Anda dapat mempelajari selengkapnya dari referensi yang digunakan dalam panduan ini:
- Open Liberty
- Azure Red Hat OpenShift
- Open Liberty Operator
- Konfigurasi Server Open Liberty
- Plugin Liberty Maven
- Gambar Kontainer Open Liberty
- Gambar Kontainer WebSphere Liberty
Untuk menjelajahi opsi untuk menjalankan produk WebSphere di Azure, lihat Apa solusi untuk menjalankan keluarga produk WebSphere di Azure?