Mengotomatiskan penyebaran aplikasi ke Azure Spring Apps

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk: ✔️ Basic/Standard ✔️ Enterprise

Artikel ini menunjukkan cara menggunakan tugas Azure Spring Apps untuk Azure Pipelines guna menerapkan aplikasi.

Integrasi berkelanjutan dan alat pengiriman berkelanjutan memungkinkan Anda dengan cepat menyebarkan pembaruan ke aplikasi yang ada dengan upaya dan risiko minimal. Azure DevOps membantu mengorganisasi dan memantau tugas-tugas utama ini.

Video berikut menjelaskan otomatisasi end-to-end menggunakan alat pilihan Anda, termasuk Azure Pipelines.


Membuat koneksi layanan Azure Resource Manager

Pertama, buat koneksi layanan Azure Resource Manager ke proyek Azure DevOps Anda. Untuk petunjuk, lihat Menghubungkan ke Microsoft Azure. Pastikan untuk memilih langganan yang sama yang Anda gunakan untuk instans layanan Azure Spring Apps.

Membangun dan menyebarkan aplikasi

Anda sekarang dapat membangun dan menerapkan proyek Anda menggunakan serangkaian tugas. Templat Azure Pipelines berikut menentukan variabel, tugas .NET Core untuk membangun aplikasi, dan tugas Azure Spring Apps guna menyebarkan aplikasi.

variables:
  workingDirectory: './steeltoe-sample'
  planetMainEntry: 'Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll'
  solarMainEntry: 'Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll'
  planetAppName: 'planet-weather-provider'
  solarAppName: 'solar-system-weather'
  serviceName: '<your service name>'

steps:
# Restore, build, publish and package the zipped planet app
- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: false
    arguments: '--configuration Release'
    zipAfterPublish: false
    modifyOutputPath: false
    workingDirectory: $(workingDirectory)

# Deploy the planet app
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<Service Connection Name>'
    Action: 'Deploy'
    AzureSpringCloud: $(serviceName)
    AppName: 'testapp'
    DeploymentType: 'Artifacts'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: $(workingDirectory)/src/$(planetAppName)/publish-deploy-planet.zip
    RuntimeVersion: 'NetCore_31'
    DotNetCoreMainEntryPath: $(planetMainEntry)

# Deploy the solar app
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<Service Connection Name>'
    Action: 'Deploy'
    AzureSpringCloud: $(serviceName)
    AppName: 'testapp'
    DeploymentType: 'Artifacts'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: $(workingDirectory)/src/$(solarAppName)/publish-deploy-solar.zip
    RuntimeVersion: 'NetCore_31'
    DotNetCoreMainEntryPath: $(solarMainEntry)

Siapkan instans Azure Spring Apps dan proyek Azure DevOps

Pertama, gunakan langkah-langkah berikut untuk menyiapkan instans Azure Spring Apps yang ada untuk digunakan dengan Azure DevOps.

  1. Buka instans Azure Spring Apps Anda, lalu buat aplikasi baru.
  2. Buka portal Azure DevOps, lalu buat proyek baru di bawah organisasi pilihan Anda. Jika Anda tidak memiliki organisasi Azure DevOps, Anda dapat membuatnya secara gratis.
  3. Pilih Repos, lalu impor kode demo Spring Boot ke repositori.

Membuat koneksi layanan Azure Resource Manager

Selanjutnya, buat koneksi layanan Azure Resource Manager ke proyek Azure DevOps Anda. Untuk petunjuk, lihat Menghubungkan ke Microsoft Azure. Pastikan untuk memilih langganan yang sama yang Anda gunakan untuk instans layanan Azure Spring Apps.

Membangun dan menyebarkan aplikasi

Anda sekarang dapat membangun dan menerapkan proyek Anda menggunakan serangkaian tugas. Bagian berikut menunjukkan kepada Anda berbagai opsi untuk menyebarkan aplikasi Anda menggunakan Azure DevOps.

