Aracılığıyla paylaş


Hızlı Başlangıç: Azure Container Apps'te yönetilen Java bileşenleriyle ilk Java mikro hizmet uygulamanızı başlatma

Bu hızlı başlangıçta Azure Container Apps'te yapılandırma yönetimi, hizmet bulma ve sistem durumu ile ölçümleri işlemek için Java bileşenlerini kullanan bir uygulamayı dağıtmayı öğreneceksiniz. Bu örnekte kullanılan örnek uygulama, mikro hizmet mimarisi desenini kullanan Java PetClinic'tir. Aşağıdaki diyagramda Azure Container Apps'te PetClinic uygulamasının mimarisi gösterilmiştir:

Java bileşenleriyle mikro hizmet uygulamaları arasındaki ilişkinin diyagramı.

PetClinic uygulaması aşağıdaki özellikleri içerir:

  • Ön uç, API ağ geçidi uygulamasında barındırılan tek başına bir Node.js web uygulamasıdır.
  • API ağ geçidi, istekleri arka uç hizmet uygulamalarına yönlendirir.
  • Arka uç uygulamaları Spring Boot ile oluşturulur.
  • Her arka uç uygulaması kalıcı depo olarak bir HyperSQL veritabanı kullanır.
  • Uygulamalar Azure Container Apps'te hizmet kayıt defteri, yapılandırma sunucusu ve yönetici sunucusu gibi yönetilen Java bileşenlerini kullanır.
  • Yapılandırma sunucusu git deposundaki verileri okur.
  • Log Analytics çalışma alanı sunucu verilerini günlüğe kaydeder.

Bu öğreticide şunları yapacaksınız:

  • Yapılandırma sunucusu, Eureka sunucusu, yönetici sunucusu ve yönetici bileşenleri oluşturma
  • Bir dizi mikro hizmet uygulaması oluşturma
  • Sunucu bileşenlerini mikro hizmet uygulamalarınıza bağlama
  • Uygulama koleksiyonunu dağıtma
  • Dağıtılan uygulamaları gözden geçirme

Bu makalenin sonunda, üç farklı Java bileşeniyle çalışacak şekilde yapılandırılmış bir web uygulaması ve üç arka uç uygulaması dağıtacaksınız. Ardından her bileşeni Azure portalı üzerinden yönetebilirsiniz.

Önkoşullar

  • Azure hesabı: Azure hesabınız yoksa ücretsiz bir hesap oluşturun. Bu hızlı başlangıcı kullanmak için Azure aboneliğinde Katkıda Bulunan veya Sahip iznine sahip olmanız gerekir. Daha fazla bilgi için bkz. Azure portalını kullanarak Azure rolleri atama.
  • Azure CLI: Azure CLI'yi yükleyin.
  • Azure Container Apps CLI uzantısı. 0.3.47 veya üzeri bir sürümü kullanın. az extension add --name containerapp --upgrade --allow-preview En son sürümü yüklemek için komutunu kullanın.

Ayarlama

