2. Introduction 2
= +
Présentation d’une intégration Zooms techniques
d’outils dans le contexte Kelkoo
Contrat de session @AlainDelafosse @ncapponi Vous ?
3. Kelkoo « Shopping Engine » 3
80M appels APIs / mois 220 personnes en Europe
Pic à 1600 req/S
dont 90 informaticiens à Grenoble
5000 marchands
10M UU / mois 100M offres
avec un turn-over quotidien de 15%
20 000 Produits 13 Pays
300 Catégories par pays
5000 revues
4. DevOps 4
Le mouvement devops casse le mur entre les dev et les ops
Agile
Business Development DevOps Operations
Methodologies
Les 3 piliers du mouvement DEVOPS
Faciliter la
Industrialisation du communication
processus de entre les équipes
développement
Industrialisation
Infrastructure
5. Contexte Kelkoo 5
400 serveurs
70+ DB
200 composants
10 serveurs
10+ DB
1 composant
TGZ + fichiers clefs valeurs
Solution YAHOO
Solution maison
6. Conception du projet 6
Idées Besoins
Outillage du dév. au déploiement Multi -instanciation des composants
BO de configuration Réutiliser outils Open Source
Gén.de composants installables
Automatisation
Déploiements standardisés
Commandes et interfaces simples
Outils Open Source
12. CONFIGURER 12
TEMPLATES, VALEURS ET COMPOSANTS CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYER
+
Associer des clefs et des valeurs mais aussi des composants et des serveurs
ROLES
Un rôle regroupe et abstrait un déploiement de composants et
la configuration associée
14. DEPLOYER 14
Outil en ligne de commande PUNCH
réalisant l’assemblage des
CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYER
RPM DEPLOIEMENT RPM COMPOSANT VALEURS DE CONFIG
LIST Appliquer une configuration
Lister les composants déployés APPLY
RESTORE
Déployer et configurer
avec les données du BO
GET
Récupérer les valeurs de config
17. Déploiement chez Kelkoo
Développe, déploie,
teste dans les
environnements
SCRUM DEV
QA,DEV parfois DEV DEV DEV DEV
PRODTEAM TEAM TEAM TEAM TEAM
Communauté PACK/CONF
(gestion collective de l’outillage)
Développe plugins
de monitoring,
déploie dans tous
les environnements
Déploient dans tous
les environnements
OPS TEAM
Clone et configure INFRA TEAM
tous les serveurs
18. Résultat 18
Subject: [vécu] Mise en prod accélérée
Date: Thu, 10 Nov 2011 09:24:34 +0100
From: Antoine ----
Pour info, nous avons décidé hier matin de renforcer notre capacité pour la
génération des browseBox en ajoutant un serveur.
A la fin de la journée:
* Le serveur était dispo, cloné, DNS à jour, etc...
* Les applications déployées & running
* Le monitoring, alerting et dashboard en place
Soit moins de 10 heures entre la décision d'ajouter du hardware et sa réalisation
complète, cela sans bénéficier d'aucune escalade particulière.
20
18 Feature driven (Frontend)
16
14 Maintenance driven
12
10
8
6
4
2
0
Nombre de releases en production par semaine
19. DevOps@Kelkoo 19
Faciliter la communication
Industrialisation du entre les équipes
processus de développement
Industrialisation
de l’infrastructure
20. Vos Options 20
Construire sa solution Prendre une solution du marché
Utilisation de paquets systèmes DeployIT (Xebia labs)
Nolio (Nolio)
Gérer des images de déploiement
S’adapter à une solution PAAS Image OS (Usharesoft)
Google App Engine
21. Synthèse 21
ETAPES-> CLONAGE OS CONFIG. DEV. PACKAGING APP CONFIG. DEPLOIEMENT
OS
Kickstarts Classes
Artefacts RPMs RPM de
ARTEFACTS Classes Puppets DNS, RPMs
Maven REPOS YUM Déploiement
puppet DNS, LDAP, etc
LDAP, etc
Plugin
Maven
Cobbler Puppet Maven Puppet Puppet
OUTILS maison
Puppet Kermit Gepetto Punch
YUM
Jenkins
INFRA INFRA DEV
DEV DEV
SA SA DEV SA
ACTEURS SA SA
DEV DEV SA OPS
OPS
OPS OPS
SUPPORT COMMUNAUTE PACK/CONF
25. Responsabilités
Embedded SA Embedded Embedded Transversal SA Ops contact No integration
OPS OPS + SA
SCRUM SA part of the Ops part of the Both part of SA supporting Dedicated OPS
SCRUM SCRUM SCRUM SCRUM contact
Release SA OPS Various Various Ops contact OPS
L1 / L2 /L3 L1 OPS L1/L2 OPS L1/L2 OPS+SA L1 OPS L1/L2 OPS L1 OPS/SCRUM
support L2/L3 SA L3 SCRUM L3 SA+SCRUM L2/L3 SA/SCRUM L3 SCRUM L2/L3 SCRUM
Changes SA OPS OPS / SA SA / OPS OPS OPS
Monitoring SA Producing SA/SCRUM OPS/SA/SCRUM SA/SCRUM OPS
plugins Producing Producing Producing plugins /SCRUM
plugins plugins
Problem mgt
Capacity mgt