Docstoc

Automatiser les déploiements Web - Microsoft

Document Sample
Automatiser les déploiements Web - Microsoft Powered By Docstoc
					DES 101 : Automatiser
les déploiements Web
10 février 2011
Pierre-Yves HEMERY           Guillaume LEBORGNE
Directeur du pôle .NET       Architecte .NET / ScrumMaster
MCNEXT                       MCNEXT




                         2
MCNEXT                               Stand D7
Filiale du groupe MOZZAIK, MCNEXT est une société de conseil et services
informatiques dédiée aux technologies MICROSOFT.
Savoir-faire autour de 4 pôles, tous pilotés
par des experts reconnus

100 collaborateurs
Présent à Paris et Genève

Accompagnement global de nos clients :
   Conseil fonctionnel
   Architecture technique
   Accompagnement méthodologique
   Graphisme/ergonomie (Web Agency)
   Réalisation (forfait/régie)
   TMA
   Formation




                                         3
Pourquoi ?




             4
Pourquoi ?
•   Pour pouvoir faire face aux changements
     - Le marketing veut lancer un nouveau service
     - Votre concurrent a modernisé l’ergonomie de son site
     - L’équipe commerciale veut modifier la manière de mettre en avant
        certains produits


•   Pour fiabiliser une étape « délicate »
     - Il manquait un fichier dans le paquet de livraison
     - Le fichier de configuration n’était pas à jour
     - Le responsable habituel des livraisons était absent




                                   5
Pourquoi ?
•   Internet est monde qui évolue rapidement et il faut en
    permanence suivre ces évolutions

•   Pour cela, il faut être capable de mettre à jour son site
    web REGULIEREMENT, RAPIDEMENT et d’une manière
    FIABLE




                               6
Comment ?
•   En automatisant le processus de livraison d’un projet Web

                            Compiler



                 Déployer              Tester




                 Packager              Auditer



                            Valider



                               7
Compiler


           Compiler
                                • Limiter les problèmes liés à     • Compilateurs
                                  l’intégration des mises à jour   • Contrôleur de sources
Déployer              Tester      faites lors du développement       (Team System, SVN…)
                                • Gérer les versions               • Script de build
                                                                     (MsBuild, NAnt, Power Shell)




                                 Enjeu                              Outils
Packager              Auditer



           Valider




                                          8
Tester


           Compiler
                                • Détecter au plus tôt les   • Tests « White Box »
                                  régressions                • Outils de tests unitaires
Déployer              Tester    • Faciliter la maintenance     (Team System, NUnit…)
                                  applicative




                                 Enjeu                        Outils
Packager              Auditer



           Valider




                                          9
Auditer


           Compiler
                                • Améliorer la qualité du code   • Analyse du code (StyleCop,
                                  et des livrables (règles de      Resharper, FxCop…)
Déployer              Tester      codage, anti-patterns,         • Analyse structurelle
                                  documentation,                   (NDepend…)
                                  dépendances…)                  • validator.w3.org
                                • Normes W3C                     • Yslow, Page Speed, IIS SEO
                                • Règles de performance            Toolkit…



                                 Enjeu                            Outils
Packager              Auditer



           Valider




                                         10
Valider


           Compiler
                                • Vérifier que l’application    • Tests « Black Box »
                                  répond aux besoins exprimés   • Tests UI avec les MS
Déployer              Tester    • Vérifier les non-régression     WebTests, Selenium, Watin…
                                                                • Tests de charges




                                 Enjeu                           Outils
Packager              Auditer



           Valider




                                         11
Packager


           Compiler
                                • Optimiser les ressources      • Transformation des
                                • Générer de la documentation     web.config
Déployer              Tester    • Générer les paquets de        • Minifier de css / javascripts /
                                  livraison                       images
                                                                • Web Deploy




                                 Enjeu                           Outils
Packager              Auditer



           Valider




                                         12
Déployer


           Compiler
                                • Mettre à jour le ou les    • XCopy
                                  environnements (staging,   • MsBuild
Déployer              Tester      production…)               • PowerShell
                                                             • Web Deploy




                                 Enjeu                        Outils
Packager              Auditer



           Valider




                                         13
Une chaîne de production
•   N postes de développements avec Visual Studio 2010
•   Un contrôleur de sources Team Foundation Server 2010
•   N serveurs de staging Windows Server 2008 R2
     - Intégration > Recette > … > Pré-production > Production


                                             Contrôleur
                                    Contrôleur
                                                          Build
                                    de source de source

                                                                       lie
                                                                    Pub

                                                                    Pub
                                                                       lie
                                                                                              Package
                                                                                 Package
                                           Publie

          développement
Postes de Postes de développement                                         Serveur(s) de staging
                                                            Serveur de staging                         Serveur de
                                                                                            Serveur de production production




                                                           14
Web Deploy
•   Extension intégrée à IIS 7.x et Visual Studio 2010
     - Pilotable en ligne de commande
     - Disponible via le Web Platform Installer

•   Permet de packager une application
     - Avec son contenu
     - Avec ses dépendances (ACLs, GAC, base de registre…)

•   Permet de déployer une application
     - Sans disposer de droits administrateur
     - A distance via WMSvc (Web Management Service)

•   Permet de synchroniser une application d’un serveur à un
    autre

                                15
Web Publishing Pipeline

                                                                       Web
               Script                    Web
                                                                    Publishing
              MsBuild                   Deploy
                                                                     Pipeline




  Compile           Collecte           Transforme        Package            Publie

                                                          Collecte les
                        Collecte les     Transforme le
    Compile                                              configurations          Déploie
                         binaires         web.config
                                                               IIS


                        Collecte les                     Crée le fichier
                        références                         manisfest



                        Collecte le                      Crée le paquet
                         contenu                          de livraison



                                           16
Web Publishing Pipeline
•   Un processus extensible
     - Ajout de tâches MsBuild dans ProjectName.wpp.targets
     - Et/ou ajout de providers spécifiques

                           Publie
                           Package




                                 17
Web Publishing Pipeline
  Compile     Collecte        Transforme        Package            Publie

                                                 Prépare des
               Collecte les     Transforme le
    Compile                                      assemblies         Déploie
                binaires         web.config
                                                 pour le GAC


               Collecte les     Précompile le     Prépare des
               références           site        clés de registre


                                                 Collecte les
                Collecte le
                                                configurations
                 contenu
                                                      IIS


                                                Crée le fichier
                                                  manisfest



                                                Crée le paquet
                                                 de livraison




                                  18
                            Compiler



                 Déployer              Tester




Démo             Packager



                            Valider
                                       Auditer




Test unitaire avec IIS SEO Toolkit
Test unitaire avec validator.w3.org
Test fonctionnel avec Expect




                            19
                           Compiler



                Déployer              Tester




Démo            Packager



                           Valider
                                      Auditer




Cycle complet d’intégration continue avec
un déploiement automatique




                           20
                            Compiler



                 Déployer              Tester




Démo             Packager



                            Valider
                                       Auditer




Transformer le web.config
Créer un package de déploiement
Importer le package dans IIS
Publier le site depuis Visual Studio



                            21
Et pour aller plus loin




             24
Déployer une base de données
•   Web Deploy gère aussi la création ou la mise à jour de
    bases de données
•   2 scénarios possibles :
     - Mise à jour du schéma
        et/ou des données depuis
        une base de référence
    -   Exécution de scripts SQL




                                   26
Web Farm Framework
•   Disponible via le Microsoft Web Platform Installer
•   Simplifie la gestion d’une ferme de serveurs
     - Définition et mise à jour des plateformes (composants,
        modules…) via Web PI
    -   Déploiement et mise à jour des applications web via Web Deploy
    -   Prise en compte du load-balancing
    -   Suivi des opérations




                                   27
Synthèse
•   L’automatisation du processus de déploiement d’une
    application web permet de fiabiliser et d’accélérer les
    mises à jour d’un site internet

•   Cette automatisation couplée à diverses phases de
    contrôle permet de garantir un bon niveau de qualité

•   Ainsi vous pourrez répéter ces cycles sereinement et vous
    n’aurez plus de frein pour faire vivre votre application web




                               28
Quelques liens
•   http://msdn.microsoft.com/en-
    us/library/bb386521(v=VS.100).aspx
•   http://www.iis.net/download/webdeploy
•   http://expect.codeplex.com




                             29
Q&A



      30
MSDN et TechNet : l’essentiel
des ressources techniques à portée de clic




  Portail administration et        Portail de ressources
  infrastructure pour              technique pour
  informaticiens                   développeurs

       http://technet.com                http://msdn.com

                              31

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:5/18/2013
language:French
pages:29