Intégration Continue et SQL Server @Criteo Gregory BOGE | Klébert HODIN Senior Database Administrator @kankurusql | @kleberthodin
Qui sommes-nous ? Klébert HODIN @kleberthodin Gregory BOGE @kankurusql
Agenda SQL Server @Criteo L’intégration continue : Ce que nous avons mis en place Démo Déploiement continu ? Q&A
SQL Server @Criteo
TARGET THE RIGHT USER AT THE RIGHT TIME WITH THE RIGHT MESSAGE
Notre équipe 9 DBAs - 2 pôles MCE : Mission Critical Engineering DPE : Data Platform Engineering
2 déploiements par semaine +4340 lignes de code Développement SQL R&D Criteo Equipe DBA Production 2 déploiements par semaine +4340 lignes de code
SQL Server en production Notre environnement SQL Server en production 2150 bases de données 280 serveurs 560 000 connexions permanentes 700 000 requêtes batch/s
Notre architecture World Wide 7 publishers 32 republishers Sunnyvale New York Hong Kong Paris Amsterdam Tokyo Shanghai World Wide 7 publishers 32 republishers 139 subscribers 16 mirroring failovers
L’integration continue
https://fr.wikipedia.org/wiki/Int%C3%A9gration_continue Qu’est-ce que c’est ? Intégration continue « L'intégration continue est un ensemble de pratiques utilisées en génie logiciel consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l'application développée. » https://fr.wikipedia.org/wiki/Int%C3%A9gration_continue
Qu’est-ce que c’est ? Livraison et déploiement continu
Comment ? Migrations-based
Comment ? State-based
Ce que nous avons mis en place
Un peu d’histoire
Un peu d’histoire Migration-based Développeur Production DBA 2011
Un peu d’histoire Introducing state-based MIGRATION DE L’EXISTANT FACILITE DE DEVELOPPEMENT TESTS EN LOCAL MEILLEURE COHERENCE EN PRODUCTION Introducing state-based Développeur Production DBA DBA 2012-2013
Un peu d’histoire Les débuts de l’intégration continue ENVIRONNEMENT DE DEVELOPPEMENT BUILD ET INTEGRATION AUTOMATIQUE TESTS END TO END 1 RELEASE PAR SEMAINE Les débuts de l’intégration continue Développeur MOAB Sandboxes DBA Production DBA 2014
Un peu d’histoire L’intégration continue à l’échelle TESTS UNITAIRES ANALYSE STATIQUE DE CODE DEPLOIEMENT AUTOMATIQUE 2 RELEASES PAR SEMAINE L’intégration continue à l’échelle Sandboxes Développeur MOAB Preproduction DBA Production DBA 2015-2016
Un peu d’histoire Le système actuel Sandboxes Développeur MOAB Preproduction DBA Production DBA 2017
Démo !
Le déploiement
La préparation Freeze de release Communication Attente de feedback
Le déploiement Construction des scripts Vérification de la sortie Déploiement en production
Après le déploiement Marquer la version Nettoyer les branches
Vers un déploiement continu ?
Les données Peut-on vraiment être agnostique ? Changement de structure de table Migration de données Process séparé pour les données
Des contraintes extérieures Intégration avec SSDT Réplication Agent jobs Active directory logins Dépendance avec le code
Suppression d’objets Une problématique à part entière Code / Données Réplication Rollback
Les problèmes connus SSDT n’est pas infaillible Build et gestion des dépendances Options de déploiement non gérées Développeurs sous linux et mac
Roadmap Et après ? Amélioration de l’existant Vers du continuous delivery Automatisation des suppression d’objets Bot pour tester les changements de données
Conclusion Chronophage au démarrage Quelques contraintes Revue de code Buids, tests unitaires, analyse statique de code Intégré au système de l’entreprise Releases plus sereines Sandboxes MOAB Preproduction DBA Production DBA
DES QUEstions ?
Evaluez les sessions… …et tentez de gagner une Surface Pro 4 http://bit.ly/MSCSevalJ2