Forum PHP Paris 2009

Date de publication : 25/11/2009

Par Antoine HORDEZ
 

Résumé de l'événement "Forum AFUP 2009".
7 commentaires Donner une note à l'article (5)

               Version hors-ligne (Miroir)

I. Introduction
II. Le Forum PHP, à quoi ça sert ? Qui y était ?
II-1. Les stands d'entreprises :
Alter way
Sensio Labs
Zend
II-2. Les projets PHP
II-3. Les intervenants
III. Les conférences
III-1. Programme
III-2. Zoom : L'avenir de LAMP
Memcached
CouchDB
Gearman
III-3. Zoom : Un web ouvert avec PHP
III-4. Zoom : Working with a virtual organization
III-5. Zoom : MariaDB
III-6. Zoom : Monitoring d'applications PHP
APM : Alternative PHP Monitor
PINBA : PHP is not a bottleneck anymore.
III-7. Zoom : Oui PHP est industriel
IV. Conclusion


I. Introduction

Les jeudi 12 et vendredi 13 novembre 2009 s'est tenu, au centre des congrès de la cité des sciences et de l'industrie à Paris, la huitième édition de cet évènement incontournable de la communauté PHP : le "Forum PHP Paris 2009 ".

L'AFUP (Association Française des Utilisateurs de PHP), en partenariat avec LeMug (Le MySQL User Group) a organisé ce huitième forum PHP de Paris :

"C'est un événement professionnel consacré à la plate-forme PHP et aux technologies connexes. Il rassemble les auteurs de logiciels, les experts internationaux et les professionnels de la région. L'objectif est de montrer le dynamisme français en termes de technologies de pointe sur Internet".
Pour ceux qui auraient raté cet évènement ou tout simplement pour les curieux je vais tenter de revenir sur ces deux jours riches en éléphants.

Entrée du Forum
Entrée du Forum
Quelques liens :


II. Le Forum PHP, à quoi ça sert ? Qui y était ?

Le Forum PHP est un lieu de formation avec de nombreuses conférences sur l'actualité et l'avenir de PHP et MySQL, mais aussi un lieu de rencontres :

  • Quelques entreprises de la sphère PHP étaient présentes et/ou sponsors de l'évènement.
  • Des projets PHP avaient aussi leurs stands.
  • Des intervenants d'entreprises diverses ont proposé des conférences.
Un petit tour d'horizon des principaux intervenants. Désolé, mais je ne serai pas exhaustif, car je suis condamné à oublier des gens.


II-1. Les stands d'entreprises :


Alter way

Alter Way : Le groupe Alter-Way est un acteur majeur du monde du libre. Il propose la totalité des services attendus par les entreprises ayant recours au logiciel libre : conseil, intégration, développement, infogérance, maintenance, formation, hébergement, etc.

Le stand d'Alter Way sur le Forum PHP 2009
Le stand d'Alter Way sur le Forum PHP 2009

Sensio Labs

Sensio Labs : Fort de son expérience dans le développement d'applications web à haute valeur ajoutée, mais aussi à la base du célèbre Framework Symfony (créé par Fabien Potencier qui était lui aussi présent), Sensio Labs était présent.

Le stand de Sensio Labs sur le forum PHP Paris 2009
Le stand de Sensio Labs sur le forum PHP Paris 2009

Zend

Zend : "La PHP company ", l'entreprise à l'origine du langage PHP était présente. Zend propose différents services et produits parmi lesquels : des certifications, Zend Server, Zend Framework, Zend Studio, Etc.

Le stand de Zend sur le forum PHP Paris 2009
Le stand de Zend sur le forum PHP Paris 2009

II-2. Les projets PHP

Quelques projets PHP étaient présents sur le forum pendant ces deux journées :

  • CakePHP-fr : Framework de développement rapide PHP.
  • Drupal : Système de gestion de contenu (CMS).
  • FineFS : FineFS est un système de fichiers redondé, qui permet de créer très simplement des clusters de données.
  • freedom ecm : Un système de GED collaborative.
  • Hoa : Framework de développement PHP.
  • Jelix et HavefnuBB : Framework de développement PHP. HavefnuBB est un système de forum reposant sur Jelix.
  • odtPHP : odtPHP est une bibliothèque orientée objet pour PHP 5+. Elle permet de générer automatiquement des documents OpenOffice textes à partir de modèles.
  • PIC PHP SQLI : La plateforme d'intégration continue PHP SQLI est un projet Open Source en constitution. Il vise à intégrer de façon modulaire les meilleurs outils d'industrialisation existants dans un contexte d'intégration continue, et à en créer des nouveaux.
  • Piwam : Un outil pour gérer votre association.
  • Pollen CMS : Système de gestion de contenu (CMS).
  • PrestaShop : Solution E-Commerce open source.
  • WampServer : WampServer permet d'installer facilement PHP, Apache et MySQL sous Windows.

II-3. Les intervenants

La liste est longue mais disponible à l'adresse suivante : http://www.afup.org/pages/forumphp2009/conferenciers.php.

Vous remarquerez la présence de quelques "stars" du monde PHP comme :


III. Les conférences

Le grand amphithéâtre du Forum PHP 2009
Le grand amphithéâtre du Forum PHP 2009

III-1. Programme

Le forum PHP c'est trois salles de conférences ou s'enchaînent simultanément trois conférences toutes les heures (avec des temps de pause bien entendu histoire de boire un café ou s'échanger des cartes de visite).

Voici le programme complet de ces deux journées (le descriptif de toutes les sessions est disponible ici). J'effectue dans la suite de ce reportage un zoom sur certaines conférences auxquelles j'ai assisté (étant moi-même une entité indivisible je ne pouvais bien entendu pas tout voir, il a fallu choisir).

  • L'avenir de LAMP.
  • LeMug : Retour d'expérience MySQL chez Orange Business Services.
  • Comment améliorer PHP ? avec un préprocesseur !
  • Un web ouvert avec PHP.
  • LeMug : MySQL native driver for PHP : Les améliorations de la stack.
  • VIM puissance PHP = Vi Improved !
  • Optimisations des performances Magento avec Zend Server.
  • LeMug : Au secours ma base de données fait ramer mon application !
  • Services web RESTful en PHP.
  • Meilleur support, Cloud et Open Source : le point sur PHP et Microsoft.
  • LeMug : working with a virtual organisation.
  • Migration de technologie J2EE vers PHP chez M6Web.
  • LeMug : MariaDB, the future of MySQL.
  • Jouons avec PHP5.3
  • Motiver ses développeurs.
  • Authentification forte.
  • Une vie sans JOIN.
  • Monitoring d'applications/environnements PHP : APM et Pinba.
  • Réplication MySQL : retours d'expérience.
  • Optimiser son code pour le référencement.
  • Oui ! PHP est industriel !
  • Réalisation d'applications Desktop Windows/Mac avec PHP.
  • Multimédia & JukeBox 2.0
  • Flex et PHP.
  • Apache pour le développeur PHP.
  • Bonnes pratiques de développement en PHP.
  • PHP and MySQL : a good match.
Je vous propose maintenant un petit zoom sur certaines conférences auxquelles j'ai pu assister.


III-2. Zoom : L'avenir de LAMP

Vous le savez tous LAMP est la combinaison de Linux, APACHE, MySQL et PHP. Damien Seguy nous propose dans cette conférence d'ajouter des briques à ce quatuor afin d'améliorer la puissance et la qualité de nos applications PHP.

Voici la description des quelques briques proposées :


Memcached

Une solution pour répondre à la montée en charge d'un serveur web est l'utilisation d'un cache. Memcached est un système de cache partagé. Il permet entre autre de partager un cache entre plusieurs serveurs web.

Memcached permet de stocker et récupérer rapidement en mémoire :

  • objets
  • résultats de requêtes SQL
  • fichiers distants (RSS)
  • sessions
  • etc.
Des fonctionnalités d'authentification et de sécurité sont disponibles. Ce système est déjà utilisé à l'heure actuelle par de nombreux et célèbres sites comme : Youtube, Wikipedia, Amazon, SourceForge, Twitter, Facebook, etc.

Memcached est un projet open source que vous pourrez retrouver à l'adresse suivante : http://memcached.org/.

La page Wikipédia de Memcached : http://en.wikipedia.org/wiki/Memcached


CouchDB

CouchDb est un serveur de base de données orienté "document". C'est un projet de la fondation Apache. CouchDB n'est pas un remplaçant des bases de données relationnelles ni destiné à être utilisé comme une couche de persistance objet. Il n'y a ni schéma, ni tables. CouchDB gère une collection de documents JSON. Le système est accessible via une API Restful HTTP/JSON et il est possible d'écrire des vues en JavaScript afin de récupérer plus aisément les données.

C'est assez similaire à d'autres projets comme MongoDB, Cassandra, SimpleDB, etc. Le projet est utilisé entre autre par Facebook, Digg et Amazon.

Le site officiel de CouchDB : http://couchdb.apache.org/
. La page wikipedia : http://en.wikipedia.org/wiki/CouchDB.


Gearman

Afin d'améliorer la puissance de traitement de nos applications PHP, un projet nommé Gearman a vu le jour. C'est un serveur de tâches qui réparti ces dernières entre esclaves et permet ainsi de désynchroniser les traitements, de les déléguer à d'autres serveurs, d'autres applications.

Le système est fait de trois composantes :

  • Serveur : distributeur de tâches
  • Client : tout type de client (PHP, Java, ligne de commande, etc.)
  • Esclave : les esclaves font le boulot (ex script PHP).
Gearman est donc un projet Open source, multi-langage, flexible (pas d'architecture imposée), rapide, embarquable (rapide et léger, Gearman peut aisément s'intégrer dans toute application existante).

Le site officiel de Gearman : http://gearman.org/.
La page wikipedia : http://en.wikipedia.org/wiki/Gearman.

Il existe je suppose bien d'autres composants permettant d'améliorer l'environnement LAMP, ces trois si sont en tout cas très prometteurs et déjà largement reconnus par nos sites web préférés.


III-3. Zoom : Un web ouvert avec PHP

Eric Daspet nous aide avec enthousiasme à répondre aux questions suivantes :
"Comment être un vrai candidat du web ? Quelles différences entre un site internet et un site web ?"

Eric Daspet prend donc position contre les restrictions qui rendent le web d'aujourd'hui moins ouvert. Par analogie : un site internet = pelouse interdite, un site web = pelouse autorisée. Explications :

" Toute création de lien hypertexte avec ce site est strictement interdite sans autorisation écrite préalable ". Cette phrase, Eric Daspet aimerait ne plus jamais la lire. Un site web ( != site internet), est un site qui sait s'ouvrir aux autres sites web, aux internautes. Afin de mettre cela en pratique, retour sur tous les outils qui permettent aujourd'hui de faire un vrai site web ouvert. Chaque outil, chaque composant, chaque technique peut être mise en place aisément à l'aide de PHP :

  • RSS : « Le flux RSS sur le site de votre entreprise est un minimum »
  • ICS : ICS est un format de fichier qui permet de publier des calendriers ICalendar sur internet. Ce format est reconnu et permet par exemple d'être lu par Outlook ou Google calendar.
  • RDFa : RDFa est une technique permettant de mettre en oeuvre le web sémantique. Une page web décrite en RDFa peut ainsi par exemple facilement être transformée en un format RDF.
  • µFormats : Cette technologie déjà utilisée par Google et Yahoo permet à l'information destinée aux utilisateurs finaux (XHTML, XML) d'être traitée automatiquement beaucoup plus facilement par des applications tierces.
  • Les microformats permettent d'attacher de la sémantique aux pages web. Ces métadonnées sont ajoutées uniquement à l'aide d'attributs ou class XHTML ou XML.
  • Il est désormais plus facile, par exemple pour un plugin de navigateur, d'extraire de l'information de la page et de la rediriger vers une autre application, comme un carnet d'adresse par exemple.
  • OpenID : OpenID est un système d'authentification décentralisée qui permet l'authentification unique ainsi que le partage d'attributs. Il permet à un utilisateur de s'authentifier auprès de plusieurs sites sans avoir à retenir un identifiant pour chacun d'entre eux, mais en utilisant à chaque fois un unique identifiant OpenID.
  • OAuth : OAuth est un protocole qui permet l'authentification à une API sécurisée de façon simple et standard.
  • Pour les développeurs accédant à une API, oAuth est une façon de publier et d'interagir avec des données protégées.
  • Pour les développeurs fournissant une API, oAuth permet de donner accès aux données tout en protégeant le pseudo et mot de passe des utilisateurs.
  • API : « Twitter seul c'est nul. Mais ils interagissent avec les autres, ils ont autorisé les autres à interagir avec eux ». Conclusion : ouvrez-vous au web, ouvrez le web à vous. Développez et offrez une API au reste du web pour utiliser vos applications.
  • Exports : Pour les sites applicatifs, offrez la possibilité aux utilisateurs d'exporter leurs données. De récupérer par exemple des csv avec leurs contacts, leurs commandes, leurs filtres et préférences, etc.
  • D'autres moyens d'obtenir un web ouvert existent. On notera RDF + SPARQL, Open Social, YQL, BOSS, etc. Des licences aussi comme «Creative Commons».
Ces outils ont pour ambition de faciliter la vie de l'utilisateur. D'après Eric Daspet "Ce n'est pas l'utilisateur qui fait tourner le site, mais le site qui doit faire tourner l'utilisateur ". " Tant que le site ne sait pas communiquer avec l'extérieur il ne sera pas ouvert. Si un concurrent fait le même site que vous mais ouvert, les internautes iront chez lui ".


III-4. Zoom : Working with a virtual organization

Quand MySQL a été vendu à SUN, l'organisation représentait 400 personnes dans 25 pays. Au début l'idée était que les gens travaillent de chez eux. Chacun est chez soi et un peu isolé. Pour que cette organisation fonctionne, MySQL a utilisé des outils et une culture d'entreprise. Stéphane Varoqui de SUN revient sur l'organisation d'une société pas comme les autres.

Avantages d'une société distribuée. L'avantage de la société virtuelle est que l'on peut embaucher les meilleurs partout dans le monde. On le peut, car on leur propose un cadre de travail virtuel. Les commerciaux ont toujours travaillé de chez eux. Phoning et mailing. Au début de MySQL il était très rare qu'un commercial se déplace chez un client. Cela représente moins de charge financière. Un des problèmes avec les ressources humaines est qu'il faut cibler les gens les plus à même de travailler dans ce type d'organisation. C'est compliqué de trouver la bonne rémunération pour la personne en fonction de l'endroit où elle vit (le salaire n'est pas le même en France, en Allemagne en Suisse ou en Afrique du sud). En général les gens sont assez motivés pour travailler dans une société open source et acceptent ces différences salariales.

Comment manager une société virtuelle ? Il y a des limites. Lorsque MySQL s'est étendu aux USA il a fallu trouver un siège social pour le management stratégique. Aujourd'hui il existe deux centres de management : un en Suède et un aux USA.

Culture d'entreprise : "Passion et désaccord". Le conférencier cite : "Je peux même virer quelqu'un s'il est toujours d'accord avec moi. S'il ne se passe rien la société virtuelle a tendance à s'effriter. La culture de l'opinion et du 'je ne suis pas d'accord' est encouragée.". Mais une fois que la décision est prise, après débat, il faut s'y conforter. Des erreurs ont été commises qui se sont d'ailleurs ressenties dans la communication de MySQL.

La confiance. On ne peut pas travailler avec des gens dans une société virtuelle si la confiance n'est pas au rendez-vous. La confiance est primordiale. Il faut les laisser s'épanouir et se développer en fonction des qualités de chacun dans l'équipe.

Leadership : Du fait que les employés travaillent tous de manière séparée et indépendante, il faut un management dans lequel les gens croient. Il faut trouver le bon manager capable de motiver les équipes virtuelles. "Il faut une star".

Comment garder un bon équilibre entre sa vie de famille et sa vie professionnelle ? "On est tous un plus ou moins geek, comment fait-on pour ne pas griller sa vie quand on est sollicité par ce réseau virtuel ?" Une des clauses du contrat de travail de MySQL était d'avoir un bureau chez soi dédié au travail, un espace à part.

Est-ce que je suis un bon candidat pour une société virtuelle ? Parler anglais, avoir de fortes aptitudes à communiquer sont des composantes essentielles des profils.

Activités et team building. Afin de souder les équipes et de réduire un peu plus la frontière entre une organisation virtuelle et une qui ne l'est pas des activités de team building sont proposées :

  • Meeting avec toute la compagnie
  • Team meeting
  • Des budgets de voyage
  • Une mailing list @mysql.com pour raconter sa vie
  • Journées sportives
  • Journées culturelles
Outils de collaboration. Ils sont indispensables au travail collaboratif :

  • Email, mailing-list, archives. Tout est ouvert, tout le monde a accès à tout. Tout collaborateur qui arrive a accès à tout depuis toujours.
  • L'ensemble des tâches précises à faire dans MySQL sont décrites dans l'intranet puis même maintenant sur internet
  • Intranet, wiki
  • IRC/chat
  • Skype
  • Conférence call (Webex, etc.)
  • Issue tracker (Eventum, Bugdb, Worklog, etc)

III-5. Zoom : MariaDB

Tout le monde le sait MySQL a été racheté par Sun, puis par Oracle. À l'origine de MySQL, le père fondateur : Michael Widenius aka Monty. Afin de sauver l'indépendance et la liberté de la première base de données open source du monde, Monty a décidé de créer "l'Open Database Alliance", un consortium chargé du développement de MariaDb. MariaDb est un fork, un clone de MySQL 5.1 sous licence GPL. MariaDB est 100% compatible avec MySQL. Monty est donc venu cette année au Forum PHP afin de nous présenter son projet.

Michael Widenius aka Monty, le père de MySQL et MariaDB
Michael Widenius aka Monty, le père de MySQL et MariaDB
Je vous laisse découvrir ma sélection de liens sur le sujet déjà largement couvert sur Internet :


III-6. Zoom : Monitoring d'applications PHP

Davide Mendolia et Patrick Allaert nous présentent deux projets de monitoring d'applications PHP : APM et Pinba.

Pourquoi le monitoring d'applications PHP ?

  • Besoins en termes de disponibilité grandissants.
  • Soucis d'économies
  • User Experience : l'utilisateur doit être content d'utiliser le site, il ne doit pas être frustré.

APM : Alternative PHP Monitor

APM est une extension de PHP dédiée aux erreurs. Elle permet d'afficher dans une interface web pour le moins sympathique les erreurs PHP détectées (ce n'est pas un reader de fichier log qui embourberait l'application dans de très lents accès disques). L'outil permet aussi de détecter les scripts anormalement lents à s'exécuter. Toutes ces informations sont stockées dans une base SQLite.

Exemple : L'interface d'APM
Exemple : L'interface d'APM
Pourquoi APM ?

  • LAMP + APC + Xdebug + APM.
  • C'est la brique manquante dans le paysage du logiciel libre
  • Problèmes de performances indirectement liés à Zend Platform, besoin d'une solution à l'impact minimum.
Des fonctions PHP sont disponibles pour accéder aux informations en dehors de l'interface d'APM. Exemple :

Void apm_get_events(void) : imprime une table html remplie
Pour l'instant la seule chose effectuée en cas d'erreur est un stockage en base sqlite3. Pour le futur :

  • SNMP, courrier électronique, commandes paramétrées, etc.
  • Interface avec MySQL et d'autres SGBD
Plus d'informations sur le site du projet : http://code.google.com/p/peclapm/.


PINBA : PHP is not a bottleneck anymore.

L'objectif de cet outil est de pouvoir monitorer son application sans avoir d'impact, sans modifier le code. C'est un serveur de collecte de statistiques de performance. Il fonctionne même en environnement de production et est très utile quand on utilise un grand nombre de serveurs. Pinba accumule et traite des données envoyées via UDP (plus performant) par des processus PHP. Il affiche ces informations dans une interface sympathique et permet aussi l'édition de rapports. Pinba permet même en environnement de production de détecter, par exemple, les goulots d'étranglement de vos applications.

Exemple de graph généré par Pinba
Exemple de graph généré par Pinba
Plus d'informations sur le site du projet : http://pinba.org/.


III-7. Zoom : Oui PHP est industriel

Damien Seguy et Olivier Hoareau nous prouvent que oui, PHP est industriel. Malgré sa réputation sulfureuse, un certain nombre de bonnes pratiques, d'outils, de méthodes existent pour faire de PHP un outil industriel et productif en entreprise.

Résumé des principaux composants d'une usine de développement PHP efficace :

  • Travailler en équipe : se synchroniser (Subversion, cvs, git, etc.), utiliser des outils (Zend studio, etc.) est primordial.
  • Définir des conventions : pour le codage, la langue, les commentaires, etc.
  • Cadrer les développements : de nombreux frameworks sont disponibles aujourd'hui et permettent de se cadrer, de choisir un standard.
  • Améliorer grâce au feedback, être à l'écoute
  • Capitaliser (JIRA, TRAC, Redmine, etc.) : on peut suivre l'évolution des développements dans ce type d'outils
  • Intégration : il faut s'intégrer dans le système d'information qui nous entoure.
  • Prendre en compte les standards de l'entreprise
  • Maitriser les risques en découplant les projets.
  • Prévoir la montée en charge
  • Ecrire des tests : des tests cas nominaux, des tests d'erreurs et des tests aux cas limites.
Plus d'informations dans le livre blanc de Damien Seguy et Jean-Marc Fontaine : http://www.alterway.fr/publications/livre-blanc-industrialisation-php.


IV. Conclusion

Beaucoup de choses à dire, mais impossible de tout voir pour ce Forum PHP 2009 très riche. Je ne peux que vous recommander de vous y rendre l'année prochaine. J'espère avoir été le plus objectif possible dans ce reportage même si ce n'est pas toujours facile.
J'aurais aimé en voir plus, en dire plus, mais vous trouverez beaucoup d'informations sur le net, tout particulièrement sur les sites web et blogs des différents conférenciers.

Vous pouvez retrouver les interviews sur PHPTV.
Et aussi les photos de l'événement sur flickr.

N'hésitez pas en tout cas à me faire part de vos suggestions et remarques.
Notifiez-moi toute erreur que j'aurais pu commettre dans ce reportage, je m'empresserai de la corriger.



               Version hors-ligne (Miroir)

Valid XHTML 1.0 TransitionalValid CSS!

Copyright © 2007 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée.

 
 
 
 
Partenaires

Hébergement Web