Présentation d'une solution Mobile DevOps implémentée à l'aide des solutions Microsoft: Microsoft Azure, Visual Studio Team Services, HockeyApp et Xamarin Test Cloud. Présentée dans le cadre du meetup @While_42 du 21 septembre 2016 à Vente Privée.
3. 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/
4. 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 »
Semantic Versionning 2.0.0 a.k.a.
« Semver »
Majeur : changements incompatibles avec
la version précédente
Mineur : ajout de fonctionnalités rétro
compatibles
Patch : bug fixes rétro compatibles
Statut sémantique
Nombre de changements
GitVersion
7. Xamarin Test Cloud
Tests automatisés d’interface
graphique mobile
Exécutés sur chaque Pull
Request
Choix des devices
8. Back-end
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
9. Front-end
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 »
10. Releases
Déploiement des packages
générés par les builds
Front-end
APK, IPA
HockeyApp, Stores publics…
Back-end
WebDeploy, DACPAC
Azure
11. 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
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