Udostępnij za pośrednictwem


Zarządzanie cyklem życia aplikacji w klastrze zarządzanym przy użyciu usługi Azure Resource Manager

Istnieje wiele opcji wdrażania aplikacji usługi Azure Service Fabric w klastrze zarządzanym usługi Service Fabric. Zalecamy korzystanie z usługi Azure Resource Manager. Jeśli używasz usługi Resource Manager, możesz opisać aplikacje i usługi w formacie JSON, a następnie wdrożyć je w tym samym szablonie usługi Resource Manager co klaster. W przeciwieństwie do używania programu PowerShell lub interfejsu wiersza polecenia platformy Azure do wdrażania aplikacji i zarządzania nimi, jeśli używasz usługi Resource Manager, nie musisz czekać, aż klaster będzie gotowy; Rejestracja aplikacji, aprowizowanie i wdrażanie mogą odbywać się w jednym kroku. Korzystanie z usługi Resource Manager to najlepszy sposób zarządzania cyklem życia aplikacji w klastrze. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania: infrastruktura jako kod.

Zarządzanie aplikacjami jako zasobami w usłudze Resource Manager może pomóc w uzyskaniu ulepszeń w następujących obszarach:

  • Dziennik inspekcji: usługa Resource Manager przeprowadza inspekcję każdej operacji i przechowuje szczegółowy dziennik aktywności. Dziennik aktywności może pomóc w śledzeniu wszelkich zmian wprowadzonych w aplikacjach i w klastrze.
  • Kontrola dostępu oparta na rolach: dostęp do klastrów i aplikacji wdrożonych w klastrze można zarządzać przy użyciu tego samego szablonu usługi Resource Manager.
  • Wydajność zarządzania: użycie usługi Resource Manager zapewnia jedną lokalizację (witrynę Azure Portal) do zarządzania klastrem i krytycznymi wdrożeniami aplikacji.

Z tego dokumentu dowiesz się, jak wykonywać następujące działania:

  • Wdrażanie zasobów aplikacji usługi Service Fabric przy użyciu usługi Resource Manager.
  • Uaktualnij zasoby aplikacji usługi Service Fabric przy użyciu usługi Resource Manager.
  • Usuń zasoby aplikacji usługi Service Fabric.

Uwaga

Ten dokument jest czwartą częścią czteroczęściowej serii samouczków, począwszy od wdrażania klastra zarządzanego usługi Service Fabric. W związku z tym należy się spodziewać, że klaster został wdrożony przed tym krokiem. Jeśli jednak zamierzasz wdrożyć klaster i aplikację razem, w tym samym szablonie usługi ARM lub Bicep, należy pamiętać, że versions musi mieć zależność od nodeType. W przeciwnym razie wdrożenie zakończy się niepowodzeniem.

Wdrażanie zasobów aplikacji usługi Service Fabric

Ogólne kroki, które należy wykonać w celu wdrożenia aplikacji i jej usług przy użyciu modelu zasobów aplikacji usługi Resource Manager, to:

  1. Spakuj kod aplikacji.
  2. Przekaż pakiet.
  3. Odwołuj się do lokalizacji pakietu w szablonie usługi Resource Manager jako zasobu aplikacji.

Aby uzyskać więcej informacji, zobacz Tworzenie pakietu aplikacji.

Następnie utworzysz szablon usługi Resource Manager, zaktualizujesz plik parametrów przy użyciu szczegółów aplikacji i wdrożysz szablon w klastrze zarządzanym usługi Service Fabric. Zapoznaj się z przykładami.

Tworzenie konta magazynu

Aby wdrożyć aplikację na podstawie szablonu usługi Resource Manager, musisz mieć konto magazynu. Konto magazynu służy do przygotowania obrazu aplikacji.

Możesz użyć istniejącego konta magazynu lub utworzyć nowe konto magazynu na potrzeby przemieszczania aplikacji. Jeśli używasz istniejącego konta magazynu, możesz pominąć ten krok.

Tworzenie konta magazynu

Uwaga

Anonimowy publiczny dostęp do danych obiektów blob na koncie magazynu stanowi zagrożenie bezpieczeństwa. Podczas tworzenia konta magazynu zalecamy wyłączenie anonimowego publicznego dostępu do danych obiektów blob na poziomie konta przez ustawienie właściwości AllowBlobPublicAccess na wartość false. Aby uzyskać więcej informacji, zobacz Korygowanie anonimowego publicznego dostępu do odczytu do danych obiektów blob (wdrożenia usługi Azure Resource Manager).

Konfigurowanie konta magazynu

Po utworzeniu konta magazynu utworzysz kontener obiektów blob, w którym można przygotować aplikacje. W witrynie Azure Portal przejdź do konta usługi Azure Storage, na którym chcesz przechowywać aplikacje. Wybierz pozycję Obiekty blob>Dodaj kontener.

Dostęp do kontenera można udzielić na jeden z następujących sposobów:

Przygotowywanie aplikacji na koncie magazynu

Przed wdrożeniem aplikacji należy przygotować aplikację w magazynie obiektów blob. W tym samouczku ręcznie utworzymy pakiet aplikacji. Należy pamiętać, że ten krok można zautomatyzować. Aby uzyskać więcej informacji, zobacz Pakowanie aplikacji.

W tym samouczku użyjemy przykładowej aplikacji Voting.

  1. W programie Visual Studio kliknij prawym przyciskiem myszy projekt Voting , a następnie wybierz pozycję Pakiet.

    Aplikacja pakietu

  2. Przejdź do katalogu .\service-fabric-dotnet-quickstart\Voting\pkg\Debug . Spakuj zawartość do pliku o nazwie Voting.zip. Plik ApplicationManifest.xml powinien znajdować się w katalogu głównym w pliku zip.

    Aplikacja zip

  3. Zmień nazwę pliku, aby zmienić rozszerzenie z .zip na .sfpkg.

  4. W witrynie Azure Portal w kontenerze aplikacji dla konta magazynu wybierz pozycję Przekaż, a następnie przekaż plik Voting.sfpkg.

    Przekazywanie pakietu aplikacji

Teraz aplikacja jest teraz etapowa i można utworzyć szablon usługi Resource Manager w celu wdrożenia aplikacji.

Tworzenie szablonu usługi Resource Manager

Przykładowa aplikacja zawiera szablony usługi Azure Resource Manager, których można użyć do wdrożenia aplikacji. Nazwy plików szablonu są UserApp.json i UserApp.Parameters.json.

Uwaga

Plik UserApp.Parameters.json musi zostać zaktualizowany o nazwę klastra.

Parametr Opis Przykład Komentarze
clusterName Nazwa wdrażanego klastra sf-cluster123
aplikacja Nazwa aplikacji Voting (Głosowanie)
version Identyfikator zasobu, typ aplikacji i wersja aplikacji. /providers/Microsoft.ServiceFabric/managedClusters/sf-cluster-123/applicationTypes/VotingType/versions/1.0.0 Musi być zgodna z ApplicationManifest.xml
serviceName Nazwa usługi VotingWeb Musi być w formacie ServiceType
serviceTypeName Nazwa typu usługi VotingWebType Musi być zgodna z ServiceManifest.xml
appPackageUrl Adres URL magazynu obiektów blob aplikacji https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg Adres URL pakietu aplikacji w usłudze Blob Storage (procedura ustawiania adresu URL jest opisana w dalszej części artykułu)
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applications",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applicationTypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applicationTypes/versions",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applications/services",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
    "location": "[variables('clusterLocation')]"
}

Wdrażanie aplikacji usługi Service Fabric

Uruchom polecenie cmdlet New-AzResourceGroupDeployment, aby wdrożyć aplikację w grupie zasobów zawierającej klaster:

New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose

Uaktualnianie aplikacji usługi Service Fabric przy użyciu usługi Resource Manager

Ważne

Wszystkie usługi wdrażane za pośrednictwem szablonu usługi Azure Resource Manager (ARM) muszą zostać usunięte z sekcji DefaultServices odpowiedniego pliku ApplicationManifest.xml.

Możesz uaktualnić aplikację, która została już wdrożona w klastrze usługi Service Fabric z jednego z następujących powodów:

  • Nowa usługa jest dodawana do aplikacji. Definicja usługi musi zostać dodana do plików service-manifest.xml i application-manifest.xml po dodaniu usługi do aplikacji. Aby odzwierciedlić nową wersję aplikacji, należy również zmienić wersję typu aplikacji z 1.0.0 na 1.0.1 w UserApp.Parameters.json:

    "applicationTypeVersion": {
        "value": "1.0.1"
    },
    "serviceName2": {
        "value": "VotingData"
    },
    "serviceTypeName2": {
        "value": "VotingDataType"
    }
    
  • Nowa wersja istniejącej usługi jest dodawana do aplikacji. Przykłady obejmują zmiany kodu aplikacji i aktualizacje wersji i nazwy typu aplikacji. W przypadku tego uaktualnienia zaktualizuj UserApp.Parameters.json w następujący sposób:

     "applicationTypeVersion": {
        "value": "1.0.1"
    }
    

Usuwanie zasobów aplikacji usługi Service Fabric

Uwaga

Nie należy usuwać aplikacji za pośrednictwem szablonu usługi Azure Resource Manager (ARM), ponieważ nie ma deklaratywnego sposobu czyszczenia poszczególnych zasobów

Aby usunąć aplikację usługi Service Fabric wdrożoną przy użyciu modelu zasobów aplikacji w usłudze Resource Manager:

  1. Użyj polecenia cmdlet Get-AzResource, aby uzyskać identyfikator zasobu dla aplikacji:

    Get-AzResource  -Name <String> | f1
    
  2. Użyj polecenia cmdlet Remove-AzServiceFabricApplication, aby usunąć zasoby aplikacji:

    Remove-AzServiceFabricApplication -ResourceId <String> [-Force]
    

Migracja z klastrów klasycznych do zarządzanych

Jeśli migrujesz aplikacje z klasycznego do zarządzanych klastrów, musisz upewnić się, że typy sprawdzania poprawności są poprawnie określone lub wystąpią błędy.

Następujące elementy są wywoływane specjalnie ze względu na częstotliwość użycia, ale nie mają być wyłączną listą różnic.

  • upgradeReplicaSetCheckTimeout jest teraz liczbą całkowitą zarządzaną, ale ciągiem w klasycznym sfRP.

Zobacz Typy zasobów aplikacji klastrów zarządzanych, aby uzyskać pełną listę właściwości i typów

Następne kroki

Dowiedz się więcej o wdrażaniu aplikacji klastra zarządzanego: