Tutorial: Menyebarkan aplikasi Java ke set skala komputer virtual

Azure DevOps

Set skala komputer virtual memungkinkan Anda menyebarkan dan mengelola komputer virtual yang identik dan menskalakan otomatis.

Komputer virtual dibuat sesuai kebutuhan dalam set skala. Anda menentukan aturan untuk mengontrol bagaimana dan kapan VM ditambahkan atau dihapus dari set skala. Aturan ini dapat dipicu berdasarkan metrik seperti beban CPU, penggunaan memori, atau lalu lintas jaringan.

Dalam tutorial ini, Anda membuat aplikasi Java dan menyebarkannya ke set skala komputer virtual. Anda akan mempelajari cara untuk:

  • Buat kumpulan skala komputer virtual
  • Membangun citra komputer
  • Menyebarkan gambar kustom ke set skala komputer virtual

Prasyarat

Sebelum Anda mulai, Anda perlu:

Menyiapkan alur Java Anda

  1. Masuk ke organisasi Azure DevOps Anda dan buka proyek Anda.

  2. Buka Alur, lalu pilih Alur baru atau Buat alur jika membuat alur pertama Anda.

  3. Lakukan langkah-langkah wizard dengan terlebih dahulu memilih GitHub sebagai lokasi kode sumber Anda.

  4. Anda dapat diarahkan ke GitHub untuk masuk. Jika demikian, masukkan informasi masuk GitHub Anda.

  5. Saat Anda melihat daftar repositori, pilih repositori Anda.

  6. Anda mungkin diarahkan ke GitHub untuk menginstal aplikasi Azure Pipelines. Jika demikian, pilih Setujui & instal.

Saat tab Konfigurasi muncul, pilih Maven.

Mengkustomisasi alur

  1. Ketika alur baru Anda muncul, tinjau YAML untuk melihat tindakan yang dilakukannya. Saat Anda siap, pilih Simpan dan jalankan.

    Save and run button in a new YAML pipeline

  2. Anda diminta untuk menerapkan file azure-pipelines.yml baru ke repositori Anda. Setelah Anda puas dengan pesan, pilih Simpan dan jalankan lagi.

    Jika Anda ingin menonton alur Anda beraksi, pilih pekerjaan build.

    Anda baru saja membuat dan menjalankan alur yang secara otomatis kami buat untuk Anda, karena kode Anda tampaknya cocok untuk templat Maven .

    Anda sekarang memiliki alur YAML yang berfungsi (azure-pipelines.yml) di repositori Anda yang siap untuk Anda sesuaikan!

  3. Saat Anda siap untuk membuat perubahan pada alur Anda, pilih di halaman Alur , lalu Editazure-pipelines.yml file.

