Kurz: Nasazení aplikace v Javě do škálovací sady virtuálních počítačů

Služby Azure DevOps

Škálovací sada virtuálních počítačů umožňuje nasadit a spravovat identické a automatické škálování virtuálních počítačů.

Virtuální počítače se ve škálovací sadě vytvářejí podle potřeby. Definujete pravidla, která určují, jak a kdy se virtuální počítače přidávají nebo odebírají ze škálovací sady. Tato pravidla se můžou aktivovat na základě metrik, jako jsou zatížení procesoru, využití paměti nebo síťový provoz.

V tomto kurzu vytvoříte aplikaci v Javě a nasadíte ji do škálovací sady virtuálních počítačů. Získáte informace pro:

  • Vytvoření škálovací sady virtuálních počítačů
  • Sestavení image počítače
  • Nasazení vlastní image do škálovací sady virtuálních počítačů

Požadavky

Než začnete, potřebujete:

Nastavení kanálu Java

  1. Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu.

  2. Přejděte na Kanály a pak vyberte Nový kanál nebo Vytvořit kanál , pokud vytváříte první kanál.

  3. Kroky průvodce proveďte tak, že nejprve vyberete GitHub jako umístění zdrojového kódu.

  4. Můžete být přesměrováni na GitHub kvůli přihlášení. Pokud ano, zadejte svoje přihlašovací údaje GitHubu.

  5. Až se zobrazí seznam úložišť, vyberte úložiště.

  6. K instalaci aplikace Azure Pipelines můžete být přesměrováni na GitHub. Pokud ano, vyberte Schválit a nainstalovat.

Po zobrazení karty Konfigurovat vyberte Maven.

Přizpůsobení kanálu

  1. Jakmile se nový kanál zobrazí, podívejte se na YAML a podívejte se, co dělá. Až budete připraveni, vyberte Uložit a spustit.

    Save and run button in a new YAML pipeline

  2. Zobrazí se výzva k potvrzení nového souboru azure-pipelines.yml do úložiště. Až budete se zprávou spokojeni, vyberte Uložit a spusťte znovu.

    Pokud chcete sledovat kanál v akci, vyberte úlohu sestavení.

    Právě jste vytvořili a spustili kanál, který jsme pro vás automaticky vytvořili, protože se zdá, že váš kód odpovídá šabloně Maven .

    Teď máte v úložišti funkční kanál YAML,azure-pipelines.yml který je připravený k přizpůsobení.

  3. Až budete chtít kanál změnit, vyberte ho na stránce Pipelines a pak upravteazure-pipelines.yml soubor.

Přidání úloh Kopírování souborů a publikování artefaktů sestavení

  1. Aktualizujte kanál tak, aby zahrnoval CopyFiles@2 úlohu. Tím se vytvoří artefakt, který můžete nasadit do škálovací sady virtuálních počítačů.

      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  
    

Vytvoření vlastní image a jeho nahrání do Azure

Pro vlastní image budete potřebovat skupinu prostředků, účet úložiště a galerii sdílených imagí.

  1. Vytvořte skupinu prostředků pomocí příkazu az group create. Tento příklad vytvoří skupinu prostředků myVMSSResourceGroup v umístění eastus2 :

    az group create --name myVMSSResourceGroup --location eastus2
    
  2. Vytvořte nový účet úložiště. Tento příklad vytvoří účet vmssstorageaccountúložiště .

    az storage account create \
      --name vmssstorageaccount \
      --resource-group myVMSSResourceGroup \
      --location eastus2 \
      --sku Standard_LRS 
    
  3. Vytvořte galerii sdílených imagí.

    az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
    
  4. Vytvořte v prostředku novou galerii myVMSSGallery imagí. Další informace o práci s galeriemi imagí najdete v tématu Vytvoření sdílené galerie imagí Azure pomocí portálu .

    az sig create --resource-group myVMSSResourceGroup --gallery-name myVMSSGallery
    
  5. Vytvořte definici obrázku. id Zkopírujte nový obrázek, který vypadá takto/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
    

Vytvoření spravované identity

  1. Vytvořte spravovanou identitu ve skupině prostředků.

    az identity create -g myVMSSResourceGroup -n myVMSSIdentity
    
  2. Z výstupu zkopírujte .id Bude id vypadat jako /subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>.

  3. Otevřete galerii obrázků v galerii a přiřaďte myVMSSIdentity roli Přispěvatel. Přiřazení role přidáte podle těchto kroků.

Vytvoření vlastní image

Pokud chcete vytvořit vlastní image, můžete použít úlohu DevOps pro Azure VM Image Builder.

  1. Přidejte úkol AzureImageBuilderTask@1 do souboru YAML. Nahraďte hodnoty pro <SUBSCRIPTION ID>, <RESOURCE GROUP><USER ASSIGNED IDENTITY NAME> vlastním. Ujistěte se, že galleryImageIdmanagedIdentity jsou hodnoty a hodnoty storageAccountName přesné.

    - 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. Spuštěním kanálu vygenerujte první image. Možná budete muset autorizovat prostředky během spuštění kanálu.

  3. Přejděte na novou image na webu Azure Portal a otevřete Přehled. Výběrem možnosti Vytvořit VMSS vytvořte novou škálovací sadu virtuálních počítačů z nové image. Nastavte název škálovací sady virtuálních počítačů na vmssScaleSethodnotu . Další informace o vytváření škálovacích sad virtuálních počítačů na webu Azure Portal najdete v tématu Vytvoření škálovací sady virtuálních počítačů na webu Azure Portal.

Nasazení aktualizací do škálovací sady virtuálních počítačů

Přidejte do kanálu úlohu Azure CLI, která nasadí aktualizace do škálovací sady. Přidejte úkol na konec kanálu. Nahraďte <SUBSCRIPTION ID> ID předplatného.

- 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)'

Vyčištění prostředků

Přejděte na web Azure Portal a odstraňte skupinu myVMSSResourceGroupprostředků.

Další kroky