Menyebarkan menggunakan alur

Untuk menyebarkan menggunakan alur, ikuti langkah-langkah berikut:

  1. Pilih Alur, lalu buat alur baru dengan templat Maven.

  2. Edit file azure-pipelines.yml untuk mengatur bidang mavenPomFile ke 'complete/pom.xml'.

  3. Pilih Tampilkan asisten di sisi kanan, lalu pilih templat Azure Spring Apps.

  4. Pilih sambungan layanan yang Anda buat untuk Langganan Azure Anda, lalu pilih instans Azure Spring Apps dan instans aplikasi Anda.

  5. Nonaktifkan Gunakan Penyebaran Pementasan.

  6. Atur Paket atau folder ke complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.

  7. Pilih Tambahkan untuk menambahkan tugas ini ke alur Anda.

    Pengaturan alur Anda harus sesuai dengan gambar berikut.

    Cuplikan layar Azure DevOps yang memperlihatkan pengaturan Alur baru.

    Anda juga dapat membangun dan menyebarkan proyek Anda menggunakan templat alur berikut. Contoh ini pertama-tama mendefinisikan tugas Maven untuk membangun aplikasi, diikuti oleh tugas kedua yang menyebarkan file JAR menggunakan tugas Azure Spring Apps untuk Azure Pipelines.

    steps:
    - task: Maven@3
      inputs:
        mavenPomFile: 'complete/pom.xml'
    - task: AzureSpringCloud@0
      inputs:
        azureSubscription: '<your service connection name>'
        Action: 'Deploy'
        AzureSpringCloud: <your Azure Spring Apps service>
        AppName: <app-name>
        DeploymentType: 'Artifacts'
        UseStagingDeployment: false
        DeploymentName: 'default'
        Package: ./target/your-result-jar.jar
    
  8. Pilih Simpan dan jalankan, lalu tunggu pekerjaan selesai.

Penyebaran biru-hijau

Penyebaran yang ditunjukkan di bagian sebelumnya segera menerima lalu lintas aplikasi saat penyebaran. Hal ini memungkinkan Anda untuk menguji aplikasi di lingkungan produksi sebelum menerima lalu lintas pelanggan.

Mengedit grafik alur

Untuk membangun aplikasi dengan cara yang sama seperti yang ditunjukkan sebelumnya dan menerapkannya ke penerapan pementasa, gunakan templat berikut. Dalam contoh ini, penyebaran penahapan harus sudah ada. Untuk pendekatan alternatif, lihat Strategi penyebaran biru-hijau.

steps:
- task: Maven@3
  inputs:
    mavenPomFile: 'pom.xml'
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your service connection name>'
    Action: 'Deploy'
    AzureSpringCloud: <your Azure Spring Apps service>
    AppName: <app-name>
    DeploymentType: 'Artifacts'
    UseStagingDeployment: true
    Package: ./target/your-result-jar.jar
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your service connection name>'
    Action: 'Set Production'
    AzureSpringCloud: <your Azure Spring Apps service>
    AppName: <app-name>
    UseStagingDeployment: true

Menggunakan bagian Rilis