Menambahkan tugas Salin File dan Menerbitkan Artefak Build

  1. Perbarui alur Anda untuk menyertakan CopyFiles@2 tugas. Ini akan membuat artefak yang dapat Anda sebarkan ke set skala komputer virtual Anda.

      trigger: none
    
      pool:
        vmImage: 'ubuntu-latest'
    
      steps:
    - task: Maven@4
      inputs:
        mavenPomFile: 'pom.xml'
        mavenOptions: '-Xmx3072m'
        javaHomeOption: 'JDKVersion'
        jdkVersionOption: '1.8'
        jdkArchitectureOption: 'x64'
        publishJUnitResults: true
        testResultsFiles: '**/surefire-reports/TEST-*.xml'
        goals: 'package'
    
    - task: CopyFiles@2
      displayName: 'Copy File to: $(TargetFolder)'
      inputs:
        SourceFolder: '$(Build.SourcesDirectory)'
        Contents: |
          **/*.sh 
          **/*.war
          **/*jar-with-dependencies.jar
        TargetFolder: '$(System.DefaultWorkingDirectory)/pipeline-artifacts/'
        flattenFolders: true  
    

Membuat gambar kustom dan mengunggahnya ke Azure

Anda memerlukan grup sumber daya, akun penyimpanan, dan galeri gambar bersama untuk gambar kustom Anda.

  1. Membuat grup sumber daya dengan membuat grup az. Contoh ini membuat grup sumber daya bernama myVMSSResourceGroup di lokasi eastus2 :

    az group create --name myVMSSResourceGroup --location eastus2
    
  2. Buat akun penyimpanan baru. Contoh ini membuat akun penyimpanan, vmssstorageaccount.

    az storage account create \
      --name vmssstorageaccount \
      --resource-group myVMSSResourceGroup \
      --location eastus2 \
      --sku Standard_LRS 
    
  3. Membuat galeri gambar bersama.

    az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
    
  4. Buat galeri gambar baru di myVMSSGallery sumber daya. Lihat Membuat Azure Shared Image Gallery menggunakan portal untuk mempelajari selengkapnya tentang bekerja dengan galeri gambar.

    az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
    
  5. Buat definisi gambar. id Salin gambar baru yang terlihat seperti /subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/galleries/myVMSSGallery/images/MyImage.

    az sig image-definition create -g myVMSSResourceGroup --gallery-name myVMSSGallery --gallery-image-definition MyImage --publisher GreatPublisher --offer GreatOffer --sku GreatSku --os-type linux
    

Buat identitas terkelola

  1. Buat identitas terkelola di grup sumber daya Anda.

    az identity create -g myVMSSResourceGroup -n myVMSSIdentity
    
  2. Dari output, salin id. Akan id terlihat seperti /subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>.

  3. Buka galeri gambar Anda di galeri dan tetapkan myVMSSIdentity peran Kontributor. Ikuti langkah-langkah ini untuk menambahkan penetapan peran.

Membuat gambar kustom

Untuk membuat gambar kustom, Anda dapat menggunakan Tugas Azure VM Image Builder DevOps.

  1. Tambahkan tugas ke AzureImageBuilderTask@1 file YAML Anda. Ganti nilai untuk <SUBSCRIPTION ID>, <RESOURCE GROUP>, <USER ASSIGNED IDENTITY NAME> dengan nilai Anda sendiri. Pastikan untuk memverifikasi bahwa galleryImageIdnilai , managedIdentity dan storageAccountName akurat.

    - task: AzureImageBuilderTask@1
      displayName: 'Azure VM Image Builder Task'
      inputs:
        managedIdentity: '/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>'
        imageSource: 'marketplace'
        packagePath: '$(System.DefaultWorkingDirectory)/pipeline-artifacts'
        inlineScript: |
          sudo mkdir /lib/buildArtifacts
          sudo cp  "/tmp/pipeline-artifacts.tar.gz" /lib/buildArtifacts/.
          cd /lib/buildArtifacts/.
          sudo tar -zxvf pipeline-artifacts.tar.gz
          sudo sh install.sh
        storageAccountName: 'vmssstorageaccount2'
        distributeType: 'sig'
        galleryImageId: '/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/galleries/myVMSSGallery/images/MyImage/versions/0.0.$(Build.BuildId)'
        replicationRegions: 'eastus2'
        ibSubscription: '<SUBSCRIPTION ID>'
        ibAzureResourceGroup: 'myVMSSResourceGroup'
        ibLocation: 'eastus2'
    
  2. Jalankan alur untuk menghasilkan gambar pertama Anda. Anda mungkin perlu mengotorisasi sumber daya selama eksekusi alur.

  3. Buka gambar baru di portal Azure dan buka Gambaran Umum. Pilih Buat VMSS untuk membuat set skala komputer virtual baru dari gambar baru. Atur Nama set skala komputer virtual ke vmssScaleSet. Lihat Membuat set skala komputer virtual di portal Azure untuk mempelajari selengkapnya tentang membuat set skala komputer virtual di portal Azure.

Menyebarkan pembaruan ke set skala komputer virtual

Tambahkan tugas Azure CLI ke alur Anda untuk menyebarkan pembaruan ke set skala. Tambahkan tugas di akhir alur. Ganti <SUBSCRIPTION ID> dengan ID Langganan Anda.

- task: AzureCLI@2
  inputs:
    azureSubscription: '`YOUR_SUBSCRIPTION_ID`' #Authorize and in the task editor
    ScriptType: 'pscore'
    scriptLocation: 'inlineScript'
    Inline: 'az vmss update --resource-group myVMSSResourceGroup --name vmssScaleSet --set virtualMachineProfile.storageProfile.imageReference.id=/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myVMSSResourceGroup/providers/Microsoft.Compute/galleries/myVMSSGallery/images/MyImage/versions/0.0.$(Build.BuildId)'

Membersihkan sumber daya

Buka portal Azure dan hapus grup sumber daya Anda, myVMSSResourceGroup.

Langkah berikutnya