Présentation de l’outil de déploiement Web (Web Deploy)

par Harsh Mittal

Qu’est-ce que l’outil de déploiement Web (Web Deploy) ?

Le Web Deploy est un outil extensible de serveur client pour synchroniser le contenu et la configuration avec IIS. Le Web Deploy est principalement utilisé dans deux scénarios :

  1. Les développeurs l’utilisent pour synchroniser (par exemple, « publier ») une application web compilée (ASP .Net, PHP, etc.) à partir d’outils de développement (Visual Studio, WebMatrix, etc.) vers IIS
  2. Les professionnels de l’informatique l’utilisent pour migrer des sites web et des applications à partir d’un système d’exploitation exécutant une version antérieure d’IIS comme IIS6 vers un système d’exploitation exécutant une version plus récente d’IIS, comme IIS 7.5.

Diagram that shows the path from Source to Destination. Between those points are Websites, Databases, and Configuration.

Comment Web Deploy est-il comparé à FTP ?

Le Web Deploy est souvent comparé aux technologies telles que FTP, XCOPY ou RoboCopy. Bien que ces technologies soient utiles, Web Deploy offre plusieurs avantages.

Voici une comparaison de Web Deploy sur FTP :

  1. Le Web Deploy est plus rapide que FTP. Web Deploy n’émet pas de commande différente pour chaque opération. Au lieu de cela, elle effectue une comparaison au début de la synchronisation et transfère uniquement les modifications.
  2. Web Deploy est sécurisé. Web Deploy prend en charge le transfert via HTTPS. Notez que les variantes de FTP telles que SFTP et FTPS sont également sécurisées.
  3. Web Deploy peut définir des descripteurs de sécurité (ACL) sur les fichiers et répertoires de destination. Par exemple, vous pouvez utiliser Web Deploy pour accorder à un utilisateur Windows un accès spécifique au dossier « Téléchargements » de votre application pendant le déploiement.
  4. Web Deploy peut publier des bases de données. Web Deploy prend en charge les bases de données SQL Server, MySQL Server, Sqlite et SQL Server Compact, et applique le script résultant pendant la synchronisation. Cela peut être très pratique si votre application a besoin d’une base de données pour fonctionner.
  5. Web Deploy peut appliquer des transformations pendant le déploiement. Vous pouvez utiliser Web Deploy pour modifier une chaîne de connexion ou un paramètre d’application pendant une synchronisation. Web Deploy prend en charge un large éventail de transformations, notamment la transformation des paramètres IIS.
  6. Web Deploy s’intègre à Visual Studio 2010 et WebMatrix.
  7. Web Deploy est extensible. Web Deploy a un modèle d’extensibilité riche et accessible publiquement qui vous permet de créer de nouveaux scénarios.

Comment cela fonctionne-t-il ?

Diagram that shows the path from Source to Destination for Admin and another path for Admin and Non Admin.

La plupart des opérations Web Deploy sont modélisées autour de l’opération de synchronisation entre une source et une destination. L’opération de synchronisation est orchestrée par l’infrastructure Web Deploy à l’aide d’un ou plusieurs fournisseurs de déploiement web, comme décrit ci-dessous.

Infrastructure

Web Deploy se compose d’une infrastructure qui gère l’état de connexion et orchestre la synchronisation entre la source et la destination. Par exemple, l’infrastructure est chargée d’ignorer la synchronisation de certains types de contenu, d’exécuter des règles et de transformer des fichiers.

L’infrastructure est accessible via une API publique, ainsi que via un exécutable de ligne de commande, msdeploy.exe.

Fournisseurs

Web Deploy peut synchroniser n’importe quel type de données entre deux emplacements via l’utilisation de ses fournisseurs intégrés qui se connectent à l’infrastructure. Les fournisseurs savent comment synchroniser un type particulier de données entre deux sources ou récupérer des informations utiles sur la source de données.

Par exemple, Web Deploy dispose d’un fournisseur qui fonctionne avec des bases de données SQL (dbFullSql) qui peuvent synchroniser une base de données SQL Server entière sur un autre serveur. D’autres fournisseurs intégrés synchronisent les bases de données MySQL (dbMySql), la configuration IIS 7 (appHostConfig), les assemblys GAC (gacAssembly) ou les objets COM (comObject32/comObject64). Une liste plus complète est disponible sur TechNet.

Le modèle de fournisseur est extensible et permet aux développeurs d’écrire leurs propres fournisseurs pour Web Deploy s’ils doivent synchroniser des données personnalisées.

En coulisses

Lorsqu’une source lance une action via Web Deploy, l’infrastructure Web Deploy établit une connexion avec la destination. Web Deploy prend en charge deux points de terminaison de connexion, et celui que vous utilisez dépend de plusieurs facteurs :

Diagram that shows a decision tree for an I I S 7 destination.

  • Si la destination est Windows Server 2003 exécutant IIS6, vous pouvez vous connecter à son service d’agent de déploiement web (également appelé point de terminaison de l’agent distant). Le service d'agent à distance assure la sécurité de cette connexion et n'est accessible qu'aux utilisateurs administrateurs.
  • Si la destination est Windows Server 2008 exécutant IIS7 ou Windows Server 2008 R2 exécutant IIS7.5 ET que vous vous connectez avec des informations d’identification non-administrateur, vous devez vous connecter au point de terminaison du service de gestion web. Web Deploy installe un gestionnaire dans le service de gestion web, ce qui permet aux non-administrateurs de déployer après l’authentification et l’autorisation avec le service de gestion web.
  • Si la destination est Windows Server 2008 exécutant IIS7 ou Windows Server 2008 R2 exécutant IIS7.5 ET que vous vous connectez avec des informations d’identification d’administrateur, vous pouvez vous connecter à l’un des points de terminaison.

Pour en savoir plus

Consultez nos didacticiels pas à pas sur iis.net et notre documentation technet.