Ortam değişkenleri, kaynak grubu ve Azure Container Apps ortamı oluşturmak için aşağıdaki adımları kullanın:

  1. Ortam değişkenleri özel değerlerinizi içerdiğinden, aşağıdaki komutları çalıştırmadan önce kendi değerlerinizle çevrelenmiş <> yer tutucu değerlerini değiştirin:

    export RESOURCE_GROUP=<RESOURCE_GROUP>
    export LOCATION=<LOCATION>
    export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>
    
  2. Şimdi mikro hizmetler uygulamanızın ayarlarını içeren daha fazla ortam değişkeni oluşturacaksınız. Bu değerler, mikro hizmetleri dağıtmak için kullandığınız Java bileşenlerinin ve Azure Container Apps'in adlarını ve yapılandırmalarını tanımlamak için kullanılır. Aşağıdaki komutları kullanarak bu ortam değişkenlerini oluşturun:

    export CONFIG_SERVER_COMPONENT=configserver
    export ADMIN_SERVER_COMPONENT=admin
    export EUREKA_SERVER_COMPONENT=eureka
    export CONFIG_SERVER_URI=https://github.com/spring-petclinic/spring-petclinic-microservices-config.git
    export CUSTOMERS_SERVICE=customers-service
    export VETS_SERVICE=vets-service
    export VISITS_SERVICE=visits-service
    export API_GATEWAY=api-gateway
    export CUSTOMERS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-customers-service
    export VETS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-vets-service
    export VISITS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-visits-service
    export API_GATEWAY_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-api-gateway
    
  3. Aşağıdaki komutu kullanarak Azure CLI'da oturum açın ve etkin aboneliğinizi seçin:

    az login
    
  4. Aşağıdaki komutu kullanarak Azure hizmetlerinizi düzenlemek için bir kaynak grubu oluşturun:

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  5. Aşağıdaki komutu kullanarak hem Java bileşenlerini hem de kapsayıcı uygulamalarınızı barındıran Azure Container Apps ortamınızı oluşturun:

    az containerapp env create \
        --resource-group $RESOURCE_GROUP \
        --name $CONTAINER_APP_ENVIRONMENT \
        --location $LOCATION
    

Java bileşenleri oluşturma

Şimdi uygulamanızı destekleyen aşağıdaki Java bileşenlerini oluşturursunuz:

  • Yapılandırma sunucusu. Mikro hizmet uygulamalarınız için yapılandırma ayarlarını yönetmek için kullanılır.
  • Eureka sunucusu. Hizmet kaydı ve keşfi yönetmek için kullanılır.
  • Yönetici sunucusu. Mikro hizmet uygulamalarınızın sistem durumunu ve ölçümlerini izlemek ve yönetmek için kullanılır.

Bu sunucu bileşenlerini oluşturmak için aşağıdaki adımları kullanın:

  1. Aşağıdaki komutu kullanarak Java bileşenleriniz için yapılandırma sunucusunu oluşturun:

    az containerapp env java-component config-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $CONFIG_SERVER_COMPONENT \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --configuration spring.cloud.config.server.git.uri=$CONFIG_SERVER_URI
    
  2. Aşağıdaki komutu kullanarak Java bileşenleriniz için Eureka sunucusunu oluşturun:

    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    
  3. Aşağıdaki komutu kullanarak Java bileşenleriniz için yönetici sunucusunu oluşturun:

    az containerapp env java-component admin-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    

Mikro hizmet uygulamalarını dağıtma

Önceden oluşturulmuş kapsayıcı görüntülerini kullanarak Java mikro hizmet uygulamalarını Azure Container Apps'e dağıtmak için aşağıdaki adımları kullanın:

Not

Bu makalede Spring Petclinic mikro hizmet uygulamaları için bir dizi yerleşik görüntü kullanacaksınız. Ayrıca örnek kodu özelleştirme ve kendi görüntülerinizi kullanma seçeneğiniz de vardır. Daha fazla bilgi için bkz. azure-container-apps-java-samples GitHub deposu.

  1. Aşağıdaki komutu kullanarak müşteri veri uygulamasını oluşturun:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $CUSTOMERS_SERVICE_IMAGE
    
  2. Aşağıdaki komutu kullanarak veteriner uygulamasını oluşturun:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VETS_SERVICE_IMAGE
    
  3. Aşağıdaki komutu kullanarak ziyaretler uygulamasını oluşturun:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VISITS_SERVICE_IMAGE
    
  4. Aşağıdaki komutu kullanarak API ağ geçidi uygulamasını oluşturun:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $API_GATEWAY_IMAGE \
        --ingress external \
        --target-port 8080 \
        --query properties.configuration.ingress.fqdn 
    

Kapsayıcı uygulamalarını Java bileşenlerine bağlama

