Menyebarkan aplikasi Java dengan Open Liberty/WebSphere Liberty pada kluster Azure Red Hat OpenShift

Panduan ini menunjukkan kepada Anda cara menjalankan aplikasi Java, Java EE, Jakarta EE, atau MicroProfile pada runtime Open Liberty/WebSphere Liberty. Panduan ini kemudian menunjukkan kepada Anda cara menyebarkan aplikasi dalam kontainer ke kluster Azure Red Hat OpenShift 4 menggunakan Operator Open Liberty. Artikel ini memandu Anda menyiapkan aplikasi Liberty, membangun gambar Docker aplikasi dan menjalankan aplikasi dalam kontainer pada kluster Azure Red Hat OpenShift 4. 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 adalah panduan manual langkah demi langkah untuk menjalankan Open/WebSphere Liberty pada kluster Azure Red Hat OpenShift 4. Untuk solusi yang lebih otomatis yang mempercepat perjalanan Anda ke kluster Azure Red Hat OpenShift 4, lihat Menyebarkan IBM WebSphere Liberty dan Open Liberty di Azure Red Hat OpenShift.

Artikel ini dimaksudkan untuk membantu Anda dengan cepat sampai ke penyebaran. Sebelum pergi ke produksi, Anda harus menjelajahi Tuning Liberty.

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.

Prasyarat

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.

Selesaikan prasyarat berikut agar berhasil menggunakan panduan ini.

  1. Siapkan komputer lokal dengan sistem operasi mirip Unix yang diinstal (misalnya, Ubuntu, macOS).

  2. Instal implementasi Java SE, versi 17 atau yang lebih baru (misalnya, Eclipse Open J9).

  3. Instal Maven 3.5.0 atau yang lebih tinggi.

  4. Pasang Docker untuk OS Anda.

  5. Instal Azure CLI 2.0.75 atau yang lebih baru.

  6. Periksa dan instal envsubst jika tidak diinstal sebelumnya di sistem operasi Anda.

  7. Kloning kode untuk sampel ini pada sistem lokal Anda. Sampelnya ada di GitHub.

  8. Ikuti instruksi di Membuat kluster Azure Red Hat OpenShift 4.

    Meskipun langkah "Dapatkan rahasia penarikan Red Hat" diberi label sebagai opsional, diperlukan untuk artikel ini. Rahasia penarikan memungkinkan kluster Azure Red Hat OpenShift Anda menemukan Operator Open Liberty.

    Jika Anda berencana untuk menjalankan aplikasi intensif memori di kluster, tentukan ukuran komputer virtual yang tepat untuk simpul pekerja menggunakan parameter --worker-vm-size. Misalnya, Standard_E4s_v3 adalah ukuran komputer virtual minimum untuk menginstal Operator Elasticsearch pada sebuah kluster. Untuk informasi selengkapnya, lihat:

  9. Sambungkan ke kluster dengan mengikuti langkah-langkah di Menyambungkan ke kluster Azure Red Hat OpenShift 4.

    • Pastikan untuk mengikuti langkah-langkah di "Instal OpenShift CLI" karena kami menggunakan oc perintah nanti di artikel ini.
    • Tulis 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 dalam "Koneksi menggunakan OpenShift CLI" dengan kubeadmin kredensial.

Menginstal Operator Open Liberty OpenShift

Setelah membuat dan menyambungkan ke kluster, instal Operator Open Liberty. Halaman awal utama untuk Operator Open Liberty ada di GitHub.

  1. Masuk ke konsol web OpenShift dari browser Anda menggunakan info masuk kubeadmin.

  2. Navigasi ke Operator OperatorHub> dan cari Open Liberty.

  3. Pilih Buka Liberty dari hasil pencarian.

  4. Pilih Instal.

  5. Di halaman Instal Operator, periksa saluran Pembaruan v1.2, Semua namespace pada kluster (default) untuk mode Penginstalan, dan Otomatis untuk persetujuan Pembaruan:

    Cuplikan layar pembuatan langganan operator untuk Operator Open Liberty.

  6. Pilih Instal dan tunggu satu atau dua menit hingga penginstalan selesai.

  7. Amati Operator Open Liberty berhasil diinstal dan siap digunakan. Jika tidak, lakukan diagnosis dan atasi masalah sebelum melanjutkan.

    Operator Terinstal yang menunjukkan Open Liberty telah diinstal.

Membuat namespace layanan OpenShift untuk aplikasi Java

Gunakan langkah-langkah berikut untuk membuat namespace OpenShift untuk digunakan dengan aplikasi Anda:

  1. Pastikan Anda telah masuk ke konsol web OpenShift dari browser Anda menggunakan kubeadmin kredensial.

  2. Navigasikan ke Administrasi>Namespace Layanan>Buat Namespace Layanan.

  3. Isi open-liberty-demo untuk Nama dan pilih Buat, seperti yang ditunjukkan berikutnya.

    Cuplikan layar pembuatan namespace layanan.

Membuat Azure Database for MySQL

Gunakan langkah-langkah berikut untuk menyiapkan Azure Database for MySQL untuk digunakan dengan aplikasi Anda. Jika aplikasi Anda tidak memerlukan database, Anda dapat melewati bagian ini.

  1. Buat server fleksibel Azure Database for MySQL dengan mengikuti langkah-langkah di: Mulai Cepat: Gunakan portal Azure untuk membuat Azure Database for MySQL - Server Fleksibel. Kembali ke dokumen ini setelah membuat database.

    Catatan

    Pada langkah Dasar, tulis nilai Nama server.mysql.database.azure.com, Nama pengguna admin, dan Kata Sandi.

  2. Setelah database Anda dibuat, buka Jaringan database>Anda.

    1. Di bawah Akses publik, pastikan bahwa Izinkan akses publik ke sumber daya ini melalui internet menggunakan alamat IP publik dipilih.
    2. Pilih Izinkan akses publik dari layanan Azure apa pun dalam Azure ke server ini.
    3. Pastikan alamat IPv4 klien Anda berada dalam daftar yang diizinkan dari aturan Firewall.

    Cuplikan layar mengonfigurasi jaringan database mysql.

  3. Buka database> Anda Koneksi> Pilih Koneksi dari aplikasi>Anda JDBC. Tulis nomor Port berikut alamat server database. Misalnya, 3306 adalah nomor port dalam contoh berikut.

    String url="jdbc:mysql://<Server name>.mysql.database.azure.com:3306/{your_database}?useSSL=true";myDbConn=DriverManager.getConnection(url, "<Server admin username>", "{your_password}");
    
  4. Buka Database> Database>Anda Pilih Tambahkan. Isi nilai untuk Nama dan pilih Simpan untuk membuat database baru. Database ini memiliki jenis Skema sebagai Pengguna dan digunakan untuk aplikasi nanti.

    Catatan

    Tuliskan Nama untuk database yang Anda buat.

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

Kloning 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
git checkout 20231026

Jika Anda melihat pesan tentang berada dalam status "HEAD yang terlepas", pesan ini aman untuk diabaikan. Ini hanya berarti Anda telah 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 DB. 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 DB untuk kluster Open Liberty dan WebSphere Liberty.

Membuat proyek

Sekarang setelah Anda mengumpulkan properti yang diperlukan, Anda dapat membangun aplikasi. File POM untuk proyek membaca banyak properti dari lingkungan.

cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql

# The following variables are used for deployment file generation
export DB_SERVER_NAME=<Server name>.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=<Database name>
export DB_USER=<Server admin username>
export DB_PASSWORD=<Server admin password>
export NAMESPACE=open-liberty-demo

mvn clean install

Menguji aplikasi Anda secara lokal

Gunakan perintah liberty:devc untuk menjalankan dan menguji proyek secara lokal sebelum menangani kerumitan Azure apa pun. Untuk informasi lebih lanjut tentang liberty:devc, lihat dokumentasi Plugin Liberty.

  1. Mulai lingkungan docker lokal Anda jika Anda belum melakukannya. Petunjuk untuk melakukan ini bervariasi tergantung pada sistem operasi host.

  2. Mulai aplikasi dalam mode liberty:devc

    cd <path-to-your-repo>/open-liberty-on-aro/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
    
  3. 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. Buka https://localhost:9443/ di browser Anda dan pastikan aplikasi dapat diakses dan semua fungsi berfungsi.

  4. Tekan Kontrol+C untuk menghentikan liberty:devc mode.

Menyiapkan gambar aplikasi

Untuk menyebarkan dan menjalankan aplikasi Liberty Anda pada kluster Azure Red Hat OpenShift 4, kontainerisasi aplikasi Anda sebagai gambar Docker menggunakan gambar kontainer Open Liberty atau gambar kontainer WebSphere Liberty.

Selesaikan langkah-langkah berikut untuk membangun gambar aplikasi:

Bangun aplikasi dan dorong ke aliran gambar

