Modèle de ressource d’application Service Fabric
Vous avez plusieurs options pour déployer des applications Azure Service Fabric sur votre cluster Service Fabric. Nous vous recommandons d’utiliser Azure Resource Manager. Si vous utilisez Resource Manager, vous pouvez décrire les applications et les services au format JSON, puis les déployer dans le même modèle Resource Manager que votre cluster. Contrairement à l’utilisation de PowerShell ou d’Azure CLI pour déployer et gérer des applications, si vous utilisez Resource Manager, vous n’avez pas besoin d’attendre que le cluster soit prêt. L’inscription, le provisionnement et le déploiement d’applications peuvent tous être réalisés en une seule étape. L’utilisation de Resource Manager est la meilleure façon de gérer le cycle de vie des applications dans votre cluster. Pour plus d’informations, consultez Meilleures pratiques : Infrastructure en tant que code.
La gestion de vos applications en tant que ressources dans Resource Manager peut vous aider à obtenir des améliorations dans les domaines suivants :
- Piste d’audit : Resource Manager effectue l’audit de chaque opération et conserve un journal d’activité détaillé. Un journal d’activité peut vous aider à suivre toutes les modifications apportées aux applications et à votre cluster.
- Contrôle d’accès en fonction du rôle : vous pouvez gérer l’accès aux clusters et aux applications déployées sur le cluster en utilisant le même modèle Resource Manager.
- Efficacité de la gestion : Resource Manager vous fournit un emplacement unique (le portail Azure) pour la gestion de votre cluster et des déploiements d’applications critiques.
Dans ce document, découvrez comment :
- Déployer des ressources d’application à l’aide de Resource Manager.
- Mettre à niveau des ressources d’application à l’aide de Resource Manager.
- Supprimer des ressources d’application.
Déployer des ressources d’application
La procédure générale à suivre pour déployer une application et ses services à l’aide du modèle de ressource d’application Resource Manager est la suivante :
- Empaquetez le code de l’application.
- Chargez le package.
- Référencez l’emplacement du package dans un modèle Resource Manager en tant que ressource d’application.
Pour plus d’informations, consultez Empaqueter une application.
Ensuite, vous créez un modèle Resource Manager, vous mettez à jour le fichier de paramètres avec les détails de l’application et vous déployez le modèle sur le cluster Service Fabric. Explorez des exemples.
Créez un compte de stockage.
Pour déployer une application à partir d’un modèle Resource Manager, vous devez disposer d’un compte de stockage. Le compte de stockage permet d’effectuer une copie intermédiaire de l’image d’application.
Vous pouvez réutiliser un compte de stockage existant ou créer un nouveau compte de stockage pour la copie intermédiaire de vos applications. Si vous utilisez un compte de stockage existant, vous pouvez ignorer cette étape.
Configurer votre compte de stockage
Après avoir créé le compte de stockage, vous créez un conteneur d’objets blob dans lequel vous pouvez effectuer une copie intermédiaire des applications. Dans le portail Azure, accédez au compte de Stockage Azure où vous souhaitez stocker vos applications. Sélectionnez Objets blob>Ajouter un conteneur.
Les ressources de votre cluster peuvent être sécurisées en définissant le niveau d’accès public sur privé. Vous pouvez octroyer l’accès de plusieurs façons :
- Octroyez l’accès aux données d’objet blob et de file d’attente Azure en utilisant le contrôle d’accès en fonction du rôle (RBAC) Azure dans le portail Azure.
- Déléguez l’accès en utilisant une signature d’accès partagé.
L’exemple illustré dans la capture d’écran suivante utilise un accès en lecture anonyme pour les objets blob.
Effectuer une copie intermédiaire de l’application dans votre compte de stockage
Avant de pouvoir déployer une application, vous devez effectuer une copie intermédiaire de l’application dans le stockage d’objets blob. Dans ce tutoriel, nous allons créer manuellement le package d’application. Gardez à l’esprit que cette étape peut être automatisée. Pour plus d’informations, consultez Empaqueter une application.
Dans ce tutoriel, nous utilisons l’exemple d’application de vote.
Dans Visual Studio, cliquez avec le bouton droit sur le projet Vote, puis sélectionnez Package.
Accédez au répertoire .\service-fabric-dotnet-quickstart\Voting\pkg\Debug. Compressez le contenu dans un fichier nommé Voting.zip. Le fichier ApplicationManifest.xml doit se trouver à la racine dans le fichier zip.
Renommez le fichier pour remplacer l’extension .zip par .sfpkg.
Dans le portail Azure, dans le conteneur applications de votre compte de stockage, sélectionnez Charger, puis chargez Voting.sfpkg.
La copie intermédiaire de l’application est désormais réalisée et vous pouvez créer le modèle Resource Manager pour déployer l’application.
Créer le modèle Resource Manager
L’exemple d’application contient des modèles Azure Resource Manager que vous pouvez utiliser pour déployer l’application. Les noms des fichiers modèles sont UserApp.json et UserApp.Parameters.json.
Notes
Le fichier UserApp.Parameters.json doit être mis à jour avec le nom de votre cluster.
Paramètre | Description | Exemple | Commentaires |
---|---|---|---|
clusterName | Le nom du cluster de déploiement | sf-cluster123 | |
application | Nom de l’application | Vote | |
applicationTypeName | Le nom du type de l’application | VotingType | Doit correspondre à ApplicationManifest.xml |
applicationTypeVersion | La version du type d’application | 1.0.0 | Doit correspondre à ApplicationManifest.xml |
serviceName | Nom du service | Voting~VotingWeb | Doit être au format ApplicationName~ServiceType |
serviceTypeName | Le nom du type de service | VotingWeb | Doit correspondre à ServiceManifest.xml |
appPackageUrl | L’URL du stockage Blob de l’application | https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg | L’URL du package d’application dans le stockage d’objets blob (la procédure de définition de l’URL est décrite ultérieurement dans cet article) |
{
"apiVersion": "2019-03-01",
"type": "Microsoft.ServiceFabric/clusters/applications",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
"location": "[variables('clusterLocation')]",
},
{
"apiVersion": "2019-03-01",
"type": "Microsoft.ServiceFabric/clusters/applicationTypes",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
"location": "[variables('clusterLocation')]",
},
{
"apiVersion": "2019-03-01",
"type": "Microsoft.ServiceFabric/clusters/applicationTypes/versions",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
"location": "[variables('clusterLocation')]",
},
{
"apiVersion": "2019-03-01",
"type": "Microsoft.ServiceFabric/clusters/applications/services",
"name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
"location": "[variables('clusterLocation')]"
}
Déployer l’application
Exécutez l’applet de commande New-AzResourceGroupDeployment pour déployer l’application dans le groupe de ressources qui contient votre cluster :
New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose
Mettre à niveau l’application Service Fabric à l’aide de Resource Manager
Important
Tout service déployé via la définition JSON ARM doit être supprimé de la section DefaultServices du fichier ApplicationManifest.xml correspondant.
Vous pouvez mettre à niveau une application qui est déjà déployée sur un cluster Service Fabric pour l’une des raisons suivantes :
Un nouveau service est ajouté à l’application. Une définition de service doit être ajoutée aux fichiers service-manifest.xml et application-manifest.xml quand un service est ajouté à l’application. Pour refléter une nouvelle version d’une application, vous devez également modifier la version du type d’application de 1.0.0 à 1.0.1 dans UserApp.Parameters.json :
"applicationTypeVersion": { "value": "1.0.1" }, "serviceName2": { "value": "Voting~VotingData" }, "serviceTypeName2": { "value": "VotingDataType" }
Une nouvelle version d’un service existant est ajoutée à l’application. Des exemples incluent des modifications du code de l’application et des mises à jour de la version et du nom du type d’application. Pour cette mise à niveau, mettez à jour UserApp.Parameters.json comme suit :
"applicationTypeVersion": { "value": "1.0.1" },
Supprimer des ressources d’application
Pour supprimer une application qui a été déployée à l’aide du modèle de ressources de l’application dans Resource Manager :
Utilisez l’applet de commande Get-AzResource pour obtenir l’ID de ressource de l’application :
Get-AzResource -Name <String> | f1
Supprimez les ressources d’application à l’aide de l’applet de commande Remove-AzResource:
Remove-AzResource -ResourceId <String> [-Force] [-ApiVersion <String>]
Questions et réponses courantes
Erreur : « Le nom de l’application doit être un préfixe de nom de service » Réponse : vérifiez que le nom du service est au format suivant : ProfileVetSF~CallTicketDataWebApi.
Étapes suivantes
Obtenir des informations sur le modèle de ressource de l’application :