Ardından Java bileşenlerini kapsayıcı uygulamalarınıza bağlayın. Bu bölümde oluşturduğunuz bağlamalar aşağıdaki işlevleri sağlar:

  • Başlangıçta yönetilen yapılandırma sunucusundan her uygulamaya yapılandırma verileri ekleyin.
  • Hizmeti bulmak için uygulamayı yönetilen Eureka sunucusuna kaydedin.
  • Yönetici sunucusunun uygulamayı izlemesini etkinleştirin.

containerapp update Aşağıdaki adımları kullanarak her uygulama için bağlamalar oluşturmak için komutunu kullanın:

  1. Aşağıdaki komutu kullanarak müşteri veri uygulamasına bağlamalar ekleyin:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  2. Aşağıdaki komutu kullanarak veteriner hizmetine bağlamalar ekleyin:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  3. Aşağıdaki komutu kullanarak ziyaretler hizmetine bağlamalar ekleyin:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  4. API ağ geçidine bağlamalar ekleyin. Ön uç uygulamasının URL'sini döndürmek için aşağıdaki komutu kullanın ve ardından bu konumu tarayıcınızda açın:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT \
        --query properties.configuration.ingress.fqdn 
    

Uygulama durumunu doğrulama

Uygulama durumunu doğrulamak için aşağıdaki adımları kullanın:

  1. API ağ geçidinin komutundan döndürülen URL'yi az containerapp update kullanarak ön uç uygulamasını tarayıcınızda görüntüleyin. Uygulama aşağıdaki ekran görüntüsüne benzemelidir:

    Evcil hayvan kliniği uygulamasının giriş sayfasının ekran görüntüsü.

  2. Aşağıdaki adımları kullanarak Eureka sunucu panosunu görüntüleyin:

    Önemli

    Eureka Server panosunu ve Spring yönetici panosunu görüntülemek için, yönetilen ortam kaynağında hesabınıza atanmış yetkinin en azından Microsoft.App/managedEnvironments/write olması gerekir. kaynakta Owner veya Contributor rolünü açıkça atayabilirsiniz. Ayrıca, özel bir rol tanımı oluşturmak ve bunu hesabınıza atamak için adımları izleyebilirsiniz.

    1. Pano URL'sini döndürmek için aşağıdaki komutu çalıştırın:

      az containerapp env java-component eureka-server-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $EUREKA_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. URL'yi tarayıcınızda açın. Aşağıdaki ekran görüntüsüne benzeyen bir uygulama görmeniz gerekir:

      Evcil hayvan kliniği uygulaması Eureka Server'ın ekran görüntüsü.

  3. Aşağıdaki adımları kullanarak Spring için Yönetici panosunu görüntüleyin:

    1. Pano URL'sini döndürmek için aşağıdaki komutu kullanın:

      az containerapp env java-component admin-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $ADMIN_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. URL'yi tarayıcınızda açın. Aşağıdaki ekran görüntüsüne benzeyen bir uygulama görmeniz gerekir:

      Beş hizmetin yanı sıra dört hizmet için sürüm bilgilerini gösteren evcil hayvan kliniği yönetici panosunun ekran görüntüsü.

İsteğe bağlı: Java bileşenlerini yapılandırma

Bu hızlı başlangıçta oluşturulan Java bileşenlerini Yapılandırmalar bölümünü kullanarak Azure portalı üzerinden yapılandırabilirsiniz.

Özellik Adı ve Değer metin kutularını ve özelliği silme özelliğini gösteren Yapılandırmalar bölümünün ekran görüntüsü.

Bu hızlı başlangıçta oluşturduğunuz üç Java bileşenini yapılandırma hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:

Kaynakları temizleme

Bu hızlı başlangıçta oluşturulan kaynakların Azure faturanız üzerinde etkisi vardır. Bu hizmetleri uzun vadeli kullanmayacaksanız, bu hızlı başlangıçta oluşturulan her şeyi kaldırmak için aşağıdaki komutu kullanın:

az group delete --resource-group $RESOURCE_GROUP