Karena Anda telah berhasil menjalankan aplikasi di kontainer Liberty Docker, Anda akan membangun gambar dari jarak jauh pada kluster dengan menjalankan perintah berikut.

  1. Pastikan Anda telah masuk ke OpenShift CLI menggunakan kubeadmin kredensial.

  2. Identifikasi direktori sumber dan Dockerfile.

    cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql
    
    # Fetch maven artifactId as image name, maven build version as image version
    export IMAGE_NAME=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.artifactId}' --non-recursive exec:exec)
    export IMAGE_VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
    
    # If you are building with Open Liberty base image, the existing Dockerfile is ready for you
    
    # If you are building with 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
    
  3. Ubah proyek menjadi "open-liberty-demo"

    oc project open-liberty-demo
    
  4. Membuat aliran gambar.

    oc create imagestream ${IMAGE_NAME}
    
  5. Buat konfigurasi build yang menentukan tag aliran gambar dari output build.

    oc new-build --name ${IMAGE_NAME}-config --binary --strategy docker --to ${IMAGE_NAME}:${IMAGE_VERSION}
    
  6. Mulai build untuk mengunggah konten lokal, kontainerisasi, dan output ke tag aliran gambar yang ditentukan sebelumnya.

    oc start-build ${IMAGE_NAME}-config --from-dir . --follow
    

Menyebarkan aplikasi pada kluster Azure Red Hat OpenShift 4

Sekarang Anda dapat menyebarkan sampel aplikasi Liberty ke kluster Azure Red Hat OpenShift 4 yang Anda buat sebelumnya saat mengerjakan 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.

  1. Masuk ke konsol web OpenShift dari browser Anda menggunakan info masuk kubeadmin.

  2. Luaskan Beranda, Pilih Proyek>open-liberty-demo.

  3. Navigasikan ke Operator>Operator Terinstal.

  4. Di tengah halaman, pilih Buka Liberty.

  5. Dari API yang Disediakan, pilih OpenLibertyApplication. Navigasi item di antarmuka pengguna mencerminkan hierarki penahanan aktual dari teknologi yang digunakan.

    Diagram of Azure Red Hat OpenShift Java Containment.

  6. Pilih Buat OpenLibertyApplication.

  7. Pilih tampilan YAML untuk Konfigurasikan melalui.

  8. Ganti yaml yang dihasilkan dengan yaml Anda, yang terletak di <path-to-repo>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.

  9. Pilih Buat. Anda dikembalikan ke daftar OpenLibertyApplications.

  10. Navigasi ke Rahasia Beban>Kerja.

  11. Pilih Buat> dari YAML.

  12. Ganti yaml yang dihasilkan dengan yaml Anda, yang terletak di <path-to-repo>/3-integration/connect-db/mysql/target/db-secret.yaml.

  13. Pilih Buat. Anda dikembalikan ke halaman Detail rahasia.

  14. Navigasi ke Operator yang>Diinstal Operator>Open Liberty>OpenLibertyApplication.

  15. Pilih javaee-café-mysql.

  16. Di bagian tengah halaman, pilih Sumber Daya.

  17. Dalam tabel, pilih tautan untuk javaee-café-mysql dengan JenisRute.

  18. Pada halaman yang terbuka, pilih tautan di bawah Lokasi.

Anda diperlihatkan halaman beranda aplikasi yang dibuka di browser.

Menghapus aplikasi dari konsol web

Setelah selesai dengan aplikasi, ikuti langkah-langkah ini untuk menghapus aplikasi dari Open Shift.

  1. Di panel navigasi kiri, luaskan entri untuk Operator.
  2. Pilih Operator Terinstal.
  3. Pilih Buka Liberty.
  4. Di tengah halaman, pilih OpenLibertyApplication.
  5. Untuk javaee-café-mysql, pilih elipsis vertikal (tiga titik vertikal) lalu pilih Hapus OpenLibertyApplication.
  6. Pilih Hapus untuk menghapus aplikasi.

Ikuti langkah-langkah ini untuk menghapus rahasia dari Open Shift.

  1. Navigasi ke Rahasia Beban>Kerja.
  2. Pilih db-secret-mysql.
  3. Pilih Tindakan>Hapus Rahasia.
  4. 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

Langkah berikutnya

Dalam panduan ini, Anda mempelajari cara:

  • Menyiapkan aplikasi Liberty
  • Membangun gambar aplikasi
  • Jalankan aplikasi dalam kontainer pada kluster Azure Red Hat OpenShift 4 menggunakan GUI dan CLI

Anda dapat mempelajari selengkapnya dari referensi yang digunakan dalam panduan ini: