Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GUSS - CRITEO Meetup Scale SQL for the Web

944 views

Published on

Le GUSS vous a offert l'occasion de rencontrer l'équipe de DBA de Criteo qui vous ont parlé de leur quotidien:
L’organisation de l’équipe DBA,
La gestion de l’infrastructure,
Notre implémentation de la réplication SQL,
Le déploiement du code SQL en production (Intégration continue)

Published in: Internet
  • Be the first to comment

GUSS - CRITEO Meetup Scale SQL for the Web

  1. 1. Copyright © 2014 Criteo Scale SQL for the Web Equipe base de données Criteo
  2. 2. La communauté Data & BI Microsoft Webcasts, Conférences, Afterworks http://GUSS.pro Meet-A-DBA @GUSS_FRANCE /GUSS /GUSS.FR #MeetADBA
  3. 3. Copyright © 2016 Criteo Agenda 1. L’organisation de l’équipe DBA 2. La gestion de l’infrastructure 3. Notre implémentation de la réplication SQL 4. Le déploiement du code SQL en production (Intégration continue)
  4. 4. Copyright © 2016 Criteo Organisation Sébastien ROBLIN Senior DBA Klébert HODIN Senior DBA/scrum master Gregory BOGE DBA Paulo ANTUNES DBA Nadir DJADI DBA L’équipe – PRM – Réplication – Déploiement
  5. 5. Copyright © 2016 Criteo Organisation Missions • MCO • Intégration continue • Etudes et architecture • Industrialisation • Plateformes de développement et de pré-production Environnement • SQL Server 2014 • Always-On, Réplication transactionnelle L’équipe – PRM – Réplication – Déploiement
  6. 6. Copyright © 2016 Criteo Organisation Kanban MCO Demandes ponctuelles Scrum OKR Projets L’équipe – PRM – Réplication – Déploiement
  7. 7. Copyright © 2016 Criteo En chiffres 800 bases de données 100 serveurs 6000 clients applicatifs 135K transactions utilisateurs moyennes 160-260K connexions permanentes 26 milliards batch requests / jour 1 mois de traffic du site StackOverFlow https://twitter.com/Nick_Craver/status/585035281776177152 L’équipe – PRM – Réplication – Déploiement
  8. 8. Copyright © 2016 Criteo Réplication Publisher Subscribers Subscribers Subscribers Subscribers Subscribers • 750 abonnements • 7 secondes de latence max. L’équipe – PRM – Réplication – Déploiement
  9. 9. Copyright © 2016 Criteo Platform Resource Manager Etablit la liaison entre les ressources applicatives et les matériels Principes  Stockage des caractéristiques serveurs/applications  Gère les métadonnées des applications  Facilite l’administration par lots  Ouvre la gestion de l’architecture au code L’équipe – PRM – Réplication – Déploiement
  10. 10. Copyright © 2016 Criteo Platform Resource Manager L’équipe – PRM – Réplication – Déploiement Serveurs Ressources (Applications…) Metadata (clefs/valeurs) Plateforme Site B Serveurs Ressources (Applications…) Metadata (clefs/valeurs) Site A Intra site Liens inter sites Liens inter plateforme Intra site
  11. 11. Copyright © 2016 Criteo Platform Resource Manager • Implémentation pour SQL server: Liens serveurs/ressource (Database [XXX]): • Définit un dictionnaire de connexions (15 min) pour les lectures/écritures • Géo-localise une ressource de base de données (règles: plateformes, sites, serveurs) Utilisation des métadonnées: • Définit un mode de répartition de la charge • Indique l’ensemble des paramètres de backup des dbs (fréquence, serveur de fichier, transfert distant, durée de rétention...) par plateforme/site • Stocke tous les paramètres environnementaux (smtp, ..) L’équipe – PRM – Réplication – Déploiement
  12. 12. Copyright © 2016 Criteo Platform Resource Manager L’équipe – PRM – Réplication – Déploiement
  13. 13. Copyright © 2016 Criteo Platform Resource Manager L’équipe – PRM – Réplication – Déploiement Exemple: Définition de la rétention des backups
  14. 14. Copyright © 2016 Criteo Platform Resource Manager L’équipe – PRM – Réplication – Déploiement Implémentation: Code Sql • Affectation d’un nouveau pool de serveurs (Chef) à un service de base de données pour supporter une charge temporaire, ou continue. • Maintenance d’une base de données ou d’un serveur (entrée/sortie commandée par script)
  15. 15. Copyright © 2016 Criteo Platform Resource Manager L’équipe – PRM – Réplication – Déploiement Implémentation: API Http • API: prod_getdatabaselastbackup : obtenir l’emplacement d’un backup pour un autre service (Finance) distant
  16. 16. Copyright © 2016 Criteo Platform Resource Manager L’équipe – PRM – Réplication – Déploiement Implémentation: PowerShell • Module powershell pour tester le cycle de vie d’un serveur
  17. 17. Copyright © 2016 Criteo Platform Resource Manager L’équipe – PRM – Réplication – Déploiement Implémentation: divers • Environnement de pré-production et développement
  18. 18. Copyright © 2016 Criteo • Disposer de bases de données en local sur chaque datacenter • Scale-out des lectures • Solution haute disponibilité au sein des datacenters Pourquoi la réplication ? L’équipe – PRM – Réplication – Déploiement SubscribersPublisher Datacenter
  19. 19. Copyright © 2016 Criteo Notre implémentation de la réplication SQL • Réplication transactionnelle unidirectionnelle • Même schéma de base de données entre éditeur et abonnés • Distributeurs dédiés • Utilisation du mode « Pull » • Utilisation conjointe à AlwaysOn (publisher, distributeur *, abonné) L’équipe – PRM – Réplication – Déploiement
  20. 20. Copyright © 2016 Criteo • 25 publications • 2600 articles publiés (tables, vues, procédures stockées, fonctions) • 1 To de données publiées • 9 bases de distribution • 750 souscriptions En quelques chiffres … L’équipe – PRM – Réplication – Déploiement
  21. 21. Copyright © 2016 Criteo Opérations d’exploitation : • Initialisation de la réplication par backup • Développement d’un framework pour la gestion de la réplication. • Utilisation du versionning pour sauvegarder la réplication • Gestions des opérations via le PRM Contraintes : • Latence réseau • Contention sur les bases de distributions Plus dans le détail L’équipe – PRM – Réplication – Déploiement
  22. 22. Copyright © 2016 Criteo • Alertes par mail en cas d’erreur sur les agents de réplication • Utilisation de Graphite pour la métrologie • Utilisation de Centreon pour le monitoring • Retard de la distribution • Taille des base de données de distribution • Documentation et outils de diagnostic Monitoring de la réplication L’équipe – PRM – Réplication – Déploiement
  23. 23. Copyright © 2016 Criteo Intégration continue Notre environnement • 350 développeurs • 5 DBA • Tout le code SQL est validé par les DBA • 16 073 modifications en 2015 • 2 releases SQL par semaine L’équipe – PRM – Réplication – Déploiement
  24. 24. Copyright © 2016 Criteo 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. L’équipe – PRM – Réplication – Déploiement
  25. 25. Copyright © 2016 Criteo Intégration continue – Comment ? L’équipe – PRM – Réplication – Déploiement GitVisual Studio Gerrit Jenkins Powershell
  26. 26. Copyright © 2016 Criteo Intégration continue – Comment ? L’équipe – PRM – Réplication – Déploiement
  27. 27. Copyright © 2016 Criteo QA bot • Build • Déploiement Steven SQL bot Intégration continue – Comment ? L’équipe – PRM – Réplication – Déploiement
  28. 28. Copyright © 2016 Criteo Intégration continue – Comment ? L’équipe – PRM – Réplication – Déploiement
  29. 29. Copyright © 2016 Criteo Intégration continue – Comment ? L’équipe – PRM – Réplication – Déploiement Validation MOAB
  30. 30. Copyright © 2016 Criteo Intégration continue – Comment ? L’équipe – PRM – Réplication – Déploiement Sandbox • Déploiements • Tests Pré-production • Déploiement Release
  31. 31. Copyright © 2016 Criteo Intégration continue – Challenges Connaissance des données • NULL à NOT NULL Gestion de la réplication • Objets répliqués • Les indexes Gestion du changement • Clean_db L’équipe – PRM – Réplication – Déploiement
  32. 32. Copyright © 2016 Criteo Intégration continue – Challenges Attention au code existant • Gérer les références de projets • Déploiement sélectif Build • Warning ? L’équipe – PRM – Réplication – Déploiement
  33. 33. Copyright © 2016 Criteo Questions ?
  34. 34. Copyright © 2016 Criteo Merci !
  35. 35. Copyright © 2016 Criteo Nous recrutons Contact : prod-dba@criteo.com

×