Udostępnij przez


Wdrażanie aplikacji w zestawach skalowania maszyn wirtualnych

Uwaga / Notatka

W tym dokumencie opisano zestawy skalowania maszyn wirtualnych uruchomione w trybie jednolitej aranżacji. Zalecamy używanie elastycznej orkiestracji dla nowych obciążeń. Aby uzyskać więcej informacji, zobacz Orchestration modes for Virtual Machine Scale Sets in Azure (Tryby orkiestracji dla zestawów skalowania maszyn wirtualnych na platformie Azure).

Aby uruchamiać aplikacje na wystąpieniach maszyn wirtualnych w zestawie skalowania, musisz najpierw zainstalować składniki aplikacji i wymagane pliki. W tym artykule przedstawiono sposoby budowy niestandardowego obrazu maszyny wirtualnej dla instancji w zestawie skalowania oraz automatyczne uruchamianie skryptów instalacyjnych na istniejących instancjach maszyn wirtualnych. Dowiesz się również, jak zarządzać aktualizacjami aplikacji lub systemu operacyjnego w zestawie skalowania.

Instalowanie aplikacji przy użyciu aplikacji maszyn wirtualnych

Aplikacje maszyn wirtualnych platformy Azure zapewniają usprawniony, skalowalny i bezpieczny sposób tworzenia pakietów, zarządzania i wdrażania aplikacji na maszynach wirtualnych platformy Azure, zestawów skalowania maszyn wirtualnych (VMSS). Aplikacje maszyn wirtualnych to najlepsza metoda wdrażania narzędzi, agentów, aplikacji sztucznej inteligencji, składników zabezpieczeń i aplikacji biznesowych na platformie Azure. Jest ona przeznaczona do wdrażania sztucznej inteligencji, bezpieczeństwa, dużej skali, małych opóźnień i zgodnych obciążeń na maszynach wirtualnych platformy Azure.

Najważniejsze korzyści:

  • Scentralizowane i elastyczne zarządzanie aplikacjami:
    • Tworzenie pakietów raz, wdrażanie w dowolnym miejscu: tworzenie pakietów aplikacji w formatach ZIP, MSI lub EXE i zarządzanie nimi centralnie w galerii obliczeń platformy Azure.
    • Kontrola wersji: obsługa wielu wersji aplikacji, umożliwiając zespołom wdrażanie najnowszej lub określonej wersji zgodnie z potrzebami.
  • Bezproblemowe udostępnianie i kontrola dostępu
    • Tenant-Wide Udostępnianie: Aplikacje można udostępniać w zespołach lub w całej organizacji (dzierżawcy).
    • Zintegrowana kontrola dostępu oparta na rolach: kontrolowanie dostępu do publikowania i wdrażania przy użyciu kontroli dostępu na Role-Based podstawie ról (RBAC) platformy Azure.
  • Niezawodne i dostosowywalne wdrożenia
    • Indywidualne zarządzanie aplikacjami: instalowanie, aktualizowanie lub usuwanie aplikacji bez potrzeby ponownego kompilowania obrazów maszyn wirtualnych.
    • Operacje dostosowywalne: dostosowywanie operacji instalacji, aktualizacji i usuwania dla aplikacji, w tym obsługi ponownego uruchamiania.
    • Built-In Obsługa awarii: Zapewnij odporność wdrożeń przez powiązanie awarii aplikacji maszyny wirtualnej z awarią maszyny wirtualnej.
  • Skalowalna i Low-Latency Dystrybucja
    • Replikacja globalna i Intra-Region: Automatyczne replikowanie aplikacji między regionami oraz w ich obrębie w celu zmniejszenia opóźnień i zwiększenia odporności — nie ma potrzeby korzystania z AzCopy ani przeprowadzania ręcznego transferu.
    • Zoptymalizowane pod kątem scenariuszy High-Scale: osiągnij niskie opóźnienie tworzenia nawet podczas wdrożeń na dużą skalę.
  • Zabezpieczanie i zgodność według projektu
    • Wymuszanie oparte na zasadach: użyj usługi Azure Policy, aby wymusić obecność i konfigurację aplikacji w całej flocie.
    • Bezpieczne wdrożenia: unikaj pobierania internetowego i złożonych konfiguracji linków prywatnych — idealne dla środowisk zablokowanych.
  • Obsługa szerokiej platformy
    • Maszyny wirtualne i zestawy skalowania: wdróż na poszczególnych maszynach wirtualnych, elastyczne zestawy skalowania lub jednolite zestawy skalowania z pełną obsługą.
    • Obsługa obiektów blob typu Block: Efektywna obsługa dużych pakietów aplikacji przy użyciu obiektów blob typu Block w Azure dla przesyłania danych w kawałkach i strumieniowego przesyłu w tle.

Tworzenie i wdrażanie aplikacji maszyn wirtualnych

Tworzenie niestandardowego obrazu maszyny wirtualnej

Jeśli używasz jednego z obrazów platformy Azure do tworzenia instancji w zestawie skalowania, nie jest instalowane ani konfigurowane żadne dodatkowe oprogramowanie. Instalację tych składników można zautomatyzować, jednak zwiększa to czas potrzebny na konfigurowanie wystąpień maszyn wirtualnych w ramach zestawów skalowania. W przypadku zastosowania wielu zmian w konfiguracji wystąpień maszyn wirtualnych pojawia się dodatkowe obciążenie związane z zarządzaniem skryptami konfiguracji i zadaniami.

Aby skrócić zarządzanie konfiguracją i czas wdrażania maszyny wirtualnej, możesz utworzyć niestandardowy obraz maszyny wirtualnej, który jest gotowy do uruchomienia aplikacji natychmiast po wdrożeniu wystąpienia w zestawie skalowalnym. Aby uzyskać więcej informacji na temat tworzenia i używania niestandardowego obrazu maszyny wirtualnej z zestawem skalowania, zobacz następujące samouczki:

Instalowanie aplikacji przy użyciu rozszerzenia niestandardowego skryptu

Rozszerzenie skryptów niestandardowych pobiera i wykonuje skrypty na maszynach wirtualnych platformy Azure. To rozszerzenie jest przydatne w przypadku konfiguracji po wdrożeniu, instalowania oprogramowania lub każdego innego zadania związanego z konfiguracją lub zarządzaniem. Skrypty można pobrać z usługi Azure Storage lub GitHub bądź można je dostarczyć do witryny Azure Portal w czasie wykonywania rozszerzenia. Aby uzyskać więcej informacji na temat sposobu instalowania aplikacji przy użyciu rozszerzenia niestandardowego skryptu, zobacz następujące samouczki:

Instalowanie aplikacji na maszynie wirtualnej z systemem Windows przy użyciu rozszerzenia DSC programu PowerShell

PowerShell Desired State Configuration (DSC) to platforma zarządzania służąca do definiowania konfiguracji maszyn docelowych. Konfiguracje DSC definiują, co należy zainstalować na maszynie i jak skonfigurować hosta. Silnik lokalnego menedżera konfiguracji (LCM) działa na każdym węźle docelowym, który przetwarza żądane akcje na podstawie konfiguracji przesyłanych.

Rozszerzenie DSC PowerShell umożliwia dostosowywanie wystąpień maszyn wirtualnych w skali zestawu za pomocą PowerShell. Poniższy przykład:

Rozszerzenie DSC jest stosowane do instancji maszyn wirtualnych myScaleSet w grupie zasobów nazwanej myResourceGroup. Wprowadź własne nazwy w następujący sposób:

# Define the script for your Desired Configuration to download and run
$dscConfig = @{
  "wmfVersion" = "latest";
  "configuration" = @{
    "url" = "https://github.com/Azure-Samples/compute-automation-configurations/raw/master/dsc.zip";
    "script" = "configure-http.ps1";
    "function" = "WebsiteTest";
  };
}

# Get information about the scale set
$vmss = Get-AzVmss `
                -ResourceGroupName "myResourceGroup" `
                -VMScaleSetName "myScaleSet"

# Add the Desired State Configuration extension to install IIS and configure basic website
$vmss = Add-AzVmssExtension `
    -VirtualMachineScaleSet $vmss `
    -Publisher Microsoft.Powershell `
    -Type DSC `
    -TypeHandlerVersion 2.24 `
    -Name "DSC" `
    -Setting $dscConfig

# Update the scale set and apply the Desired State Configuration extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet"  `
    -VirtualMachineScaleSet $vmss

Jeśli zasady aktualizacji zestawu skalowania są ręczne, zaktualizuj wystąpienia maszyn wirtualnych za pomocą polecenia Update-AzVmssInstance. To polecenie cmdlet stosuje zaktualizowaną konfigurację zestawu skalowania do wystąpień maszyn wirtualnych i instaluje aplikację.

Instalowanie aplikacji na maszynie wirtualnej z systemem Linux przy użyciu pakietu cloud-init

Cloud-init to powszechnie używana metoda dostosowywania maszyny wirtualnej z systemem Linux podczas jej pierwszego rozruchu. Za pomocą pakietu cloud-init można instalować pakiety i zapisywać pliki lub konfigurować użytkowników i zabezpieczenia. Ponieważ program cloud-init jest uruchamiany podczas początkowego procesu rozruchu, nie ma dodatkowych kroków ani agentów wymaganych do zastosowania konfiguracji.

Pakiet cloud-init działa również w różnych dystrybucjach. Na przykład nie używasz polecenia apt-get install lub yum install w celu zainstalowania pakietu. Zamiast tego można zdefiniować listę pakietów do zainstalowania. Pakiet cloud-init automatycznie używa natywnego narzędzia do zarządzania pakietami dla wybranej dystrybucji.

Aby uzyskać więcej informacji, w tym przykładowy plik cloud-init.txt , zobacz Dostosowywanie maszyn wirtualnych platformy Azure przy użyciu pakietu cloud-init.

Aby utworzyć zestaw skalowania i użyć pliku cloud-init, dodaj --custom-data parametr do polecenia az vmss create i określ nazwę pliku cloud-init. Poniższy przykład obejmuje tworzenie zestawu skalowania o nazwie myScaleSet w grupie myResourceGroup i konfigurowanie wystąpień maszyn wirtualnych przy użyciu pliku o nazwie cloud-init.txt. Wprowadź własne nazwy w następujący sposób:

Ważne

Od listopada 2023 r. zestawy skalowania maszyn wirtualnych utworzone przy użyciu programu PowerShell i interfejsu wiersza polecenia platformy Azure są domyślnie ustawione na tryb elastycznej aranżacji, jeśli nie określono trybu aranżacji. Aby uzyskać więcej informacji na temat tej zmiany i akcji, które należy wykonać, przejdź do tematu Zmiana powodująca niezgodność dla klientów programu PowerShell/interfejsu wiersza polecenia — Microsoft Community Hub

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  -–orchestration-mode uniform \
  --upgrade-policy-mode automatic \
  --custom-data cloud-init.txt \
  --admin-username azureuser \
  --generate-ssh-keys

Instalowanie aplikacji za pomocą aktualizacji systemu operacyjnego

Gdy są dostępne nowe wersje systemu operacyjnego, można użyć lub skompilować nowy obraz niestandardowy i wdrożyć uaktualnienia systemu operacyjnego do zestawu skalowania. Każda instancja maszyny wirtualnej jest aktualizowana do najnowszego obrazu, który określisz. Możesz użyć obrazu niestandardowego ze wstępnie zainstalowaną aplikacją, niestandardowym rozszerzeniem skryptu lub DSC programu PowerShell, aby Twoja aplikacja była automatycznie dostępna podczas procesu uaktualniania. Może być konieczne zaplanowanie konserwacji aplikacji podczas wykonywania tego procesu, aby upewnić się, że nie ma problemów ze zgodnością wersji.

Jeśli używasz niestandardowego obrazu maszyny wirtualnej z wstępnie zainstalowaną aplikacją, możesz zintegrować aktualizacje aplikacji z pipeline'em wdrożeniowym, aby stworzyć nowe obrazy i wdrożyć uaktualnienia systemu operacyjnego w zestawie skalowania. Takie podejście umożliwia procesowi pobieranie najnowszych kompilacji aplikacji, tworzenie i weryfikowanie obrazu maszyny wirtualnej, a następnie aktualizowanie wystąpień maszyn wirtualnych w zestawie skalowania. Aby uruchomić potok wdrażania, który kompiluje i wdraża aktualizacje aplikacji na niestandardowych obrazach maszyn wirtualnych, możesz utworzyć obraz packera i wdrożyć go za pomocą usług Azure DevOps Services lub użyć innej platformy, takiej jak Spinnaker lub Jenkins.

Dalsze kroki

Podczas tworzenia i wdrażania aplikacji w zestawach skalowania, warto przejrzeć omówienie projektu zestawu skalowania. Aby uzyskać więcej informacji na temat zarządzania zestawem skalowania, zobacz Zarządzanie zestawem skalowania przy użyciu programu PowerShell.