Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Paket Basic, Standard, dan Enterprise memasuki periode pensiun pada 17 Maret 2025. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.
Artikel ini berlaku untuk: ❎ Basic/Standard ✅ Enterprise
Mulai cepat ini menunjukkan cara menyebarkan aplikasi Spring Boot ke Azure Spring Apps sebagai Gambar Asli.
Kemampuan Gambar Asli memungkinkan Anda mengkompilasi aplikasi Java ke executable mandiri, yang dikenal sebagai Gambar Asli. Executable ini dapat memberikan manfaat signifikan, termasuk waktu startup yang lebih cepat dan overhead memori runtime yang lebih rendah dibandingkan dengan JVM tradisional (Java Virtual Machine).
Proyek sampel adalah aplikasi Spring Petclinic. Cuplikan layar berikut menunjukkan aplikasi:
1. Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan, buat akun gratis sebelum memulai.
- Git.
- Java Development Kit (JDK), versi 17.
-
Azure CLI versi 2.45.0 atau yang lebih tinggi. Gunakan perintah berikut untuk menginstal ekstensi Azure Spring Apps:
az extension add --name spring
2. Siapkan proyek Spring Petclinic
Gunakan langkah-langkah berikut untuk mengkloning dan menjalankan aplikasi secara lokal.
Gunakan perintah berikut untuk mengkloning proyek Spring Petclinic dari GitHub:
git clone https://github.com/Azure-Samples/spring-petclinic.gitGunakan perintah berikut untuk membangun proyek Spring Petclinic:
cd spring-petclinic ./mvnw clean package -DskipTests -Pnative packageGunakan perintah berikut untuk menjalankan aplikasi Spring Petclinic dengan menggunakan Maven:
java -jar target/spring-petclinic-3.1.0-SNAPSHOT.jarhttp://localhost:8080Buka di browser Anda untuk mengakses aplikasi Spring Petclinic.
3. Siapkan lingkungan cloud
Sumber daya utama yang diperlukan untuk menjalankan aplikasi Spring Petclinic adalah instans Azure Spring Apps. Bagian ini menyediakan langkah-langkah untuk membuat sumber daya.
3.1. Berikan nama untuk setiap sumber daya
Buat variabel untuk menahan nama sumber daya dengan menggunakan perintah berikut. Pastikan untuk mengganti placeholder dengan nilai Anda sendiri.
export RESOURCE_GROUP=<resource-group-name>
export LOCATION=<location>
export AZURE_SPRING_APPS_NAME=<Azure-Spring-Apps-service-instance-name>
export NATIVE_BUILDER=native-builder
export JAR_APP_NAME=jar-app
export NATIVE_APP_NAME=native-app
export JAR_PATH=target/spring-petclinic-3.1.0-SNAPSHOT.jar
3.2. Membuat grup sumber daya baru
Gunakan langkah-langkah berikut untuk membuat grup sumber daya baru:
Gunakan perintah berikut untuk masuk ke Azure CLI:
az loginGunakan perintah berikut untuk mengatur lokasi default:
az configure --defaults location=${LOCATION}Gunakan perintah berikut untuk mencantumkan semua langganan yang tersedia untuk menentukan ID langganan yang akan digunakan:
az account list --output tableGunakan perintah berikut untuk mengatur langganan default:
az account set --subscription <subscription-ID>Gunakan perintah berikut ini untuk membuat grup sumber daya:
az group create --resource-group ${RESOURCE_GROUP}Gunakan perintah berikut untuk mengatur grup sumber daya yang baru dibuat sebagai grup sumber daya default:
az configure --defaults group=${RESOURCE_GROUP}
3.3. Membuat instans Azure Spring Apps
Azure Spring Apps digunakan untuk menghosting aplikasi Spring Petclinic. Gunakan langkah-langkah berikut untuk membuat instans Azure Spring Apps dan dua aplikasi di dalamnya:
Gunakan perintah berikut untuk membuat instans layanan Azure Spring Apps. Build gambar asli memerlukan memori 16 Gi selama build gambar, jadi konfigurasikan ukuran kumpulan build sebagai S7.
az spring create \ --name ${AZURE_SPRING_APPS_NAME} \ --sku enterprise \ --build-pool-size S7Buat file builder-native.json di direktori saat ini lalu tambahkan konten berikut:
{ "stack": { "id": "io.buildpacks.stacks.jammy", "version": "tiny" }, "buildpackGroups": [ { "name": "default", "buildpacks": [ { "id": "tanzu-buildpacks/java-native-image" } ] } ] }Gunakan perintah berikut untuk membuat penyusun kustom untuk membangun aplikasi Gambar Asli:
az spring build-service builder create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_BUILDER} \ --builder-file builder-native.jsonGunakan perintah berikut untuk membuat aplikasi di instans Azure Spring Apps untuk menyebarkan aplikasi Spring Petclinic sebagai file JAR. Konfigurasikan batas memori hingga 1 Gi.
az spring app create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${JAR_APP_NAME} \ --cpu 1 \ --memory 1Gi \ --assign-endpoint trueGunakan perintah berikut untuk membuat aplikasi di instans Azure Spring Apps untuk menyebarkan aplikasi Spring Petclinic sebagai Gambar Asli:
az spring app create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME} \ --cpu 1 \ --memory 1Gi \ --assign-endpoint true
4. Menyebarkan aplikasi ke Azure Spring Apps
Sekarang setelah lingkungan cloud disiapkan, aplikasi siap untuk disebarkan.
Gunakan perintah berikut untuk menyebarkan aplikasi Spring Petclinic sebagai file JAR:
az spring app deploy \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME} \
--artifact-path ${JAR_PATH} \
--build-env BP_JVM_VERSION=17
Gunakan perintah berikut untuk menyebarkan aplikasi Spring Petclinic sebagai Gambar Asli:
az spring app deploy \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${NATIVE_APP_NAME} \
--builder ${NATIVE_BUILDER} \
--build-cpu 8 \
--build-memory 16Gi \
--artifact-path ${JAR_PATH} \
--build-env BP_JVM_VERSION=17 BP_NATIVE_IMAGE=true
5. Memvalidasi Aplikasi Gambar Asli
Sekarang Anda dapat mengakses aplikasi Gambar Asli yang disebarkan untuk melihat apakah aplikasi tersebut berfungsi. Gunakan langkah-langkah berikut untuk memvalidasi:
Setelah penyebaran selesai, Anda dapat menjalankan perintah berikut untuk mendapatkan URL aplikasi:
az spring app show \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME} \ --output tableAnda dapat mengakses aplikasi dengan URL yang ditampilkan dalam output sebagai
Public Url. Halaman akan muncul saat Anda melihatnya di localhost.Gunakan perintah berikut untuk memeriksa log aplikasi untuk menyelidiki masalah penyebaran apa pun:
az spring app logs \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME}
6. Bandingkan performa untuk JAR dan Gambar Asli
Bagian berikut menjelaskan cara membandingkan performa antara penyebaran JAR dan Gambar Asli.
Waktu mulai server
Gunakan perintah berikut untuk memeriksa log Started PetClinicApplication in XXX seconds aplikasi untuk mendapatkan waktu mulai server untuk aplikasi JAR:
az spring app logs \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME}
Waktu mulai server sekitar 25 d untuk aplikasi JAR.
Gunakan perintah berikut untuk memeriksa log aplikasi untuk mendapatkan waktu mulai server untuk aplikasi Gambar Asli:
az spring app logs \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${NATIVE_APP_NAME}
Waktu mulai server kurang dari 0,5 d untuk aplikasi Gambar Asli.
Penggunaan memori
Gunakan perintah berikut untuk menurunkan skala ukuran memori menjadi 512 Mi untuk aplikasi Gambar Asli:
az spring app scale \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${NATIVE_APP_NAME} \
--memory 512Mi
Output perintah harus menunjukkan bahwa aplikasi Gambar Asli berhasil dimulai.
Gunakan perintah berikut untuk menurunkan skala ukuran memori menjadi 512 Mi untuk aplikasi JAR:
az spring app scale \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME} \
--memory 512Mi
Output perintah harus menunjukkan bahwa aplikasi JAR gagal dimulai karena memori yang tidak mencukup. Pesan output harus mirip dengan contoh berikut: Terminating due to java.lang.OutOfMemoryError: Java heap space.
Gambar berikut menunjukkan penggunaan memori yang dioptimalkan untuk penyebaran Gambar Asli untuk beban kerja konstan 400 permintaan per detik ke dalam aplikasi Petclinic. Penggunaan memori adalah sekitar 1/5 dari memori yang dikonsumsi oleh penyebaran JAR yang setara.
Gambar Asli menawarkan waktu mulai yang lebih cepat dan mengurangi overhead memori runtime jika dibandingkan dengan Java Virtual Machine (JVM) konvensional.
7. Membersihkan sumber daya
Jika Anda berencana untuk terus bekerja dengan mulai cepat dan tutorial berikutnya, biarkan sumber daya ini tetap di tempatnya. Saat Anda tidak lagi memerlukan sumber daya, hapus dengan menghapus grup sumber daya. Gunakan perintah berikut untuk menghapus grup sumber daya:
az group delete --name ${RESOURCE_GROUP}
8. Langkah selanjutnya
Untuk informasi lebih lanjut, baca artikel berikut:
- Sampel Azure Spring Apps.
- Spring di Azure
- Spring Cloud Azure