SlideShare une entreprise Scribd logo
1  sur  49
FORUM PHP PARIS 2014FORUM PHP PARIS 2014
- 24/10/2014
1
La mesure, ce n'est pas que pour le
DEVOPS
06/02/2015 2
• Pourquoi mesurer ?
• Quel type de mesure ?
• Comment mesurer ?
La mesure, pourquoi ?
06/02/2015 3
●
Pourquoi mesurer ?Pourquoi mesurer ?
– En LEAN Startup, comme en DEVOPS, le feedbackfeedback
est primordial pour
– L'Amélioration continue
●
Quel type de mesure ?
●
Comment mesurer ?
La mesure, le type
06/02/2015 4
●
Pourquoi mesurer ?
●
Quel type de mesure ?Quel type de mesure ?
– AAA : Actionnable, Auditable, Accessible
– Efficace / Vanité
●
Ex : % de code actif / nombre de ligne de code
– AARR : Acquisition, Activation, Rétention, Refère,
Revenue
●
1 utilisateur, s'enregistre, reviens, fait de la pub, achète le
produit
●
Comment mesurer ?
La mesure, comment
06/02/2015 5
●
Pourquoi mesurer ?
●
Quel type de mesure ?
●
Comment mesurer ?Comment mesurer ?
– Le plus connu : Google Analytics : simple, génération
de dashboard, Query Explorer pour export JSON, les
données chez Google
– Le plus « in » : statsDstatsD + Graphite : évolué, collectes
via UDP donc non intrusif, maîtrise les données.
La mesure, exemples
06/02/2015 6
Analytics
Graphite
Grafana
Tessera
La mesure, comment
06/02/2015 7
●
Pourquoi mesurer ?
●
Quel type de mesure ?
●
Comment mesurer ?Comment mesurer ?
– Les autres : MixPanels, PirateMetrics (hébergés)
– Dans l'application : AppDynamicsAppDynamics, Catchy.io
La mesure, chez Techsys
06/02/2015 8
●
Que retenir pour Techsys?
– Une bonne métrique est AAA (*)
– Une bonne métrologie est AARR (*)
– L'analyse permet de s'améliorer (donc de s'enrichir)
●
Quels outils regarder ?
– StatsD / Graphite / Grafana
●
Et nos clients ?Et nos clients ?
– Ils sont encore frileux, soyons prêts avant eux !
Industrialisation des environnements de dev
avec Puppet et Amazon
06/02/2015 9
●
Définition du besoin
●
Retour d'expérience,
les succès
●
Retour d'expérience,
les erreurs
Industrialisation, le besoin à la demande
06/02/2015 10
●
Définition du besoinDéfinition du besoin
– Environnements techniques complexes et variés
●
PHP, Symphony, RabbitMQ, MongoDB, Reddis, MySQL, ...
– BDD ou images non identiques à la production
●
bug, erreur normale, à cause de l'expression de besoin, ...
– Réactivité : maquettes pour le marketting
– Se rapprocher de l'hébergeur historique
●
Retour d'expérience, les succès
●
Retour d'expérience, les erreurs
Industrialisation : faciliter le provisionning
06/02/2015 11
●
Définition du besoin
●
Retour d'expérience, les succèsRetour d'expérience, les succès
– Offre Amazon énoOorme et adaptable
– Connaissances internes Puppet, gestion des dépendances (puis
utilisation de Foreman)
– Utilisation de packer.iopacker.io pour faciliter les workflows de provisionning
– Les alertes de budget d'AWS sont indispensables
– Kitchen, un framework pour Chef : « Infrastructure as codeInfrastructure as code »
– Opérationnel en 3 mois !
●
Retour d'expérience, les erreurs
Industrialisation : les erreurs à éviter
06/02/2015 12
●
Définition du besoin
●
Retour d'expérience, les succès
●
Retour d'expérience, les erreursRetour d'expérience, les erreurs
– Abandon de Puppet au profit de ChefChef utilisé en production
– Chef est moins contraignant, mieux documenté pour Amazon EC2
(via : CloudFormation)
– Réfléchir aux synchro de BDD (ex est-ce bien utile de répliquer une
instance qui ne bouge jamais comme les résultats d'élection ?)
– Attention, qui dit « à la demande » dit « éteindre les services inutiles »
sous peine de dépassement de budget !dépassement de budget !
Industrialisation : une spécialité Techsys ?
06/02/2015 13
●
Que retenir pour Techsys ?
– Amazon est mature, mais pas les utilisateurs, et encore moins les
collaborateurs : penser à monter un labo Techsys « pour se faire la
main » ?
– Bien étudier le besoin avant de répondre : puppet vs chef par exemple,
AWS vs Rackspace ou OVH, ...
●
Quels outils regarder ?
– Chef, Kitchen, Packer.io sont indispensables pour AWS (en 2014)
●
Et nos clients ?Et nos clients ?
– Ils ont du mal à identifier un prestataire Amazon de qualité.
– Ils ne savent pas encore que le Cloud à la demande revient vite plus
cher que l'hébergement illimité traditionnel en cas de mauvais réglage.
– Ils en veulent tous tout de suite.
PHP dans les distributions RPM
06/02/2015 14
●
PHP et les RPM
●
Les distributions RPM professionnelles
●
Les distributions RPM personnelles
●
Le futur pour les satisfaire tous
RPM : quel problème avec PHP ?
06/02/2015 15
●
PHP et les RPMPHP et les RPM
– Évolutions rapides, beaucoup de dépendancesdépendances :
PECL, PEAR, …
– PHP et les modules, combien de RPMs ?
●
Les distributions RPM professionnelles
●
Les distributions RPM personnelles
●
Le futur pour les satisfaire tous
RPM, rappel des distributions
06/02/2015 16
●
PHP et les RPM
●
Les distributions RPM professionnellesLes distributions RPM professionnelles
– RHEL / CentOS / OracleLinux
– Stabilité (13 ans), packages anciens mais avec les
patchs de sécurité
– Backports sans support
●
Les distributions RPM personnelles
●
Le futur pour les satisfaire tous
RPM, rappel des distributions
06/02/2015 17
●
PHP et les RPM
●
Les distributions RPM professionnelles
●
Les distributions RPM personnellesLes distributions RPM personnelles
– Fedora (labo à faire monter en RHEL)
– Packages très récents (parfois trop)
– Maximum 1 an pour une distribution
●
Le futur pour les satisfaire tous
RPM, rappel des distributions
06/02/2015 18
●
PHP et les RPM
●
Les distributions RPM professionnelles
●
Les distributions RPM personnelles
●
Le futur pour les satisfaire tous
– Les Software CollectionSoftware Collection ! « versionnées » par version majeure
d'application : la toute dernière version de PHP est dispo en RHEL 5 !
– Supportée 100 % RedHat et Satellite
– Cohabitation possible de plusieurs versions sans virtualisation
(scl enable / VHOST par version / surcharge du shebang)
– Intégration continue de la stack PHP grâce à Koschei
RPM, Techsys sait faire.
06/02/2015 19
●
Que retenir pour Techsys ?
– Techsys est partenaire RedHat
– Nous DEVONS répondre « Software Collection » sur les questions de
maintenance
– Nous DEVONS répondre « Erratas » sur les questions de sécurité
uniquement
●
Quels outils regarder ?
– http://www.softwarecollections.org
– Debian cherche une solution similaire
●
Et nos clients ?Et nos clients ?
– Ils utilisent massivement RedHat en physique ou virtualisé
– Ils ont des contraintes de maintenance de version ou de tests multiples
– Nous avons des réponses logicielles légitimes et supportées
Laisse pas traîner ton log
06/02/2015 20
●
Un log, pour quoi faire ?
●
Les bonnes méthodes ELK, ce qui
marche
●
Le cas Bla Bla Car, ce qui n'est pas traité
Les logs : définition
06/02/2015 21
●
Un log, pour quoi faire ?Un log, pour quoi faire ?
– Les activités systèmes et applicatives
– L'analyse d'erreurs
– L'amélioration continue
– Lire un log à travers ssh avec grep, tail, awk :
c'est juste pénible et pas pratique
●
Les bonnes méthodes ELK, ce qui
marche
●
Le cas Bla Bla Car, ce qui n'est pas traité
Les logs : bonnes méthodes
06/02/2015 22
●
Un log, pour quoi faire ?
●
Les bonnes méthodes ELK, ce qui marcheLes bonnes méthodes ELK, ce qui marche
– ElasticSearch, Logstash, Kibana : un standard, un seul prod et hors-prod
pour comparer facilement
– rsyslog pour le système
– monologmonolog pour l'application PHP
●
Surcharge du contexte PSR3 (ex : via les processors ajout du user-id)
●
1 channel monolog par application (1 pour Symfony, 1 pour Security, 1
pour une doctrine)
– Graylog Extended Log Format (GELFGELF) pour alimenter Logstash
– Une seule machine Amazon et 1 % de loadav pour 200000 event/min
●
Le cas Bla Bla Car, ce qui n'est pas traité
Les logs : ce qui n'est pas encore prêt
06/02/2015 23
●
Un log, pour quoi faire ?
●
Les bonnes méthodes ELK, ce qui marche
●
Le cas Bla Bla Car, ce qui n'est pas traitéLe cas Bla Bla Car, ce qui n'est pas traité
– La redondance de l'infra ou l'extension du stockage pour la rétention
●
rapatriement en local en cours d'étude
– Le volume autorise la perte de logs
●
Transfert en UDP, peu intrusif sur l'application ou la charge OS
– Pas d'anonymisation des logs
– ELK n'est pas utilisé pour ou par le monitoring, les consoles sont
ouvertes en permanence
– Pas encore d'utilisation par les équipes marketing
– Le framework Heka (Mozilla) est encore trop jeune et trop complexe
pour remplacer le trio de référence ElasticSearch / Logstash / Kibana
Les logs, une spécialité Techsys ?
06/02/2015 24
●
Que retenir pour Techsys ?
– ELK est très mature et est une référence
– Il faut définir QUOI loguer AVANT de dire COMMENT.
– C'est un outil formidable mais sans valeur ajoutée
– Notre valeur ajoutée, sa configuration « facile »
●
Quels outils regarder ?
– ELK mais aussi monolog et GELF
– Heka, plus tard
●
Et nos clients ?Et nos clients ?
– Ils veulent économiser SPLUNK et maîtriser leurs logs.
– Ils ont déjà ELK mais ne savent pas encore exploiter les « dashboards »
– Nous avons les bonnes méthodes d'intégration en main.
Architecture d'une application Full API
orientée micro service
06/02/2015 25
●
Pourquoi faire un micro service ?
●
Comment intégrer les micro service ?
●
Et après ?
Les micro services, pourquoi
06/02/2015 26
●
Pourquoi faire un micro service ?Pourquoi faire un micro service ?
– Pour la scalabilité & la robustesse d'une fonctionnalité
– Pour les évolutions techniques d'uned'une fonctionnalité
– Pour avoir une approche mobile / responsive
– Un micro service pour :
●
Un moteur de recherche
●
Un sommaire
●
Un moteur d'envoi de SMS (...)
●
Comment intégrer les micro service ?
●
Et après ?
Les micro services, comment
06/02/2015 27
●
Pourquoi faire un micro service ?
●
Comment intégrer les micro service ?Comment intégrer les micro service ?
– Communication en HTTP, format JSON
– Gérer les erreurs et logs tout de suite
●
Logentries (en gros c'est un ELK en mode SAS)
●
Un tag par micro service (1 User-Agent)
– Séparation lectures / écritures
●
Traitements Asynchrones par IronMQ (JMS server en mode SAS)
– Cache publique Varnish, pas de cache privé pour ne pas avoir à gérer
les invalidations
– Authentification mutuelle des micro services (SSL / OAuth2)
– Équipes de développement humaine : 1 équipe par micro service
●
Et après ?
Les micro services, pourquoi
06/02/2015 28
●
Pourquoi faire un micro service ?
●
Comment intégrer les micro service ?
●
Et après ?Et après ?
– Passer de OpenVZ à DockerDocker
●
Gaudi est un service SAS pour les micro services
– Ne pas avoir peur de se tromper
Les micro services, Techsys, déjà ?
06/02/2015 29
●
Que retenir pour Techsys ?
– Cette présentation est trop en avance sur son temps (KlubUp)
– Elle donne de bonnes pistes sur ce que seront les infrastructures
●
Quels outils regarder ?
– Les applications SAS : Logentries, IronMQ, Gaudi.io
●
Et nos clients ?Et nos clients ?
– Ils en sont très loin dans la technique, mais sont prêts / près dans
l'approche et leurs besoins
– Il ne leur reste qu'à revoir le mode webservice Java vers du micro
service en terme de design
– Et donc à tout redéveloppertout redévelopper from scratch … (« ça tue pas le métier »)
– Techsys a maintenant les bonnes pratiques
Faster Application Development
with CakePHP 3.0
06/02/2015 30
●
Qu'est-ce que CakePHP
●
A quoi ça sert
●
Les outils associés
CakePHP : c'est quoi
06/02/2015 31
●
Qu'est-ce que CakePHPQu'est-ce que CakePHP
– C'est l'ancêtre des framework PHP
– Annoncé comme l'un des plus matures
– Mais aussi très peu utilisé en France
●
A quoi ça sert
●
Les outils associés
CakePHP : pour quoi faire
06/02/2015 32
●
Qu'est-ce que CakePHP
●
A quoi ça sertA quoi ça sert
– A développer des sites web facilement
– Sans connaissance
– Transforme PHP en application Middleware
– Object Relational Mapping natif (jointure SQL facilité)
– Intégration de mapreduce et optimisation de querycache
●
Les outils associés
CakePHP : les outils
06/02/2015 33
●
Qu'est-ce que CakePHP
●
A quoi ça sert
●
Les outils associésLes outils associés
– Migration PHP facilité par phinx.org
– « Let's baking, put the cake in the oven », Bake, générateur de code
PHP pour CakePHP
– DebugKit : barre d'outil intégrée pour … débugguer le code Bake
– CRUD plugin pour ne plus avoir à gérer les exceptions et erreurs
CakePHP : pour Techsys
06/02/2015 34
●
Que retenir pour Techsys ?
– C'est un framework que l'on peut conseiller
– Le projet a l'air sympa pour notre futur intranet
– Le mainteneur est cool (au sens ricain, pas au sens français)
●
Quels outils regarder ?
– CakePHP lui même, à la mode avec toutes ces émissions culinaires 
dans le poste de télévision ...
●
Et nos clients ?Et nos clients ?
– Nos clients utilisateurs de PHP ont encore des produits tout faits
(drupal, joomla, ….) et
– Sont donc encore loin de ce besoinloin de ce besoin
Retour d'expérience ARTE GIE :
développement API
06/02/2015 35
●
Les besoins
●
Les choix techniques
●
Le reste à faire
ARTE : les besoins
06/02/2015 36
●
Les besoinsLes besoins
– Interface multi-langues
– Diffusion de contenu vidéo : Arte +7, Arte Concert, mini-sites pour les
émissions, ...
– Accès multicanals : Browser, HBBTV, iOS, Android, FirefoxOS
– Respect des droits d'auteurs, gestion de la QoS, cloisonnement et sécurité
des applications …
– OpenData
●
Les choix techniques
●
Le reste à faire
ARTE : les choix
06/02/2015 37
●
Les besoins
●
Les choix techniquesLes choix techniques
– Symfony 2, REST, MongoDB, RabbitMQ
– OpenResty (Reverse Proxy Middleware pour le serveur Web NGINX)
– Micro Services (une API par application)
– Standard {json:api} : annotations, plusieurs documents en une requête
– Sécurité
●
Rôle et limites : OAuth2 => retour protocolaires HTTP
●
NGINX + LUA (access_by_lua) => scripting pour les API
●
Cache Varnish devant les API
●
Le reste à faire
ARTE : le reste à faire
06/02/2015 38
●
Les besoins
●
Les choix techniques
●
Le reste à faireLe reste à faire
– Être en capacité à accueillir plus de 1500 req/min si plus d'audience
– Libération du code du JMSSerializer sur Github
– Libération du code Serveur sur Github
– Exploitation des métriques avec statsD
– Intégration ArteTV dans un module Drupal (presque terminé)
– Loadbalancing avec HHVM
ARTE : pour Techsys
06/02/2015 39
●
Que retenir pour Techsys ?
– Retour sur des choix architecturaux
– Importance du respect des standards
●
Quels outils regarder ?
– OpenResty et son NGINX « adapté »
– Hip Hop Virtual Machine (HHVMHHVM) : la virtualisation du
Middleware PHP par Facebook ™
●
Et nos clients ?Et nos clients ?
– On n'en est pas encore là ….
Déploiement continu :
un pas de plus vers le DEVOPS
06/02/2015 40
●
Rappels sur le mouvement DEVOPS
●
Bonnes pratiques d'intégration continue
●
Solutions techniques
DEVOPS : le mouvement
06/02/2015 41
●
Rappels sur le mouvement DEVOPSRappels sur le mouvement DEVOPS
– Réunion des Développeurs et Opérationnels (sysadmin) pour :
●
Réduction du « Time To Market »
●
Diminution des risques
●
Amélioration continue
– « It is not the strongest of the species that survives, nor the most 
intelligent, but rather the one most adaptable to change. » (Leon C.
Megginson)
●
Bonnes pratiques d'intégration continue
●
Solutions techniques
●
Conclusions
DEVOPS : intégration continue
06/02/2015 42
●
Rappels sur le mouvement DEVOPS
●
Bonnes pratiques d'intégrationBonnes pratiques d'intégration
continuecontinue
– Méthode agile proche de SCRUM ou LEAN Startup : sprint de release
– Équipe à taille humaine : « pizza team » de Jeff Bezos
– Dans l'ordre : déploiement en assemblage, intégration continue, tests
et livraison, déploiement en production en permanence
– Répéter au maximum pour qu'une mise en production devienne banale
●
Solutions techniques
●
Conclusions
DEVOPS : techniques
06/02/2015 43
●
Rappels sur le mouvement DEVOPS
●
Bonnes pratiques d'intégration continue
●
Solutions techniquesSolutions techniques
– Versionning du code : SVN, Git, … , Github
– Se donner les moyens d'une « Infrastructure As A Code » avec Chef,
Puppet, Ansible, …
– Automatiser les phases de tests : Jenkins ou Travis (appli SAS)
– Mettre du monitoring à chaque étape : ELK ou NewRelic (appli SAS)
– Déploiement continu : Fabric, Capistrano
●
Conclusions
DEVOPS : conclusions
06/02/2015 44
●
Rappels sur le mouvement DEVOPS
●
Bonnes pratiques d'intégration continue
●
Solutions techniques
●
ConclusionsConclusions
– Le DevOps permet le « feature flippingfeature flipping » : mise en production d'une
et une seule fonctionnalité
– Le DevOps permet le « Canary TestingCanary Testing » : montée par pallier
– Le DevOps autorise le « Design to FailureDesign to Failure » : Netflix a inventé le job
de « Chaos Monkey » pour optimiser la robustesse de son code
DEVOPS : Techsys est prêt
06/02/2015 45
●
Que retenir pour Techsys ?
– Le métier d'adminsys laisse peu à peu la place au DevOps
– Les bonnes pratiques ne sont que des rappels évidents et permettent
l'amélioration continue et le gain d'argent
●
Quels outils regarder ?
– Travis, NewRelic, Capistrano
●
Et nos clients ?Et nos clients ?
– Ils sont à des années lumière de cette réflexion. Ils n'ont pas encore
compris l'intérêt du versionning applicatif pour certains.
– Les réalisations « Twitter / FlickR / NetFlix » leurs semblent
inaccessibles
Conclusions
06/02/2015 46
●
Que retenir pour Techsys ?
– Les mouvements DEVOPS et LEAN Startup permettent l'intégration
continue
– Un des moyens d'y arriver et de mesurer tous les indicateurs
– De multiplier les services ou les micro services
●
Quels outils regarder ?
– Monolog, rSyslog, ElasticSearch, Logstash, Kibana, statsD, Graphite,
Grafana, Puppet, Chef, packer.io, Kitchen, Capistrano, RabbitMQ,
OpenResty, Varnish
– MixPanels, Travis, NewRelic, Logentries, IronMQ
– Amazon AWS, Docker, Gaudi, HHVM
– Les Software Collections RPM, phinx.org
Conclusions
06/02/2015 47
●
A lire
– Lean Startup par Eric Ries
– State Of DevOps Reports par PuppetLabs
●
Le clou de la journée
– La démo par MicrosoftMicrosoft d'un déploiement agile de PHP dans un
environnement AzureAzure, pour héberger en 5 minutes un VM versionnée
avec GIT, son serveur Web Iis. Son administration se faisait via un
browser Chrome dans une Virtualbox démarrée sur un MacOS. Le tout
était permis grace à un HTC Android qui partageait la connexion 3G.
J'ai bien lu Microsoft au début ? Oui oui ….
– Le second, dans un registre différent, la « karaoke conferencekaraoke conference », une
clôture en mode « match d'improvisation » sur des slides improbables.
FORUM PHP PARIS 2014
06/02/2015 48
Avez-vous des questions ?
FORUM PHP PARIS 2014
06/02/2015 49
Vos idées sont les bienvenues
Merci !
+33.6.32.19.76.71
o.duquesne@techsys.fr
@techsys_fr
@oduquesne

Contenu connexe

En vedette

Gabriel García Marquez
Gabriel García MarquezGabriel García Marquez
Gabriel García MarquezLinkedSam
 
hacker y informacion forense (daniela y jessica)
hacker y informacion forense (daniela y jessica)hacker y informacion forense (daniela y jessica)
hacker y informacion forense (daniela y jessica)Jessica Vergel Plata
 
Automoviles de alta gama
Automoviles de alta gamaAutomoviles de alta gama
Automoviles de alta gamaangiecmrgo
 
Découvrez le vaccin contre le paludisme
Découvrez le vaccin contre le paludismeDécouvrez le vaccin contre le paludisme
Découvrez le vaccin contre le paludismeXplore Health
 
Concours Illustre les droits de l'enfant
Concours Illustre les droits de l'enfantConcours Illustre les droits de l'enfant
Concours Illustre les droits de l'enfantplanfrance
 
Journal Esprit de la France n°5
Journal Esprit de la France n°5Journal Esprit de la France n°5
Journal Esprit de la France n°5MarineLePen
 
Journal Esprit de la France n°4
Journal Esprit de la France n°4Journal Esprit de la France n°4
Journal Esprit de la France n°4MarineLePen
 
Estándar, competencia e indicadores de desempeño
Estándar, competencia e indicadores de desempeñoEstándar, competencia e indicadores de desempeño
Estándar, competencia e indicadores de desempeñoAndrés Alba Ederson Reyes
 
Historias graficas m. de la investigacion
Historias graficas m. de la investigacionHistorias graficas m. de la investigacion
Historias graficas m. de la investigacionRicardo Amador A
 
Teoria de colas o lineas de espera
Teoria de colas o lineas de esperaTeoria de colas o lineas de espera
Teoria de colas o lineas de esperaJacinta-Pineda
 
Competencias Docentes
Competencias DocentesCompetencias Docentes
Competencias Docentesxunmayel64
 
Journal Esprit de la France n°1
Journal Esprit de la France n°1Journal Esprit de la France n°1
Journal Esprit de la France n°1MarineLePen
 

En vedette (20)

Gabriel García Marquez
Gabriel García MarquezGabriel García Marquez
Gabriel García Marquez
 
hacker y informacion forense (daniela y jessica)
hacker y informacion forense (daniela y jessica)hacker y informacion forense (daniela y jessica)
hacker y informacion forense (daniela y jessica)
 
Comté Guide Dégustation
Comté Guide DégustationComté Guide Dégustation
Comté Guide Dégustation
 
Actualslideshare
ActualslideshareActualslideshare
Actualslideshare
 
Gestión de redes
Gestión de redesGestión de redes
Gestión de redes
 
Automoviles de alta gama
Automoviles de alta gamaAutomoviles de alta gama
Automoviles de alta gama
 
Proyecto Pinedo Dos Volúmenes
Proyecto Pinedo Dos VolúmenesProyecto Pinedo Dos Volúmenes
Proyecto Pinedo Dos Volúmenes
 
Des logements basse énergie et durables à hastière
Des logements basse énergie et durables à hastièreDes logements basse énergie et durables à hastière
Des logements basse énergie et durables à hastière
 
Découvrez le vaccin contre le paludisme
Découvrez le vaccin contre le paludismeDécouvrez le vaccin contre le paludisme
Découvrez le vaccin contre le paludisme
 
Médias sociaux dans la promotion de la transparence
Médias sociaux dans la promotion de la transparenceMédias sociaux dans la promotion de la transparence
Médias sociaux dans la promotion de la transparence
 
Concours Illustre les droits de l'enfant
Concours Illustre les droits de l'enfantConcours Illustre les droits de l'enfant
Concours Illustre les droits de l'enfant
 
La prostitution et les communes
La prostitution et les communesLa prostitution et les communes
La prostitution et les communes
 
Le plan communal de mobilité - Enjeux et développement
Le plan communal de mobilité - Enjeux et développementLe plan communal de mobilité - Enjeux et développement
Le plan communal de mobilité - Enjeux et développement
 
Journal Esprit de la France n°5
Journal Esprit de la France n°5Journal Esprit de la France n°5
Journal Esprit de la France n°5
 
Journal Esprit de la France n°4
Journal Esprit de la France n°4Journal Esprit de la France n°4
Journal Esprit de la France n°4
 
Estándar, competencia e indicadores de desempeño
Estándar, competencia e indicadores de desempeñoEstándar, competencia e indicadores de desempeño
Estándar, competencia e indicadores de desempeño
 
Historias graficas m. de la investigacion
Historias graficas m. de la investigacionHistorias graficas m. de la investigacion
Historias graficas m. de la investigacion
 
Teoria de colas o lineas de espera
Teoria de colas o lineas de esperaTeoria de colas o lineas de espera
Teoria de colas o lineas de espera
 
Competencias Docentes
Competencias DocentesCompetencias Docentes
Competencias Docentes
 
Journal Esprit de la France n°1
Journal Esprit de la France n°1Journal Esprit de la France n°1
Journal Esprit de la France n°1
 

Similaire à Forum PHP 2014 day 1

Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPPascal MARTIN
 
Web perf Silicon Comte
Web perf Silicon ComteWeb perf Silicon Comte
Web perf Silicon ComteSilicon Comté
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Ametys
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
FinistJUG - J’ai besoin d’une appli web rapidement
FinistJUG -   J’ai besoin d’une appli web rapidementFinistJUG -   J’ai besoin d’une appli web rapidement
FinistJUG - J’ai besoin d’une appli web rapidementHoracio Gonzalez
 
Saas Libre
Saas LibreSaas Libre
Saas Libregrolland
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 
Biz talk summit devops - monitoring
Biz talk summit   devops - monitoringBiz talk summit   devops - monitoring
Biz talk summit devops - monitoringRadoine Douhou
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012agnes_crepet
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Horacio Gonzalez
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketmichael_bailly
 
Support tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSupport tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSmartnSkilled
 
Support formation vidéo : Introduction générale à SAP ERP
Support formation vidéo : Introduction générale à SAP ERPSupport formation vidéo : Introduction générale à SAP ERP
Support formation vidéo : Introduction générale à SAP ERPSmartnSkilled
 
Support cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSupport cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSmartnSkilled
 
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementHoracio Gonzalez
 
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+Raphaël Carles
 
Competitic solution adaptée pour site internet - numerique en entreprise
Competitic   solution adaptée pour site internet - numerique en entrepriseCompetitic   solution adaptée pour site internet - numerique en entreprise
Competitic solution adaptée pour site internet - numerique en entrepriseCOMPETITIC
 

Similaire à Forum PHP 2014 day 1 (20)

Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHP
 
Web perf Silicon Comte
Web perf Silicon ComteWeb perf Silicon Comte
Web perf Silicon Comte
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Openerp
OpenerpOpenerp
Openerp
 
FinistJUG - J’ai besoin d’une appli web rapidement
FinistJUG -   J’ai besoin d’une appli web rapidementFinistJUG -   J’ai besoin d’une appli web rapidement
FinistJUG - J’ai besoin d’une appli web rapidement
 
Saas Libre
Saas LibreSaas Libre
Saas Libre
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
Biz talk summit devops - monitoring
Biz talk summit   devops - monitoringBiz talk summit   devops - monitoring
Biz talk summit devops - monitoring
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
 
Méthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to marketMéthodes agiles, frameworks javascript: optimisez votre time to market
Méthodes agiles, frameworks javascript: optimisez votre time to market
 
Support tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSupport tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERP
 
Support formation vidéo : Introduction générale à SAP ERP
Support formation vidéo : Introduction générale à SAP ERPSupport formation vidéo : Introduction générale à SAP ERP
Support formation vidéo : Introduction générale à SAP ERP
 
Support cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSupport cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERP
 
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
 
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
AFUP 2010 : Industrialisation de PHP, l'exemple de CANAL+
 
Competitic solution adaptée pour site internet - numerique en entreprise
Competitic   solution adaptée pour site internet - numerique en entrepriseCompetitic   solution adaptée pour site internet - numerique en entreprise
Competitic solution adaptée pour site internet - numerique en entreprise
 

Dernier

conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésSana REFAI
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdfSoukainaMounawir
 

Dernier (7)

JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
 

Forum PHP 2014 day 1

  • 1. FORUM PHP PARIS 2014FORUM PHP PARIS 2014 - 24/10/2014 1
  • 2. La mesure, ce n'est pas que pour le DEVOPS 06/02/2015 2 • Pourquoi mesurer ? • Quel type de mesure ? • Comment mesurer ?
  • 3. La mesure, pourquoi ? 06/02/2015 3 ● Pourquoi mesurer ?Pourquoi mesurer ? – En LEAN Startup, comme en DEVOPS, le feedbackfeedback est primordial pour – L'Amélioration continue ● Quel type de mesure ? ● Comment mesurer ?
  • 4. La mesure, le type 06/02/2015 4 ● Pourquoi mesurer ? ● Quel type de mesure ?Quel type de mesure ? – AAA : Actionnable, Auditable, Accessible – Efficace / Vanité ● Ex : % de code actif / nombre de ligne de code – AARR : Acquisition, Activation, Rétention, Refère, Revenue ● 1 utilisateur, s'enregistre, reviens, fait de la pub, achète le produit ● Comment mesurer ?
  • 5. La mesure, comment 06/02/2015 5 ● Pourquoi mesurer ? ● Quel type de mesure ? ● Comment mesurer ?Comment mesurer ? – Le plus connu : Google Analytics : simple, génération de dashboard, Query Explorer pour export JSON, les données chez Google – Le plus « in » : statsDstatsD + Graphite : évolué, collectes via UDP donc non intrusif, maîtrise les données.
  • 6. La mesure, exemples 06/02/2015 6 Analytics Graphite Grafana Tessera
  • 7. La mesure, comment 06/02/2015 7 ● Pourquoi mesurer ? ● Quel type de mesure ? ● Comment mesurer ?Comment mesurer ? – Les autres : MixPanels, PirateMetrics (hébergés) – Dans l'application : AppDynamicsAppDynamics, Catchy.io
  • 8. La mesure, chez Techsys 06/02/2015 8 ● Que retenir pour Techsys? – Une bonne métrique est AAA (*) – Une bonne métrologie est AARR (*) – L'analyse permet de s'améliorer (donc de s'enrichir) ● Quels outils regarder ? – StatsD / Graphite / Grafana ● Et nos clients ?Et nos clients ? – Ils sont encore frileux, soyons prêts avant eux !
  • 9. Industrialisation des environnements de dev avec Puppet et Amazon 06/02/2015 9 ● Définition du besoin ● Retour d'expérience, les succès ● Retour d'expérience, les erreurs
  • 10. Industrialisation, le besoin à la demande 06/02/2015 10 ● Définition du besoinDéfinition du besoin – Environnements techniques complexes et variés ● PHP, Symphony, RabbitMQ, MongoDB, Reddis, MySQL, ... – BDD ou images non identiques à la production ● bug, erreur normale, à cause de l'expression de besoin, ... – Réactivité : maquettes pour le marketting – Se rapprocher de l'hébergeur historique ● Retour d'expérience, les succès ● Retour d'expérience, les erreurs
  • 11. Industrialisation : faciliter le provisionning 06/02/2015 11 ● Définition du besoin ● Retour d'expérience, les succèsRetour d'expérience, les succès – Offre Amazon énoOorme et adaptable – Connaissances internes Puppet, gestion des dépendances (puis utilisation de Foreman) – Utilisation de packer.iopacker.io pour faciliter les workflows de provisionning – Les alertes de budget d'AWS sont indispensables – Kitchen, un framework pour Chef : « Infrastructure as codeInfrastructure as code » – Opérationnel en 3 mois ! ● Retour d'expérience, les erreurs
  • 12. Industrialisation : les erreurs à éviter 06/02/2015 12 ● Définition du besoin ● Retour d'expérience, les succès ● Retour d'expérience, les erreursRetour d'expérience, les erreurs – Abandon de Puppet au profit de ChefChef utilisé en production – Chef est moins contraignant, mieux documenté pour Amazon EC2 (via : CloudFormation) – Réfléchir aux synchro de BDD (ex est-ce bien utile de répliquer une instance qui ne bouge jamais comme les résultats d'élection ?) – Attention, qui dit « à la demande » dit « éteindre les services inutiles » sous peine de dépassement de budget !dépassement de budget !
  • 13. Industrialisation : une spécialité Techsys ? 06/02/2015 13 ● Que retenir pour Techsys ? – Amazon est mature, mais pas les utilisateurs, et encore moins les collaborateurs : penser à monter un labo Techsys « pour se faire la main » ? – Bien étudier le besoin avant de répondre : puppet vs chef par exemple, AWS vs Rackspace ou OVH, ... ● Quels outils regarder ? – Chef, Kitchen, Packer.io sont indispensables pour AWS (en 2014) ● Et nos clients ?Et nos clients ? – Ils ont du mal à identifier un prestataire Amazon de qualité. – Ils ne savent pas encore que le Cloud à la demande revient vite plus cher que l'hébergement illimité traditionnel en cas de mauvais réglage. – Ils en veulent tous tout de suite.
  • 14. PHP dans les distributions RPM 06/02/2015 14 ● PHP et les RPM ● Les distributions RPM professionnelles ● Les distributions RPM personnelles ● Le futur pour les satisfaire tous
  • 15. RPM : quel problème avec PHP ? 06/02/2015 15 ● PHP et les RPMPHP et les RPM – Évolutions rapides, beaucoup de dépendancesdépendances : PECL, PEAR, … – PHP et les modules, combien de RPMs ? ● Les distributions RPM professionnelles ● Les distributions RPM personnelles ● Le futur pour les satisfaire tous
  • 16. RPM, rappel des distributions 06/02/2015 16 ● PHP et les RPM ● Les distributions RPM professionnellesLes distributions RPM professionnelles – RHEL / CentOS / OracleLinux – Stabilité (13 ans), packages anciens mais avec les patchs de sécurité – Backports sans support ● Les distributions RPM personnelles ● Le futur pour les satisfaire tous
  • 17. RPM, rappel des distributions 06/02/2015 17 ● PHP et les RPM ● Les distributions RPM professionnelles ● Les distributions RPM personnellesLes distributions RPM personnelles – Fedora (labo à faire monter en RHEL) – Packages très récents (parfois trop) – Maximum 1 an pour une distribution ● Le futur pour les satisfaire tous
  • 18. RPM, rappel des distributions 06/02/2015 18 ● PHP et les RPM ● Les distributions RPM professionnelles ● Les distributions RPM personnelles ● Le futur pour les satisfaire tous – Les Software CollectionSoftware Collection ! « versionnées » par version majeure d'application : la toute dernière version de PHP est dispo en RHEL 5 ! – Supportée 100 % RedHat et Satellite – Cohabitation possible de plusieurs versions sans virtualisation (scl enable / VHOST par version / surcharge du shebang) – Intégration continue de la stack PHP grâce à Koschei
  • 19. RPM, Techsys sait faire. 06/02/2015 19 ● Que retenir pour Techsys ? – Techsys est partenaire RedHat – Nous DEVONS répondre « Software Collection » sur les questions de maintenance – Nous DEVONS répondre « Erratas » sur les questions de sécurité uniquement ● Quels outils regarder ? – http://www.softwarecollections.org – Debian cherche une solution similaire ● Et nos clients ?Et nos clients ? – Ils utilisent massivement RedHat en physique ou virtualisé – Ils ont des contraintes de maintenance de version ou de tests multiples – Nous avons des réponses logicielles légitimes et supportées
  • 20. Laisse pas traîner ton log 06/02/2015 20 ● Un log, pour quoi faire ? ● Les bonnes méthodes ELK, ce qui marche ● Le cas Bla Bla Car, ce qui n'est pas traité
  • 21. Les logs : définition 06/02/2015 21 ● Un log, pour quoi faire ?Un log, pour quoi faire ? – Les activités systèmes et applicatives – L'analyse d'erreurs – L'amélioration continue – Lire un log à travers ssh avec grep, tail, awk : c'est juste pénible et pas pratique ● Les bonnes méthodes ELK, ce qui marche ● Le cas Bla Bla Car, ce qui n'est pas traité
  • 22. Les logs : bonnes méthodes 06/02/2015 22 ● Un log, pour quoi faire ? ● Les bonnes méthodes ELK, ce qui marcheLes bonnes méthodes ELK, ce qui marche – ElasticSearch, Logstash, Kibana : un standard, un seul prod et hors-prod pour comparer facilement – rsyslog pour le système – monologmonolog pour l'application PHP ● Surcharge du contexte PSR3 (ex : via les processors ajout du user-id) ● 1 channel monolog par application (1 pour Symfony, 1 pour Security, 1 pour une doctrine) – Graylog Extended Log Format (GELFGELF) pour alimenter Logstash – Une seule machine Amazon et 1 % de loadav pour 200000 event/min ● Le cas Bla Bla Car, ce qui n'est pas traité
  • 23. Les logs : ce qui n'est pas encore prêt 06/02/2015 23 ● Un log, pour quoi faire ? ● Les bonnes méthodes ELK, ce qui marche ● Le cas Bla Bla Car, ce qui n'est pas traitéLe cas Bla Bla Car, ce qui n'est pas traité – La redondance de l'infra ou l'extension du stockage pour la rétention ● rapatriement en local en cours d'étude – Le volume autorise la perte de logs ● Transfert en UDP, peu intrusif sur l'application ou la charge OS – Pas d'anonymisation des logs – ELK n'est pas utilisé pour ou par le monitoring, les consoles sont ouvertes en permanence – Pas encore d'utilisation par les équipes marketing – Le framework Heka (Mozilla) est encore trop jeune et trop complexe pour remplacer le trio de référence ElasticSearch / Logstash / Kibana
  • 24. Les logs, une spécialité Techsys ? 06/02/2015 24 ● Que retenir pour Techsys ? – ELK est très mature et est une référence – Il faut définir QUOI loguer AVANT de dire COMMENT. – C'est un outil formidable mais sans valeur ajoutée – Notre valeur ajoutée, sa configuration « facile » ● Quels outils regarder ? – ELK mais aussi monolog et GELF – Heka, plus tard ● Et nos clients ?Et nos clients ? – Ils veulent économiser SPLUNK et maîtriser leurs logs. – Ils ont déjà ELK mais ne savent pas encore exploiter les « dashboards » – Nous avons les bonnes méthodes d'intégration en main.
  • 25. Architecture d'une application Full API orientée micro service 06/02/2015 25 ● Pourquoi faire un micro service ? ● Comment intégrer les micro service ? ● Et après ?
  • 26. Les micro services, pourquoi 06/02/2015 26 ● Pourquoi faire un micro service ?Pourquoi faire un micro service ? – Pour la scalabilité & la robustesse d'une fonctionnalité – Pour les évolutions techniques d'uned'une fonctionnalité – Pour avoir une approche mobile / responsive – Un micro service pour : ● Un moteur de recherche ● Un sommaire ● Un moteur d'envoi de SMS (...) ● Comment intégrer les micro service ? ● Et après ?
  • 27. Les micro services, comment 06/02/2015 27 ● Pourquoi faire un micro service ? ● Comment intégrer les micro service ?Comment intégrer les micro service ? – Communication en HTTP, format JSON – Gérer les erreurs et logs tout de suite ● Logentries (en gros c'est un ELK en mode SAS) ● Un tag par micro service (1 User-Agent) – Séparation lectures / écritures ● Traitements Asynchrones par IronMQ (JMS server en mode SAS) – Cache publique Varnish, pas de cache privé pour ne pas avoir à gérer les invalidations – Authentification mutuelle des micro services (SSL / OAuth2) – Équipes de développement humaine : 1 équipe par micro service ● Et après ?
  • 28. Les micro services, pourquoi 06/02/2015 28 ● Pourquoi faire un micro service ? ● Comment intégrer les micro service ? ● Et après ?Et après ? – Passer de OpenVZ à DockerDocker ● Gaudi est un service SAS pour les micro services – Ne pas avoir peur de se tromper
  • 29. Les micro services, Techsys, déjà ? 06/02/2015 29 ● Que retenir pour Techsys ? – Cette présentation est trop en avance sur son temps (KlubUp) – Elle donne de bonnes pistes sur ce que seront les infrastructures ● Quels outils regarder ? – Les applications SAS : Logentries, IronMQ, Gaudi.io ● Et nos clients ?Et nos clients ? – Ils en sont très loin dans la technique, mais sont prêts / près dans l'approche et leurs besoins – Il ne leur reste qu'à revoir le mode webservice Java vers du micro service en terme de design – Et donc à tout redéveloppertout redévelopper from scratch … (« ça tue pas le métier ») – Techsys a maintenant les bonnes pratiques
  • 30. Faster Application Development with CakePHP 3.0 06/02/2015 30 ● Qu'est-ce que CakePHP ● A quoi ça sert ● Les outils associés
  • 31. CakePHP : c'est quoi 06/02/2015 31 ● Qu'est-ce que CakePHPQu'est-ce que CakePHP – C'est l'ancêtre des framework PHP – Annoncé comme l'un des plus matures – Mais aussi très peu utilisé en France ● A quoi ça sert ● Les outils associés
  • 32. CakePHP : pour quoi faire 06/02/2015 32 ● Qu'est-ce que CakePHP ● A quoi ça sertA quoi ça sert – A développer des sites web facilement – Sans connaissance – Transforme PHP en application Middleware – Object Relational Mapping natif (jointure SQL facilité) – Intégration de mapreduce et optimisation de querycache ● Les outils associés
  • 33. CakePHP : les outils 06/02/2015 33 ● Qu'est-ce que CakePHP ● A quoi ça sert ● Les outils associésLes outils associés – Migration PHP facilité par phinx.org – « Let's baking, put the cake in the oven », Bake, générateur de code PHP pour CakePHP – DebugKit : barre d'outil intégrée pour … débugguer le code Bake – CRUD plugin pour ne plus avoir à gérer les exceptions et erreurs
  • 34. CakePHP : pour Techsys 06/02/2015 34 ● Que retenir pour Techsys ? – C'est un framework que l'on peut conseiller – Le projet a l'air sympa pour notre futur intranet – Le mainteneur est cool (au sens ricain, pas au sens français) ● Quels outils regarder ? – CakePHP lui même, à la mode avec toutes ces émissions culinaires  dans le poste de télévision ... ● Et nos clients ?Et nos clients ? – Nos clients utilisateurs de PHP ont encore des produits tout faits (drupal, joomla, ….) et – Sont donc encore loin de ce besoinloin de ce besoin
  • 35. Retour d'expérience ARTE GIE : développement API 06/02/2015 35 ● Les besoins ● Les choix techniques ● Le reste à faire
  • 36. ARTE : les besoins 06/02/2015 36 ● Les besoinsLes besoins – Interface multi-langues – Diffusion de contenu vidéo : Arte +7, Arte Concert, mini-sites pour les émissions, ... – Accès multicanals : Browser, HBBTV, iOS, Android, FirefoxOS – Respect des droits d'auteurs, gestion de la QoS, cloisonnement et sécurité des applications … – OpenData ● Les choix techniques ● Le reste à faire
  • 37. ARTE : les choix 06/02/2015 37 ● Les besoins ● Les choix techniquesLes choix techniques – Symfony 2, REST, MongoDB, RabbitMQ – OpenResty (Reverse Proxy Middleware pour le serveur Web NGINX) – Micro Services (une API par application) – Standard {json:api} : annotations, plusieurs documents en une requête – Sécurité ● Rôle et limites : OAuth2 => retour protocolaires HTTP ● NGINX + LUA (access_by_lua) => scripting pour les API ● Cache Varnish devant les API ● Le reste à faire
  • 38. ARTE : le reste à faire 06/02/2015 38 ● Les besoins ● Les choix techniques ● Le reste à faireLe reste à faire – Être en capacité à accueillir plus de 1500 req/min si plus d'audience – Libération du code du JMSSerializer sur Github – Libération du code Serveur sur Github – Exploitation des métriques avec statsD – Intégration ArteTV dans un module Drupal (presque terminé) – Loadbalancing avec HHVM
  • 39. ARTE : pour Techsys 06/02/2015 39 ● Que retenir pour Techsys ? – Retour sur des choix architecturaux – Importance du respect des standards ● Quels outils regarder ? – OpenResty et son NGINX « adapté » – Hip Hop Virtual Machine (HHVMHHVM) : la virtualisation du Middleware PHP par Facebook ™ ● Et nos clients ?Et nos clients ? – On n'en est pas encore là ….
  • 40. Déploiement continu : un pas de plus vers le DEVOPS 06/02/2015 40 ● Rappels sur le mouvement DEVOPS ● Bonnes pratiques d'intégration continue ● Solutions techniques
  • 41. DEVOPS : le mouvement 06/02/2015 41 ● Rappels sur le mouvement DEVOPSRappels sur le mouvement DEVOPS – Réunion des Développeurs et Opérationnels (sysadmin) pour : ● Réduction du « Time To Market » ● Diminution des risques ● Amélioration continue – « It is not the strongest of the species that survives, nor the most  intelligent, but rather the one most adaptable to change. » (Leon C. Megginson) ● Bonnes pratiques d'intégration continue ● Solutions techniques ● Conclusions
  • 42. DEVOPS : intégration continue 06/02/2015 42 ● Rappels sur le mouvement DEVOPS ● Bonnes pratiques d'intégrationBonnes pratiques d'intégration continuecontinue – Méthode agile proche de SCRUM ou LEAN Startup : sprint de release – Équipe à taille humaine : « pizza team » de Jeff Bezos – Dans l'ordre : déploiement en assemblage, intégration continue, tests et livraison, déploiement en production en permanence – Répéter au maximum pour qu'une mise en production devienne banale ● Solutions techniques ● Conclusions
  • 43. DEVOPS : techniques 06/02/2015 43 ● Rappels sur le mouvement DEVOPS ● Bonnes pratiques d'intégration continue ● Solutions techniquesSolutions techniques – Versionning du code : SVN, Git, … , Github – Se donner les moyens d'une « Infrastructure As A Code » avec Chef, Puppet, Ansible, … – Automatiser les phases de tests : Jenkins ou Travis (appli SAS) – Mettre du monitoring à chaque étape : ELK ou NewRelic (appli SAS) – Déploiement continu : Fabric, Capistrano ● Conclusions
  • 44. DEVOPS : conclusions 06/02/2015 44 ● Rappels sur le mouvement DEVOPS ● Bonnes pratiques d'intégration continue ● Solutions techniques ● ConclusionsConclusions – Le DevOps permet le « feature flippingfeature flipping » : mise en production d'une et une seule fonctionnalité – Le DevOps permet le « Canary TestingCanary Testing » : montée par pallier – Le DevOps autorise le « Design to FailureDesign to Failure » : Netflix a inventé le job de « Chaos Monkey » pour optimiser la robustesse de son code
  • 45. DEVOPS : Techsys est prêt 06/02/2015 45 ● Que retenir pour Techsys ? – Le métier d'adminsys laisse peu à peu la place au DevOps – Les bonnes pratiques ne sont que des rappels évidents et permettent l'amélioration continue et le gain d'argent ● Quels outils regarder ? – Travis, NewRelic, Capistrano ● Et nos clients ?Et nos clients ? – Ils sont à des années lumière de cette réflexion. Ils n'ont pas encore compris l'intérêt du versionning applicatif pour certains. – Les réalisations « Twitter / FlickR / NetFlix » leurs semblent inaccessibles
  • 46. Conclusions 06/02/2015 46 ● Que retenir pour Techsys ? – Les mouvements DEVOPS et LEAN Startup permettent l'intégration continue – Un des moyens d'y arriver et de mesurer tous les indicateurs – De multiplier les services ou les micro services ● Quels outils regarder ? – Monolog, rSyslog, ElasticSearch, Logstash, Kibana, statsD, Graphite, Grafana, Puppet, Chef, packer.io, Kitchen, Capistrano, RabbitMQ, OpenResty, Varnish – MixPanels, Travis, NewRelic, Logentries, IronMQ – Amazon AWS, Docker, Gaudi, HHVM – Les Software Collections RPM, phinx.org
  • 47. Conclusions 06/02/2015 47 ● A lire – Lean Startup par Eric Ries – State Of DevOps Reports par PuppetLabs ● Le clou de la journée – La démo par MicrosoftMicrosoft d'un déploiement agile de PHP dans un environnement AzureAzure, pour héberger en 5 minutes un VM versionnée avec GIT, son serveur Web Iis. Son administration se faisait via un browser Chrome dans une Virtualbox démarrée sur un MacOS. Le tout était permis grace à un HTC Android qui partageait la connexion 3G. J'ai bien lu Microsoft au début ? Oui oui …. – Le second, dans un registre différent, la « karaoke conferencekaraoke conference », une clôture en mode « match d'improvisation » sur des slides improbables.
  • 48. FORUM PHP PARIS 2014 06/02/2015 48 Avez-vous des questions ?
  • 49. FORUM PHP PARIS 2014 06/02/2015 49 Vos idées sont les bienvenues Merci ! +33.6.32.19.76.71 o.duquesne@techsys.fr @techsys_fr @oduquesne

Notes de l'éditeur

  1. <numéro>