Hızlı Başlangıç: Azure Spring Apps'e ilk Java Yerel Görüntü uygulamanızı dağıtma
Not
İlk 50 vCPU saati ve 100 GB saat bellek her ay ücretsizdir. Daha fazla bilgi için Azure'da Uygulamalar Blogu'nda Fiyat Azaltma - Azure Spring Apps daha fazlasını yapıyor, maliyetleri daha az! bölümüne bakın.
Not
Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.
Bu makale şunlar için geçerlidir:❌ Temel/Standart ✔️ Kurumsal
Bu hızlı başlangıçta Spring Boot uygulamasının Azure Spring Apps'e Yerel Görüntü olarak nasıl dağıtılacağı gösterilmektedir.
Yerel Görüntü özelliği, Java uygulamalarını Yerel Görüntüler olarak bilinen tek başına yürütülebilir dosyalara derlemenizi sağlar. Bu yürütülebilir dosyalar, geleneksel JVM'ye (Java Sanal Makinesi) kıyasla daha hızlı başlangıç süreleri ve daha düşük çalışma zamanı bellek yükü de dahil olmak üzere önemli avantajlar sağlayabilir.
Örnek proje Spring Petclinic uygulamasıdır. Aşağıdaki ekran görüntüsünde uygulama gösterilmektedir:
1. Önkoşullar
- Azure aboneliği. Aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Git.
- Java Development Kit (JDK), sürüm 17.
- Azure CLI sürüm 2.45.0 veya üzeri. Azure Spring Apps uzantısını yüklemek için aşağıdaki komutu kullanın:
az extension add --name spring
- Hedef abonelikte ilk kez bir Azure Spring Apps Kurumsal plan örneği dağıtıyorsanız, Azure Market'de Azure Spring Apps Kurumsal katmanı teklifini görüntüleme'nin Gereksinimler bölümüne bakın.
2. Spring Petclinic projesini hazırlama
Uygulamayı yerel olarak kopyalamak ve çalıştırmak için aşağıdaki adımları kullanın.
GitHub'dan Spring Petclinic projesini kopyalamak için aşağıdaki komutu kullanın:
git clone https://github.com/Azure-Samples/spring-petclinic.git
Spring Petclinic projesini oluşturmak için aşağıdaki komutu kullanın:
cd spring-petclinic ./mvnw clean package -DskipTests -Pnative package
Maven kullanarak Spring Petclinic uygulamasını çalıştırmak için aşağıdaki komutu kullanın:
java -jar target/spring-petclinic-3.1.0-SNAPSHOT.jar
http://localhost:8080
Spring Petclinic uygulamasına erişmek için tarayıcınızda adresine gidin.
3. Bulut ortamını hazırlama
Spring Petclinic uygulamasını çalıştırmak için gereken ana kaynak bir Azure Spring Apps örneğidir. Bu bölümde, kaynağı oluşturma adımları sağlanır.
3.1. Her kaynak için ad sağlayın
Aşağıdaki komutları kullanarak kaynak adlarını tutmak için değişkenler oluşturun. Yer tutucuları kendi değerlerinizle değiştirmeyi unutmayın.
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. Yeni bir kaynak grubu oluşturma
Yeni bir kaynak grubu oluşturmak için aşağıdaki adımları kullanın:
Azure CLI'da oturum açmak için aşağıdaki komutu kullanın:
az login
Varsayılan konumu ayarlamak için aşağıdaki komutu kullanın:
az configure --defaults location=${LOCATION}
Kullanılacak abonelik kimliğini belirlemek üzere tüm kullanılabilir abonelikleri listelemek için aşağıdaki komutu kullanın:
az account list --output table
Varsayılan aboneliği ayarlamak için aşağıdaki komutu kullanın:
az account set --subscription <subscription-ID>
Kaynak grubu oluşturmak için aşağıdaki komutu kullanın:
az group create --resource-group ${RESOURCE_GROUP}
Yeni oluşturulan kaynak grubunu varsayılan kaynak grubu olarak ayarlamak için aşağıdaki komutu kullanın:
az configure --defaults group=${RESOURCE_GROUP}
3.3. Azure Spring Apps örneği oluşturma
Azure Spring Apps, Spring Petclinic uygulamasını barındırmak için kullanılır. Bir Azure Spring Apps örneği ve içinde iki uygulama oluşturmak için aşağıdaki adımları kullanın:
Azure Spring Apps hizmet örneği oluşturmak için aşağıdaki komutu kullanın. Yerel görüntü derlemesi, görüntü derlemesi sırasında 16 Gi bellek gerektirir, bu nedenle derleme havuzu boyutunu S7 olarak yapılandırın.
az spring create \ --name ${AZURE_SPRING_APPS_NAME} \ --sku enterprise \ --build-pool-size S7
Geçerli dizinde bir builder-native.json dosyası oluşturun ve aşağıdaki içeriği ekleyin:
{ "stack": { "id": "io.buildpacks.stacks.jammy", "version": "tiny" }, "buildpackGroups": [ { "name": "default", "buildpacks": [ { "id": "tanzu-buildpacks/java-native-image" } ] } ] }
Yerel Görüntü uygulamasını derlemek üzere özel bir oluşturucu oluşturmak için aşağıdaki komutu kullanın:
az spring build-service builder create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_BUILDER} \ --builder-file builder-native.json
Azure Spring Apps örneğinde Spring Petclinic uygulamasının JAR dosyası olarak dağıtılacağı bir uygulama oluşturmak için aşağıdaki komutu kullanın. Bellek sınırını 1 Gi olarak yapılandırın.
az spring app create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${JAR_APP_NAME} \ --cpu 1 \ --memory 1Gi \ --assign-endpoint true
Azure Spring Apps örneğinde Spring Petclinic uygulamasının Yerel Görüntü olarak dağıtılacağı bir uygulama oluşturmak için aşağıdaki komutu kullanın:
az spring app create \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME} \ --cpu 1 \ --memory 1Gi \ --assign-endpoint true
4. Uygulamayı Azure Spring Apps'e dağıtma
Artık bulut ortamı hazır olduğuna göre, uygulamalar dağıtıma hazırdır.
Spring Petclinic uygulamasını JAR dosyası olarak dağıtmak için aşağıdaki komutu kullanın:
az spring app deploy \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME} \
--artifact-path ${JAR_PATH} \
--build-env BP_JVM_VERSION=17
Spring Petclinic uygulamasını Yerel Görüntü olarak dağıtmak için aşağıdaki komutu kullanın:
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. Yerel Görüntü Uygulamasını Doğrulama
Artık dağıtılan Yerel Görüntü uygulamasına erişerek çalışıp çalışmadığını görebilirsiniz. Doğrulamak için aşağıdaki adımları kullanın:
Dağıtım tamamlandıktan sonra aşağıdaki komutu çalıştırarak uygulama URL'sini alabilirsiniz:
az spring app show \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME} \ --output table
Çıkışta olarak
Public Url
gösterilen URL ile uygulamaya erişebilirsiniz. Sayfa, o localhost'ta gördüğünüz gibi görünmelidir.Herhangi bir dağıtım sorununu araştırmak üzere uygulamanın günlüğünü denetlemek için aşağıdaki komutu kullanın:
az spring app logs \ --service ${AZURE_SPRING_APPS_NAME} \ --name ${NATIVE_APP_NAME}
6. JAR ve Yerel Görüntü performansını karşılaştırma
Aşağıdaki bölümlerde JAR ile Yerel Görüntü dağıtımı arasındaki performansın nasıl karşılaştırıldığı açıklanmaktadır.
Sunucu başlangıç zamanı
Jar uygulamasının sunucu başlangıç zamanını almak üzere uygulamanın günlüğünü Started PetClinicApplication in XXX seconds
denetlemek için aşağıdaki komutu kullanın:
az spring app logs \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME}
Jar uygulaması için sunucu başlatma süresi yaklaşık 25 sn'dir.
Yerel Görüntü uygulamasının sunucu başlangıç zamanını almak üzere uygulamanın günlüğünü denetlemek için aşağıdaki komutu kullanın:
az spring app logs \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${NATIVE_APP_NAME}
Yerel Görüntü uygulaması için sunucu başlatma süresi 0,5 sn'den kısadır.
Bellek kullanımı
Yerel Görüntü uygulaması için bellek boyutunu 512 Mi'ye küçültmek için aşağıdaki komutu kullanın:
az spring app scale \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${NATIVE_APP_NAME} \
--memory 512Mi
Komut çıktısı, Yerel Görüntü uygulamasının başarıyla başlatıldığını göstermelidir.
JAR uygulaması için bellek boyutunun ölçeğini 512 Mi'ye küçültmek için aşağıdaki komutu kullanın:
az spring app scale \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${JAR_APP_NAME} \
--memory 512Mi
Komut çıktısı JAR uygulamasının yetersiz bellek nedeniyle başlatılamadığını göstermelidir. Çıkış iletisi aşağıdaki örneğe benzer olmalıdır: Terminating due to java.lang.OutOfMemoryError: Java heap space
.
Aşağıdaki şekilde, Petclinic uygulamasına saniyede 400 istek içeren sabit bir iş yükü için Yerel Görüntü dağıtımı için iyileştirilmiş bellek kullanımı gösterilmektedir. Bellek kullanımı, eşdeğer JAR dağıtımı tarafından kullanılan belleğin yaklaşık 1/5'idir.
Yerel Görüntüler, geleneksel Java Sanal Makinesi (JVM) ile karşılaştırıldığında daha hızlı başlangıç süreleri ve azaltılmış çalışma zamanı bellek yükü sunar.
7. Kaynakları temizleme
Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Kaynaklara artık ihtiyacınız kalmadığında, kaynak grubunu silerek bunları silin. Kaynak grubunu silmek için aşağıdaki komutu kullanın:
az group delete --name ${RESOURCE_GROUP}
8. Sonraki adımlar
Daha fazla bilgi için aşağıdaki makaleleri inceleyin:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin