Dev ops@kelkoo

  • 2,702 views
Uploaded on

Presentation de la solution de déploiement logiciel Kelkoo intégrant Puppet pour autoriser le travail en mode devops.

Presentation de la solution de déploiement logiciel Kelkoo intégrant Puppet pour autoriser le travail en mode devops.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,702
On Slideshare
0
From Embeds
0
Number of Embeds
8

Actions

Shares
Downloads
27
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. DevOps@KelkooAlain Delafosse / Nicolas Capponi / Avril 2012
  • 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 » 380M appels APIs / mois 220 personnes en EuropePic à 1600 req/S dont 90 informaticiens à Grenoble 5000 marchands10M 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 composants10 serveurs10+ DB1 composant TGZ + fichiers clefs valeurs Solution YAHOO Solution maison
  • 6. Conception du projet 6 Idées BesoinsOutillage 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
  • 7. Notre solution: étapes 7CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYERInfrastructure / OS Applications
  • 8. Zoom 1: Puppet 8 COMMUNAUTE +++ + ++ OUTILLAGE EXTENSIONS ++ - ++ SIMPLICITE + - ++
  • 9. CLONER / CONFIGURER 9 CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYER Drivers OS: kickstart Config Linux Réseau Partitions Config Repos SSHRepos YUM Users SNMP Réseau Users DNS SSH Gestion centralisée des configurations systèmes et modification par exécution de classes Puppet Provisionning: industrialiser l’installation et la configuration initiale des serveurs
  • 10. DEVELOPPER / PACKAGER 10 CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYERGénération d’archetypes Génération de deux RPMs par composant Utilisation des dépendances RPMs Types de Composants - Processing COMPOSANT - Webapp - Schema DB DEPLOIEMENT - Plugin monitoring - Web services
  • 11. Zoom 2: Plugin Maven RPM 11 Scripts Répertoires Librairies Binaires POM.XML RPM COMPOSANT Valeurs par défaut Templates Manifest Puppet RPM DEPLOIEMENT
  • 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
  • 13. Zoom 3: Geppetto 13 Monitoring nagiosTomcatIsAlive-2.1.0 webapp cle1=val1 WS platform tomcat-6.2 Tomcat cle2=val2 categories-3.0.0 reviews-1.2.0 Base cpu-1.2.0Categories cle3=val3 Reviews cle4=val4 Monitoring cle5=val5 cle1=valA Serveur 1 cle4=valB Serveur 2 Serveur 3 cle6=valC
  • 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 configurationLister 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
  • 15. Zoom 4: Punch 15Récupération configuration du serveur searchFeeder-2.1.0 searchFeederInterval=100 Installation RPM déploiement searchCleaner-1.5.2 searchCleanerMode=3 Calcul des changements Puppet : désinstaller RPM composants Puppet : installer RPM composants
  • 16. Etapes 16 SVNDEV 2 4 5 3 MVN 1 3 JENKINS SERVEROPS 4 1 2 5 PUNCH GEPPETTO 1
  • 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 18Subject: [vécu] Mise en prod accéléréeDate: Thu, 10 Nov 2011 09:24:34 +0100From: Antoine ----Pour info, nous avons décidé hier matin de renforcer notre capacité pour lagé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 placeSoit moins de 10 heures entre la décision dajouter du hardware et sa réalisationcomplète, cela sans bénéficier daucune 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éploiementS’adapter à une solution PAAS Image OS (Usharesoft) Google App Engine
  • 21. Synthèse 21ETAPES-> CLONAGE OS CONFIG. DEV. PACKAGING APP CONFIG. DEPLOIEMENT OS Kickstarts Classes Artefacts RPMs RPM deARTEFACTS Classes Puppets DNS, RPMs Maven REPOS YUM Déploiement puppet DNS, LDAP, etc LDAP, etc Plugin Maven Cobbler Puppet Maven Puppet PuppetOUTILS maison Puppet Kermit Gepetto Punch YUM Jenkins INFRA INFRA DEV DEV DEV SA SA DEV SAACTEURS SA SA DEV DEV SA OPS OPS OPS OPSSUPPORT COMMUNAUTE PACK/CONF
  • 22. 22MERCI……
  • 23. Bonus 23CHOIX• Utilisation des rôles sur une plateforme complexe• Approfondir évolution DevOps versus SCRUM chez Kelkoo
  • 24. Différents modèles
  • 25. Responsabilités Embedded SA Embedded Embedded Transversal SA Ops contact No integration OPS OPS + SASCRUM SA part of the Ops part of the Both part of SA supporting Dedicated OPS SCRUM SCRUM SCRUM SCRUM contactRelease SA OPS Various Various Ops contact OPSL1 / L2 /L3 L1 OPS L1/L2 OPS L1/L2 OPS+SA L1 OPS L1/L2 OPS L1 OPS/SCRUMsupport L2/L3 SA L3 SCRUM L3 SA+SCRUM L2/L3 SA/SCRUM L3 SCRUM L2/L3 SCRUMChanges SA OPS OPS / SA SA / OPS OPS OPSMonitoring SA Producing SA/SCRUM OPS/SA/SCRUM SA/SCRUM OPS plugins Producing Producing Producing plugins /SCRUM plugins pluginsProblem mgtCapacity mgt
  • 26. Datanav 26