déploiement dans azure depuis vsts

20
Déploiement dans Azure depuis VSTS Adrien Siffermann @ asiffermann 15/09/2016 - Inspiré de faits réels

Upload: azug-fr

Post on 22-Mar-2017

118 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Déploiement dans Azure depuis VSTS

Déploiement dans Azure depuis VSTS

Adrien Siffermann@asiffermann

15/09/2016 - Inspiré de faits réels

Page 2: Déploiement dans Azure depuis VSTS

Qu’est ce qu’on déploit ?

Page 3: Déploiement dans Azure depuis VSTS

Une application (très) simple

Un projet ASP.NET Core Un projet de base de

données (SSDT)

Page 4: Déploiement dans Azure depuis VSTS

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/

Page 5: Déploiement dans Azure depuis VSTS

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é manuellement

Production« PRO »

-Edge

/

-Val

-Int

-Val

Edge

/

-Pre

/

-Pre

-Pro

Prod

Page 6: Déploiement dans Azure depuis VSTS

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/

Page 7: Déploiement dans Azure depuis VSTS

Découverte du projet VSTS

Page 8: Déploiement dans Azure depuis VSTS

Bon… On déploit ?

Page 9: Déploiement dans Azure depuis VSTS

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/

Page 10: Déploiement dans Azure depuis VSTS

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

Page 11: Déploiement dans Azure depuis VSTS

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

Page 12: Déploiement dans Azure depuis VSTS

Et la base de données ?

Page 13: Déploiement dans Azure depuis VSTS

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

Page 14: Déploiement dans Azure depuis VSTS

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

Page 15: Déploiement dans Azure depuis VSTS

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

Page 16: Déploiement dans Azure depuis VSTS

Azure SQL Database Restore

Récupère la dernière sauvegarde Point in Time Sauvegarde automatique SQL

Azure

Restaure la base de données

Page 17: Déploiement dans Azure depuis VSTS

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

Page 18: Déploiement dans Azure depuis VSTS

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%20Le

arning"&target=VSTS

Page 19: Déploiement dans Azure depuis VSTS

Q&A