Langkah-langkah berikut menunjukkan cara mengaktifkan penerapan biru-hijau dari bagian Rilis.

  1. Pilih Alur dan buat alur baru untuk artefak build dan publikasikan Maven Anda.

    1. Pilih Azure Repos Git untuk lokasi kode Anda.
    2. Pilih repositori tempat kode Anda berada.
    3. Pilih templat Maven dan ubah file untuk mengatur bidang mavenPomFile ke complete/pom.xml.
    4. Pilih Tampilkan asisten di sisi kanan dan pilih templat Publikasikan artefak bangunan.
    5. Atur Path to publish ke complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
    6. Pilih Simpan dan jalankan.
  2. Pilih Rilis,lalu Buat rilis.

  3. Tambahkan alur baru, dan pilih Kosongkan pekerjaan untuk membuat pekerjaan.

  4. Di bawah Tahap pilih baris 1 pekerjaan, 0 tugas

    Cuplikan layar Azure DevOps yang memperlihatkan tab Alur dengan 1 pekerjaan, 0 tautan tugas disorot.

    1. Pilih + untuk menambahkan tugas ke pekerjaan.
    2. Telusuri templat Azure Spring Apps, lalu pilih Tambahkan untuk menambahkan tugas ke pekerjaan.
    3. Pilih Azure Spring Apps Deploy: untuk mengedit tugas.
    4. Isi tugas ini dengan informasi aplikasi Anda, lalu nonaktifkan Gunakan Penyebaran Staging.
    5. Aktifkan Buat penyebaran staging baru jika belum ada, lalu masukkan nama di Penyebaran.
    6. Pilih Simpan untuk menyimpan tugas ini.
    7. Pilih OK.
  5. Pilih Alur, lalu pilih Tambahkan artefak.

    1. Di bawah Sumber (bangun alur) pilih alur yang dibuat sebelumnya.
    2. Pilih Tambahkan, lalu Simpan.
  6. Pilih 1 pekerjaan, 1 tugas di bawah Tahap.

  7. Navigasikan ke tugas Azure Spring Apps Deploy di Tahap 1, lalu pilih elipsis di samping Paket atau folder.

  8. Pilih spring-boot-complete-0.0.1-SNAPSHOT.jar dalam dialog, lalu pilih OK.

    Cuplikan layar Azure DevOps yang memperlihatkan kotak dialog Pilih file atau folder.

  9. Pilih + untuk menambahkan tugas Azure Spring Apps lainnya ke pekerjaan.

  10. Ubah tindakan menjadi Atur Penyebaran Produksi.

  11. Pilih Simpan, lalu Buat rilis untuk memulai penyebaran secara otomatis.

Untuk memverifikasi status rilis aplikasi Anda saat ini, pilih Lihat rilis. Setelah tugas ini selesai, kunjungi portal Microsoft Azure untuk memverifikasi status aplikasi Anda.

Menyebarkan dari sumber

Untuk menyebarkan langsung ke Azure tanpa langkah build terpisah, gunakan templat alur berikut.

- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your service connection name>'
    Action: 'Deploy'
    AzureSpringCloud: <your Azure Spring Apps service>
    AppName: <app-name>
    DeploymentType: 'Artifacts'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: $(Build.SourcesDirectory)

Menyebarkan dari gambar kustom

Untuk menyebarkan langsung dari gambar kontainer yang ada, gunakan templat alur berikut.

- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your service connection name>'
    Action: 'Deploy'
    AzureSpringCloud: '<your Azure Spring Apps service>'
    AppName: '<app-name>'
    DeploymentType: 'CustomContainer'
    UseStagingDeployment: false
    DeploymentName: 'default'
    ContainerRegistry: 'docker.io'  # or your Azure Container Registry, e.g: 'contoso.azurecr.io'
    RegistryUsername: '$(username)'
    RegistryPassword: '$(password)'
    ContainerImage: '<your image tag>'

Menyebarkan dan menentukan penyusun (hanya paket Perusahaan)

Jika Anda menggunakan paket Azure Spring Apps Enterprise, Anda juga dapat menentukan penyusun mana yang akan digunakan untuk menyebarkan tindakan menggunakan builder opsi , seperti yang ditunjukkan dalam contoh berikut. Untuk informasi selengkapnya, lihat Menggunakan Tanzu Build Service.

- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your-service-connection-name>'
    Action: 'Deploy'
    AzureSpringCloud: '<your-Azure-Spring-Apps-service-instance-name>'
    AppName: '<app-name>'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: './target/your-result-jar.jar'
    Builder: '<your-Tanzu-Build-Service-Builder-resource>'

Langkah berikutnya