dev ops@kelkoo

Post on 22-Oct-2014

3.246 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

DevOps@Kelkoo

Alain Delafosse / Nicolas Capponi / Avril 2012

Introduction 2

Présentation d’une intégration d’outils dans le contexte Kelkoo

Zooms techniques

= +

Contrat de session @AlainDelafosse @ncapponi Vous ?

Kelkoo « Shopping Engine » 3

220 personnes en Europe

dont 90 informaticiens à Grenoble

80M appels APIs / mois Pic à 1600 req/S

10M UU / mois

20 000 Produits

300 Catégories par pays

5000 revues

100M offres

avec un turn-over quotidien de 15%

5000 marchands

13 Pays

DevOps 4

Business Development Operations Agile

Methodologies DevOps

Faciliter la communication entre les équipes

Industrialisation du processus de

développement Industrialisation

Infrastructure

DEVOPS Les 3 piliers du mouvement

Le mouvement devops casse le mur entre les dev et les ops

Contexte Kelkoo 5

10 serveurs 10+ DB 1 composant

400 serveurs 70+ DB 200 composants

TGZ + fichiers clefs valeurs

Solution YAHOO

Solution maison

Conception du projet

6

Besoins Idées

Outillage du dév. au déploiement BO de configuration

Gén.de composants installables

Multi -instanciation des composants Réutiliser outils Open Source

Automatisation Déploiements standardisés

Commandes et interfaces simples Outils Open Source

Notre solution: étapes

CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYER

7

Infrastructure / OS Applications

Zoom 1: Puppet

COMMUNAUTE +++ + ++

OUTILLAGE EXTENSIONS ++ - ++

SIMPLICITE + - ++

8

CLONER / CONFIGURER 9

CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYER

Provisionning: industrialiser l’installation et la configuration initiale des serveurs

OS: kickstart Config Réseau

Partitions Config Users Repos YUM

Drivers Linux

Gestion centralisée des configurations systèmes et modification par exécution de classes Puppet

Users DNS

Réseau SNMP

Repos SSH

SSH

DEVELOPPER / PACKAGER 10

CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYER

COMPOSANT

DEPLOIEMENT

Types de Composants - Processing - Webapp - Schema DB - Plugin monitoring - Web services

Génération d’archetypes Génération de deux RPMs par composant Utilisation des dépendances RPMs

Zoom 2: Plugin Maven RPM 11

POM.XML

Binaires

Répertoires Scripts

Librairies

Templates

Valeurs par défaut

Manifest Puppet

RPM COMPOSANT

RPM DEPLOIEMENT

CONFIGURER 12

CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYER

TEMPLATES, VALEURS ET COMPOSANTS

ROLES

+

Associer des clefs et des valeurs mais aussi des composants et des serveurs

Un rôle regroupe et abstrait un déploiement de composants et la configuration associée

Zoom 3: Geppetto 13

Serveur 1 Serveur 3 Serveur 2

Base Monitoring

WS platform Tomcat

Monitoring webapp

nagiosTomcatIsAlive-2.1.0 cle1=val1

tomcat-6.2 cle2=val2

Categories Reviews reviews-1.2.0 cle4=val4

categories-3.0.0 cle3=val3

cpu-1.2.0 cle5=val5

cle1=valA cle4=valB cle6=valC

DEPLOYER

Outil en ligne de commande PUNCH

réalisant l’assemblage des

14

CLONER CONFIGURER DEVELOPPER PACKAGER CONFIGURER DEPLOYER

APPLY

RESTORE

LIST

GET

RPM DEPLOIEMENT RPM COMPOSANT VALEURS DE CONFIG

Déployer et configurer avec les données du BO

Récupérer les valeurs de config

Lister les composants déployés

Appliquer une configuration

Zoom 4: Punch 15

Récupération configuration du serveur

Installation RPM déploiement

Calcul des changements

Puppet : désinstaller RPM composants

Puppet : installer RPM composants

searchFeeder-2.1.0 searchFeederInterval=100 searchCleaner-1.5.2 searchCleanerMode=3

Etapes 16

GEPPETTO PUNCH

SERVER

1

1

2

3

4

5

OPS

MVN

JENKINS

2 4

3

5

SVN DEV

1

Déploiement chez Kelkoo

SCRUM

INFRA TEAM

DEV TEAM

DEV TEAM

OPS TEAM

DEV TEAM

DEV TEAM

DEV TEAM

Développe, déploie, teste dans les

environnements QA,DEV parfois

PROD

Développe plugins de monitoring,

déploie dans tous les environnements

Déploient dans tous les environnements

Clone et configure tous les serveurs

Co

mm

un

auté

PAC

K/C

ON

F (ge

stion

colle

ctive de l’o

utillage)

Résultat

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.

18

0

2

4

6

8

10

12

14

16

18

20

Feature driven (Frontend)

Maintenance driven

Nombre de releases en production par semaine

DevOps@Kelkoo 19

Faciliter la communication entre les équipes Industrialisation du

processus de développement

Industrialisation de l’infrastructure

Vos Options

Gérer des images de déploiement Image OS (Usharesoft)

20

Prendre une solution du marché DeployIT (Xebia labs) Nolio (Nolio)

Construire sa solution Utilisation de paquets systèmes

S’adapter à une solution PAAS Google App Engine

Synthèse 21

ETAPES-> CLONAGE OS CONFIG. DEV. PACKAGING APP CONFIG. DEPLOIEMENT

ARTEFACTS

OS Kickstarts Classes puppet DNS, LDAP, etc

Classes Puppets DNS, LDAP, etc

Artefacts Maven

RPMs REPOS YUM

RPM de Déploiement

RPMs

OUTILS Cobbler Puppet

Puppet Kermit

Maven

Plugin Maven maison YUM Jenkins

Puppet Gepetto

Puppet Punch

ACTEURS

INFRA SA DEV OPS

INFRA SA DEV OPS

DEV SA

DEV SA

DEV SA OPS

DEV SA OPS

SUPPORT COMMUNAUTE PACK/CONF

MERCI……

22

Bonus

CHOIX

• Utilisation des rôles sur une plateforme complexe

• Approfondir évolution DevOps versus SCRUM chez Kelkoo

23

Différents modèles

Responsabilités

Embedded SA Embedded OPS

Embedded OPS + SA

Transversal SA Ops contact No integration

SCRUM SA part of the SCRUM

Ops part of the SCRUM

Both part of SCRUM

SA supporting SCRUM

Dedicated OPS contact

Release SA OPS Various Various Ops contact OPS

L1 / L2 /L3 support

L1 OPS L2/L3 SA

L1/L2 OPS L3 SCRUM

L1/L2 OPS+SA L3 SA+SCRUM

L1 OPS L2/L3 SA/SCRUM

L1/L2 OPS L3 SCRUM

L1 OPS/SCRUM L2/L3 SCRUM

Changes SA OPS OPS / SA SA / OPS OPS OPS

Monitoring SA Producing plugins

SA/SCRUM Producing

plugins

OPS/SA/SCRUM Producing

plugins

SA/SCRUM Producing plugins

OPS /SCRUM

Problem mgt

Capacity mgt

Datanav 26

top related