Intégration continue et livraison continue (création de Real-World Cloud Apps avec Azure)
par Rick Anderson, Tom Dykstra
Télécharger le projet fix it ou télécharger le livre électronique
The Building Real World Cloud Apps with Azure e-book est basé sur une présentation développée par Scott Guthrie. Il explique 13 modèles et pratiques qui peuvent vous aider à développer des applications web pour le cloud. Pour plus d’informations sur le livre électronique, consultez le premier chapitre.
Les deux premiers modèles de processus de développement recommandés étaient Automatiser tout et contrôle de code source, et le troisième modèle de processus les combine. L’intégration continue signifie que chaque fois qu’un développeur vérifie le code dans le référentiel source, une build est automatiquement déclenchée. La livraison continue (CD) effectue cette étape plus loin : après la réussite d’un test unitaire de build et automatisé, vous déployez automatiquement l’application dans un environnement où vous pouvez effectuer des tests plus approfondis.
Le cloud vous permet de réduire le coût de la maintenance d’un environnement de test, car vous payez uniquement pour les ressources de l’environnement tant que vous les utilisez. Votre processus CD peut configurer l’environnement de test lorsque vous en avez besoin, et vous pouvez réduire l’environnement lorsque vous avez terminé le test.
Flux de travail d’intégration continue et de livraison continue
En règle générale, nous vous recommandons d’effectuer une livraison continue à vos environnements de développement et de préproduction. La plupart des équipes, même chez Microsoft, nécessitent une révision manuelle et un processus d’approbation pour le déploiement de production. Pour un déploiement de production, vous pouvez vous assurer qu’il se produit lorsque des personnes clés de l’équipe de développement sont disponibles pour la prise en charge ou pendant des périodes de faible trafic. Mais il n’y a rien pour vous empêcher d’automatiser complètement vos environnements de développement et de test afin que tous les développeurs doivent effectuer des vérifications dans un changement et qu’un environnement soit configuré pour les tests d’acceptation.
Le diagramme suivant d’un livre électronique Microsoft Patterns and Practices sur la livraison continue illustre un flux de travail classique. Cliquez sur l’image pour la voir en taille complète dans son contexte d’origine.
Comment le cloud permet l’intégration continue et le cd rentables
L’automatisation de ces processus dans Azure est simple. Étant donné que vous exécutez tout dans le cloud, vous n’avez pas besoin d’acheter ou de gérer des serveurs pour vos builds ou vos environnements de test. Et vous n’avez pas besoin d’attendre qu’un serveur soit disponible pour effectuer vos tests. Avec chaque build que vous faites, vous pouvez lancer un environnement de test dans Azure à l’aide de votre script d’automatisation, exécuter des tests d’acceptation ou des tests plus approfondis sur celui-ci, puis quand vous avez terminé de le supprimer. Et si vous exécutez uniquement ce serveur pendant 2 heures ou 8 heures ou par jour, le montant d’argent que vous devez payer pour cela est minimal, car vous payez uniquement pour le temps qu’un ordinateur est en cours d’exécution. Par exemple, l’environnement requis pour l’application Fix it coûte essentiellement environ 1 % par heure si vous accédez à un niveau supérieur au niveau gratuit. Au cours d’un mois, si vous n’avez exécuté l’environnement qu’une heure à la fois, votre environnement de test coûte probablement moins cher qu’un latte que vous achetez chez Starbucks.
Azure DevOps Services
Azure DevOps Services fournit un certain nombre de fonctionnalités pour vous aider à développer des applications de la planification au déploiement.
- Il prend en charge le contrôle de code source Git (distribué) et TFVC (centralisé).
- Il offre un service de build élastique, ce qui signifie qu’il crée dynamiquement des serveurs de build lorsqu’ils sont nécessaires et les enlève quand ils sont terminés. Vous pouvez lancer automatiquement une build lorsque quelqu’un vérifie les modifications apportées au code source et que vous n’avez pas besoin d’allouer et de payer pour vos propres serveurs de build qui sont inactifs la plupart du temps. Le service de build est gratuit tant que vous ne dépassez pas un certain nombre de builds. Si vous prévoyez d’effectuer un volume élevé de builds, vous pouvez payer un peu plus pour les serveurs de build réservés.
- Il prend en charge la livraison continue vers Azure.
- Il prend en charge les tests de charge automatisés. Le test de charge est essentiel pour une application cloud, mais il est souvent négligé jusqu’à ce qu’il soit trop tard. Le test de charge simule une utilisation intensive d’une application par des milliers d’utilisateurs, ce qui vous permet de trouver des goulots d’étranglement et d’améliorer le débit avant de libérer l’application en production.
- Il prend en charge la collaboration de salle d’équipe, ce qui facilite la communication et la collaboration en temps réel pour les petites équipes agiles.
- Il prend en charge la gestion agile des projets.
Pour plus d’informations sur les fonctionnalités d’intégration et de livraison continues de Azure DevOps Services, consultez la documentation Azure DevOps.
Si vous recherchez une solution de gestion de projet clé en main, de collaboration d’équipe et de contrôle de code source, consultez Azure DevOps Services. Inscrivez-vous à Azure DevOps Services.
Résumé
Les trois premiers modèles de développement cloud ont été la façon d’implémenter un processus de développement reproductible, fiable et prévisible avec un temps de cycle faible. Dans le chapitre suivant , nous commençons à examiner les modèles architecturaux et de codage.
Ressources
Pour plus d’informations, consultez Déployer une application web dans Azure App Service.
Consultez également les ressources suivantes :
- Génération d’un pipeline de mise en production avec Team Foundation Server 2012. Le livre électronique, les laboratoires pratiques et les exemples de code de Microsoft Patterns and Practices fournit une présentation approfondie de la livraison continue. Couvre l’utilisation de Visual Studio Lab Management et de Visual Studio Release Management.
- Outils et conseils ALM Rangers DevOps. Alm Rangers a introduit l’exemple de solution complémentaire DevOps Workbench et des conseils pratiques en collaboration avec le livre Patterns & Practices Building a Release Pipeline with TFS 2012, comme un excellent moyen de commencer à apprendre les concepts de DevOps & Release Management pour TFS 2012 et de lancer les pneus. Les instructions montrent comment générer une seule fois et déployer sur plusieurs environnements.
- Test de livraison continue avec Visual Studio 2012. Livre électronique de Microsoft Patterns and Practices, explique comment intégrer des tests automatisés à la livraison continue.
- WindowsAzureDeploymentTracker. Code source d’un outil conçu pour capturer une build à partir de TFS (basée sur une étiquette), générez-la, empaquetez-la, autorisez une personne dans le rôle DevOps à configurer des aspects spécifiques de celui-ci et envoyez-la dans Azure. L’outil effectue le suivi du processus de déploiement pour permettre aux opérations de « restaurer » vers une version précédemment déployée. L’outil n’a pas de dépendances externes et peut fonctionner autonome à l’aide des API TFS et du Kit de développement logiciel (SDK) Azure.
- Livraison continue : versions logicielles fiables via l’automatisation de build, de test et de déploiement. Livre de Jez Humble.
- Relâchez-le ! Concevoir et déployer Production-Ready Software. Livre de Michael T. Nygard.