#GlobalAzure #ViseoSpirit
Microsoft Azure#GlobalAzure #ViseoSpirit
GAB 2015 LYON ORAGANIZER
LOCAL SPONSORS WORLDWIDE SPONSORS
…
#GlobalAzure #ViseoSpirit
Microsoft Azure#GlobalAzure #ViseoSpirit
BIO – Vincent THAVONEKHAM
3
Speaker
Practice
Manager
(VISEO)
Coach,
Trainer
Consultant
www.thavo.com
@vThavo
2013: Microsoft vTSP Azure
2014: Microsoft p-Seller Azure
2015: Microsoft p-Seller Azure
2015: Microsoft p-Seller ALM TFS
ITIL v3
PRINCE2
ScrumMaster
Microsoft Azure#GlobalAzure #ViseoSpirit
BIO - Cédric DERUE
4
Speaker
PhD
Senior
Consultant
Trainer
Published
Author
Zend
Evangelist
Microsoft Azure#GlobalAzure #ViseoSpirit
• Qui connait déjà le DevOps?
• Qui le pratique (ou pense le faire) ?
QUESTION AUDIENCE
Microsoft Azure#GlobalAzure #ViseoSpirit
• Partenariat stratégique entre
Microsoft et Zend
http://blog.zend.com/2015/04/15/zend-and-microsoft-announce-strategic-partnership-for-microsoft-
azure/#.VS59oJTF_Mc (http://bit.ly/1E2fJ8E)
• Un nouveau livre sur le DevOps ;-)
…
POURQUOI CETTE SESSION ?
Microsoft Azure#GlobalAzure #ViseoSpirit
• Enjeux du DevOps
• Etude de cas – Startup
SOMMAIRE
Microsoft Azure#GlobalAzure #ViseoSpirit#GlobalAzure #ViseoSpirit
ENJEUX DU DEVOPS
Pourquoi réaliser sa transition
vers le DevOps ?
Microsoft Azure#GlobalAzure #ViseoSpirit
• « Entre le moment où on veut livrer
et la livraison, il s’écoule 1 mois! »
• « Mes Dév font la livraison en Prod,
car la Prod ne sait pas le faire… »
• « L’Exploitation trouve que mes Dév
font n’importe quoi en Prod »
• Etc…
Problématique adressée par le DevOps
Directeur
des Etudes
… pas content !
Microsoft Azure#GlobalAzure #ViseoSpirit
10
Microsoft Azure#GlobalAzure #ViseoSpirit
Cycle de vie d’une application
A
B
C
C’
G
D
E
F
« Wall of confusion »
A. Responsables fonctionnels
B. Chef de Projets
C. Développeurs (C:Dév et C’:livraison)
D. L’Equipe de Recette
E. L’Exploitation
F. Le Support Technique
G. La TMA (Tierce Maintenance Applicative)
ENJEUX DU DEVOPS:
- MINIMISER CE MUR
- FACILITER LA COMMUNICATION ENTRE TOUS LES ACTEURS
- Faire EMERGER l’objectif COMMUN final !
Microsoft Azure#GlobalAzure #ViseoSpirit
• Transition vers le DevOps,
• Travailler sur 3 axes
« People-Process-Tools »
– P: Communication !
– P: Rôles et responsabilités claires
– T: Automatiser!
Facile le DevOps ? Comment faire ?
12
Microsoft Azure#GlobalAzure #ViseoSpirit
Comment travailler sur les 3 axes
13
TOOL TOOL
Microsoft Azure#GlobalAzure #ViseoSpirit
• « Mais c’est simple, on communique
déjà tous les jours ! »
• « Facile à dire, mais comment faire ? »
• « Votre truc là, ça ne marche que sur
des petits projets! »
• Etc…
ZOOM sur la partie communication
14
Directeur
des Etudes
Microsoft Azure#GlobalAzure #ViseoSpirit
• Des frameworks & patterns existent
– Spécifications réellement partagées par tous les acteurs
– Approche YAGNI
– Etc…
ZOOM sur la partie communication
15
Microsoft Azure#GlobalAzure #ViseoSpirit
• Traverser plus rapidement les couches
ZOOM sur les Rôles et responsabilités
16
Microsoft Azure#GlobalAzure #ViseoSpirit
• Etude de cas!
ZOOM sur l’outillage…
17
#GlobalAzure #ViseoSpirit
Microsoft Azure#GlobalAzure #ViseoSpirit
• EventStrike est une startup (fictive) du web
spécialisée dans l'événementiel
• EventStrike développe une plateforme de type
"web social" pour la recherche et
l'organisation d'évènements
Il était une fois...
19
Microsoft Azure#GlobalAzure #ViseoSpirit
• Créer rapidement de la valeur
• Publication d'API scalables et robustes
EventStrike a choisi les micro-services en PHP
combinés avec une approche DevOps
Stratégie
20
Microsoft Azure#GlobalAzure #ViseoSpirit
Une trajectoire avec un objectif double :
• Une symbiose entre Dev et Ops
• Une usine logicielle pour le déploiement
continu d'applications PHP
Cap sur DevOps
21
Microsoft Azure#GlobalAzure #ViseoSpirit
22
Microsoft Azure#GlobalAzure #ViseoSpirit
MONTER UNE ARCHITECTURE
HAUTEMENT DISPONIBLE
« Infrastructure as a Code»
Microsoft Azure#GlobalAzure #ViseoSpirit
#cloud-config
write_files:
- content: |
#!/bin/bash -ex
## Script parameters
zendadmin_ui_pass='p2ssw0rd1'
zenddev_ui_pass='p1ssw0rd2'
zend_order_number='BZ-01503-14'
zend_admin_email='cedric.derue@gmail.com'
zend_license_key='S3TE7G10801O31D540435CC52C940D4D'
zend_self_name=`hostname`
zend_self_addr=`ip a s dev eth0 | grep -oP 'inets+K[^/]+'`
zend_php_ver='5.5'
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
set -e
## Making sure wget and tar are present on the system
command -v wget >/dev/null 2>&1 || { echo >&2 "wget is not installed. Abort"; }
command -v tar >/dev/null 2>&1 || { echo >&2 "tar is not installed. Abort"; }
## Install Zend Server using a tarball stored in Azure Blob Storage
cd /tmp
wget -q https://zendstorage.blob.core.windows.net/server/ZendServer-8.0.1-
RepositoryInstaller-linux.tar.gz
tar xvzf ZendServer-8.0.1-RepositoryInstaller-linux.tar.gz
ZendServer-RepositoryInstaller-linux/install_zs.sh "$zend_php_ver" --automatic
## Cleanup
rm -rf *
## Bootstrap and create or join cluster.
sudo /usr/local/zend/bin/zs-manage bootstrap-single-server -p
"$zendadmin_ui_pass" -o "$zend_order_number" -l "$zend_license_key" -r TRUE -a
TRUE -e "$zend_admin_email" -d "$zenddev_ui_pass"
## Restart Zend Server
sudo /usr/local/zend/bin/zendctl.sh restart
web_api_key=`sqlite3 /usr/local/zend/var/db/gui.db "select HASH from
GUI_WEBAPI_KEYS where NAME='admin';"`
sudo /usr/local/zend/bin/zs-manage restart -N admin -K "$web_api_key"
$ command -v foo >/dev/null 2>&1 || { echo >&2 "I require foo but it's not
installed. Aborting."; exit 1; }
$ type foo >/dev/null 2>&1 || { echo >&2 "I require foo but it's not installed.
Aborting."; exit 1; }
$ hash foo 2>/dev/null || { echo >&2 "I require foo but it's not installed.
Aborting."; exit 1; }
permissions: '0755'
path: /zend/bootstrapsingle
runcmd:
- /zend/bootstrapsingl
Amorcer Zend Server sur Azure avec Cloud-Init
24
Microsoft Azure#GlobalAzure #ViseoSpirit
COMMENT MONITORER?
Microsoft Azure#GlobalAzure #ViseoSpirit
Monitorer avec Zend Server
26
Microsoft Azure#GlobalAzure #ViseoSpirit
URL Insights
27
Microsoft Azure#GlobalAzure #ViseoSpirit
Vue d'ensemble sur Z-Ray
28
Microsoft Azure#GlobalAzure #ViseoSpirit
MOTS DE LA FIN
29
Microsoft Azure#GlobalAzure #ViseoSpirit
Cas réel d’une société multinationale
• Temps de transformation 6 mois (temps partiel)
• AVANT : 1 mois avant une livraison Recette
• APRES : 10 livraisons par jours en Dev
et 5 min pour passer en Recette
Le client peut ENFIN donner des Feedbacks
rapidement !
Retours d’expérience sur le DevOps?
30
Microsoft Azure#GlobalAzure #ViseoSpirit
• Gestion du changement sur 3 axes
« People-Process-Tools »
– P: Communication !
– P: Rôles et responsabilités claires
– T: Automatiser!
• De nombreux frameworks éprouvés existent
depuis 2003…
• Pourquoi pas vous ?
POUR REUSSIR DANS LE DEVOPS
31
Microsoft Azure#GlobalAzure #ViseoSpirit
BONNES PRATIQUES D’UNE MIGRATION VERS LE DEVOPS
Maturity
Source : http://blog.cobia.net/cobiacomm/2012/10/24/devops-meets-alm-in-the-cloud-cloud-devops-factory
Tenir compte de la courbe de maturité tout en parallélisant les actions
Microsoft Azure#GlobalAzure #ViseoSpirit
GAB 2015 LYON ORAGANIZER
LOCAL SPONSORS WORLDWIDE SPONSORS
…
#GlobalAzure #ViseoSpirit
Microsoft Azure#GlobalAzure #ViseoSpirit
ANNEXES
34
Microsoft Azure#GlobalAzure #ViseoSpirit
Configuration Management avec Chef
35

Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une solution robuste en PHP (Zend server et MS Azure)

Notes de l'éditeur