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:
- Spakuj kod aplikacji.
- Przekaż pakiet.
- 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.
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:
- Rolę RBAC platformy Azure można przypisać do kontenera do podmiotu zabezpieczeń, aby podmiot zabezpieczeń mógł uzyskiwać dostęp do danych w kontenerze za pośrednictwem autoryzacji firmy Microsoft Entra. Aby uzyskać więcej informacji, zobacz Autoryzowanie dostępu do obiektów blob przy użyciu identyfikatora Entra firmy Microsoft.
- Możesz delegować dostęp do kontenera za pomocą sygnatury dostępu współdzielonego, aby udzielić klientowi dostępu do obiektów blob w kontenerze przez ograniczony okres i z określonymi uprawnieniami. Aby uzyskać więcej informacji, zobacz Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatur dostępu współdzielonego (SAS).
- Możesz użyć kluczy dostępu do konta, aby autoryzować dostęp do danych obiektów blob. Takie podejście jest najmniej bezpieczne i nie jest zalecane.
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.
W programie Visual Studio kliknij prawym przyciskiem myszy projekt Voting , a następnie wybierz pozycję Pakiet.
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.
Zmień nazwę pliku, aby zmienić rozszerzenie z .zip na .sfpkg.
W witrynie Azure Portal w kontenerze aplikacji dla konta magazynu wybierz pozycję Przekaż, a następnie przekaż plik Voting.sfpkg.
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:
Użyj polecenia cmdlet Get-AzResource, aby uzyskać identyfikator zasobu dla aplikacji:
Get-AzResource -Name <String> | f1
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: