SlideShare uma empresa Scribd logo
1 de 20
Déploiement dans Azure depuis VSTS
Adrien Siffermann
@asiffermann
15/09/2016 - Inspiré de faits réels
Qu’est ce qu’on déploit ?
Une application (très) simple
 Un projet ASP.NET Core
 Un projet de base de
données (SSDT)
GitFlow
 Isoler, suivre et valider les développements
 Deux branches principales
 Durée de vie infinie
 master : production-ready
 develop : intégration
 Des branches de support
 Durée de vie limitée
 feature : développement en parallèle
 release : préparation des livraisons
 hotfix : corrections en production
http://nvie.com/posts/a-successful-git-branching-model/
Environnements
 develop
 0.1.0-alpha.4
 Version de développement
Integration
« INT »
 release/* ou hotfix/*
 1.0.0-beta.0
 Version à tester
Validation
« VAL »
 master
 1.0.0+0
 Données de production
Preproduction
« PRE »
 Déploiement initié manuellementProduction
« PRO »
-Edge
/
-Val
-Int
-Val
Edge
/
-Pre
/
-Pre
-Pro
Prod
Builds
 Toutes strictement identiques
 Utilisation des meta-tasks VSTS
 Version, Build, Package
 Artifacts :
 Un package WebDeploy
 Un ou plusieurs package DACPAC
http://geeklearning.io/the-9-steps-to-deploy-your-aspnet-core-10-application-to-azure-from-vsts/
Découverte du projet VSTS
Bon… On déploit ?
Rien à faire ?
 Grande période d’indisponibilité
 Démarrage à froid
 Première requête très lente
 Fichiers verrouillés
 Echec du déploiement
 Pas de rollback possible
http://geeklearning.io/a-successful-azure-web-app-deployment-process/
Blue-Green deployment
http://martinfowler.com/bliki/BlueGreenDeployment.html
 Deux environnements de production
identiques
 Un actif, servant tout le traffic
 Un inactif, sur lequel on déploie la nouvelle version
 On intervertit le routage
 L’actif devient inactif, et inversement
 Azure Web Apps Deployments Slots
 Un slot dédié au déploiement par environnement
Stop - Deploy - Start - Swap
 On arrête le slot dédié
 Fichiers verrouillés
 Déploiement sur le slot dédié
 On démarre le slot dédié
 Démarrage à froid
 On intervertit le routage entre
les deux slots
Et la base de données ?
Database Snapshots
 Générer un état intermédiaire de déploiement
 Nouvelle colonne non-nullable
 Changement de type d’une clé primaire
 Scripts de provisionning
 Sur un environnement avancé, on peut avoir à déployer plusieurs DACPAC
 Les snapshots
 Le résultat de la compilation du projet
 Ne pas déployer une version antérieure
 Déployer les versions dans l’ordre
Azure SQL Incremental Deployment
 Configuration identique
 Mini match
 Récupère la version déployée
de la base de données ciblée
 Déploie uniquement les
DACPAC nécessaires, dans
l’ordre de leur version
 Enregistre la nouvelle version
de la base de données
Préproduction
 Restauration des données de production
 Récupération d’une sauvegarde récente
 Ajout de l’utilisateur SQL
 Utilisateur dédié à cet environnement
 Utilisé dans la ConnectionString
 Exécuter un script SQL sur la base restaurée
Azure SQL Database Restore
 Récupère la dernière sauvegarde
Point in Time
 Sauvegarde automatique SQL Azure
 Restaure la base de données
Azure SQL Execute Query
 Exécute un script SQL sur une
base de données SQL Azure
 Modes d’exécution :
 Fichier
 Inline
 Script prédéfini
 Variables SQLCMD
 WorkingDirectory
A vos déploiements !
 Gratuites, Open Source, et maintenues !
 Plus de tâches à venir : AzCopy, …
 Visual Studio MarketPlace
 https://marketplace.visualstudio.com/items?itemName=geeklearningio.gl-vsts-tasks-
azure
 GitHub
 https://github.com/geeklearningio/gl-vsts-tasks-azure
 Blog
 http://geeklearning.io
 Toutes nos tâches de build & release VSTS
 https://marketplace.visualstudio.com/search?term=publisher%3A"Geek%20Learning"&tar
get=VSTS
Q&A
Merci !
Adrien Siffermann
adrien@siffermann.me - @asiffermann - http://geeklearning.io

Mais conteúdo relacionado

Mais procurados

Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOpsJeoffrey Bauvin
 
De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013Stephane Manciot
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuAhmed Archive
 
03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA Cellenza
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE
 
SUSE OpenStack Cloud 7
SUSE OpenStack Cloud 7SUSE OpenStack Cloud 7
SUSE OpenStack Cloud 7SUSE
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...TelecomValley
 
SUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
SUSE Expert Days Paris 2018 – Sécurité et Gestion des SystèmesSUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
SUSE Expert Days Paris 2018 – Sécurité et Gestion des SystèmesSUSE
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec DockerLuis Lopez
 
SUSE Expert Days Paris 2018 - SUSE Openstack Cloud
SUSE Expert Days Paris 2018 - SUSE Openstack CloudSUSE Expert Days Paris 2018 - SUSE Openstack Cloud
SUSE Expert Days Paris 2018 - SUSE Openstack CloudSUSE
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Cédric Leblond
 
Soirée du Test Logiciel - Présentation du Lab de test Orange - V. BARON, Soge...
Soirée du Test Logiciel - Présentation du Lab de test Orange - V. BARON, Soge...Soirée du Test Logiciel - Présentation du Lab de test Orange - V. BARON, Soge...
Soirée du Test Logiciel - Présentation du Lab de test Orange - V. BARON, Soge...TelecomValley
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?Membré Guillaume
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation ConteneurisationTADx
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC Cellenza
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Fabien Arcellier
 

Mais procurados (19)

Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOps
 
De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
 
03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
SUSE OpenStack Cloud 7
SUSE OpenStack Cloud 7SUSE OpenStack Cloud 7
SUSE OpenStack Cloud 7
 
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
Soirée du Test Logiciel - Mise en place d’une plateforme de test automatisé a...
 
Démo puppet et état du projet
Démo puppet et état du projetDémo puppet et état du projet
Démo puppet et état du projet
 
SUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
SUSE Expert Days Paris 2018 – Sécurité et Gestion des SystèmesSUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
SUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
 
SUSE Expert Days Paris 2018 - SUSE Openstack Cloud
SUSE Expert Days Paris 2018 - SUSE Openstack CloudSUSE Expert Days Paris 2018 - SUSE Openstack Cloud
SUSE Expert Days Paris 2018 - SUSE Openstack Cloud
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
Soirée du Test Logiciel - Présentation du Lab de test Orange - V. BARON, Soge...
Soirée du Test Logiciel - Présentation du Lab de test Orange - V. BARON, Soge...Soirée du Test Logiciel - Présentation du Lab de test Orange - V. BARON, Soge...
Soirée du Test Logiciel - Présentation du Lab de test Orange - V. BARON, Soge...
 
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation Conteneurisation
 
02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC 02 - [ASP.NET Core] ASP.NET Core MVC
02 - [ASP.NET Core] ASP.NET Core MVC
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 

Destaque

Wilfried woivré intégration continue
Wilfried woivré   intégration continueWilfried woivré   intégration continue
Wilfried woivré intégration continueAymeric Weinbach
 
Azure camp 26 septembre tips and tools
Azure camp 26 septembre tips and toolsAzure camp 26 septembre tips and tools
Azure camp 26 septembre tips and toolsAymeric Weinbach
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery DistilledMatt Callanan
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration ContinueFrédéric Sagez
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryDamien Goldenberg
 
Il était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticIl était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticJoris Calabrese
 
Intégration continue
Intégration continueIntégration continue
Intégration continueKlee Group
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryMike McGarr
 
Devoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDevoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDavid Caramelo
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryJez Humble
 
Principes de L'intégration Continue
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration ContinueXavier Warzee
 
Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'hortis
 
Introduction à la démarche Devops
Introduction à la démarche DevopsIntroduction à la démarche Devops
Introduction à la démarche DevopsRomain Chalumeau
 
DevOps Day - Continuous Delivery
DevOps Day - Continuous DeliveryDevOps Day - Continuous Delivery
DevOps Day - Continuous DeliveryCellenza
 
Devoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDevoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDiego Lemos
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Fabian Piau
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryZenika
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielleDavid Buros
 

Destaque (20)

Wilfried woivré intégration continue
Wilfried woivré   intégration continueWilfried woivré   intégration continue
Wilfried woivré intégration continue
 
Azure camp 26 septembre tips and tools
Azure camp 26 septembre tips and toolsAzure camp 26 septembre tips and tools
Azure camp 26 septembre tips and tools
 
Continuous Delivery Distilled
Continuous Delivery DistilledContinuous Delivery Distilled
Continuous Delivery Distilled
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous Delivery
 
Il était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez MeeticIl était une fois le Continuous Delivery chez Meetic
Il était une fois le Continuous Delivery chez Meetic
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Devoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDevoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous delivery
 
DevOps
DevOpsDevOps
DevOps
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Principes de L'intégration Continue
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration Continue
 
Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'Mardi Gras 'Integration Continue'
Mardi Gras 'Integration Continue'
 
Introduction à la démarche Devops
Introduction à la démarche DevopsIntroduction à la démarche Devops
Introduction à la démarche Devops
 
DevOps Day - Continuous Delivery
DevOps Day - Continuous DeliveryDevOps Day - Continuous Delivery
DevOps Day - Continuous Delivery
 
Devoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDevoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous Delivery
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
 

Semelhante a Déploiement dans Azure depuis Visual Studio Team Services

Esupdays 19 : Packaging Esup Cas
Esupdays 19 : Packaging Esup Cas Esupdays 19 : Packaging Esup Cas
Esupdays 19 : Packaging Esup Cas Ludovic A
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Julien Dubois
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsAZUG FR
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASGuillaume Sauthier
 
Sql saturday 323 paris 2014 azure migration iaas et paas
Sql saturday 323 paris 2014   azure migration iaas et paasSql saturday 323 paris 2014   azure migration iaas et paas
Sql saturday 323 paris 2014 azure migration iaas et paasChristophe Laporte
 
Nouvelles fonctionnalités MS SQL Server 2012 - Mise à jour MS SQL Server 200x...
Nouvelles fonctionnalités MS SQL Server 2012 - Mise à jour MS SQL Server 200x...Nouvelles fonctionnalités MS SQL Server 2012 - Mise à jour MS SQL Server 200x...
Nouvelles fonctionnalités MS SQL Server 2012 - Mise à jour MS SQL Server 200x...Microsoft Technet France
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...PimpMySharePoint
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureSQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureGUSS
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...vlabatut
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...vlabatut
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasMicrosoft
 

Semelhante a Déploiement dans Azure depuis Visual Studio Team Services (20)

Esupdays 19 : Packaging Esup Cas
Esupdays 19 : Packaging Esup Cas Esupdays 19 : Packaging Esup Cas
Esupdays 19 : Packaging Esup Cas
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 
Starter Kits
Starter KitsStarter Kits
Starter Kits
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnAS
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
Sql saturday 323 paris 2014 azure migration iaas et paas
Sql saturday 323 paris 2014   azure migration iaas et paasSql saturday 323 paris 2014   azure migration iaas et paas
Sql saturday 323 paris 2014 azure migration iaas et paas
 
Nouvelles fonctionnalités MS SQL Server 2012 - Mise à jour MS SQL Server 200x...
Nouvelles fonctionnalités MS SQL Server 2012 - Mise à jour MS SQL Server 200x...Nouvelles fonctionnalités MS SQL Server 2012 - Mise à jour MS SQL Server 200x...
Nouvelles fonctionnalités MS SQL Server 2012 - Mise à jour MS SQL Server 200x...
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureSQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
Techdays 2011 : Développez en Java avec la plateforme Team Foundation Server ...
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
Techdays 2012 : Mise en place d'une démarche ALM avec Visual Studio pour Wind...
 
Présentation1
Présentation1Présentation1
Présentation1
 
Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de Jonas
 

Déploiement dans Azure depuis Visual Studio Team Services

  • 1. Déploiement dans Azure depuis VSTS Adrien Siffermann @asiffermann 15/09/2016 - Inspiré de faits réels
  • 2. Qu’est ce qu’on déploit ?
  • 3. Une application (très) simple  Un projet ASP.NET Core  Un projet de base de données (SSDT)
  • 4. GitFlow  Isoler, suivre et valider les développements  Deux branches principales  Durée de vie infinie  master : production-ready  develop : intégration  Des branches de support  Durée de vie limitée  feature : développement en parallèle  release : préparation des livraisons  hotfix : corrections en production http://nvie.com/posts/a-successful-git-branching-model/
  • 5. Environnements  develop  0.1.0-alpha.4  Version de développement Integration « INT »  release/* ou hotfix/*  1.0.0-beta.0  Version à tester Validation « VAL »  master  1.0.0+0  Données de production Preproduction « PRE »  Déploiement initié manuellementProduction « PRO » -Edge / -Val -Int -Val Edge / -Pre / -Pre -Pro Prod
  • 6. Builds  Toutes strictement identiques  Utilisation des meta-tasks VSTS  Version, Build, Package  Artifacts :  Un package WebDeploy  Un ou plusieurs package DACPAC http://geeklearning.io/the-9-steps-to-deploy-your-aspnet-core-10-application-to-azure-from-vsts/
  • 9. Rien à faire ?  Grande période d’indisponibilité  Démarrage à froid  Première requête très lente  Fichiers verrouillés  Echec du déploiement  Pas de rollback possible http://geeklearning.io/a-successful-azure-web-app-deployment-process/
  • 10. Blue-Green deployment http://martinfowler.com/bliki/BlueGreenDeployment.html  Deux environnements de production identiques  Un actif, servant tout le traffic  Un inactif, sur lequel on déploie la nouvelle version  On intervertit le routage  L’actif devient inactif, et inversement  Azure Web Apps Deployments Slots  Un slot dédié au déploiement par environnement
  • 11. Stop - Deploy - Start - Swap  On arrête le slot dédié  Fichiers verrouillés  Déploiement sur le slot dédié  On démarre le slot dédié  Démarrage à froid  On intervertit le routage entre les deux slots
  • 12. Et la base de données ?
  • 13. Database Snapshots  Générer un état intermédiaire de déploiement  Nouvelle colonne non-nullable  Changement de type d’une clé primaire  Scripts de provisionning  Sur un environnement avancé, on peut avoir à déployer plusieurs DACPAC  Les snapshots  Le résultat de la compilation du projet  Ne pas déployer une version antérieure  Déployer les versions dans l’ordre
  • 14. Azure SQL Incremental Deployment  Configuration identique  Mini match  Récupère la version déployée de la base de données ciblée  Déploie uniquement les DACPAC nécessaires, dans l’ordre de leur version  Enregistre la nouvelle version de la base de données
  • 15. Préproduction  Restauration des données de production  Récupération d’une sauvegarde récente  Ajout de l’utilisateur SQL  Utilisateur dédié à cet environnement  Utilisé dans la ConnectionString  Exécuter un script SQL sur la base restaurée
  • 16. Azure SQL Database Restore  Récupère la dernière sauvegarde Point in Time  Sauvegarde automatique SQL Azure  Restaure la base de données
  • 17. Azure SQL Execute Query  Exécute un script SQL sur une base de données SQL Azure  Modes d’exécution :  Fichier  Inline  Script prédéfini  Variables SQLCMD  WorkingDirectory
  • 18. A vos déploiements !  Gratuites, Open Source, et maintenues !  Plus de tâches à venir : AzCopy, …  Visual Studio MarketPlace  https://marketplace.visualstudio.com/items?itemName=geeklearningio.gl-vsts-tasks- azure  GitHub  https://github.com/geeklearningio/gl-vsts-tasks-azure  Blog  http://geeklearning.io  Toutes nos tâches de build & release VSTS  https://marketplace.visualstudio.com/search?term=publisher%3A"Geek%20Learning"&tar get=VSTS
  • 19. Q&A
  • 20. Merci ! Adrien Siffermann adrien@siffermann.me - @asiffermann - http://geeklearning.io

Notas do Editor

  1. Gestion fiable du cycle de vie des applications Corrections à chaud, tout en préservant le cycle de développement Limite les collisions entre développeurs lors des itérations Conserve une agilité dans les développements