Diaporama sur le déploiement dans l’IC

Dans le cadre de l’AFUP Marseille dont je fais partie, j’ai organisé un topo sur le déploiement dans les processus d’intégration continue, Deployer et Jenkins en particulier 🙂

Bref résumé :

Aujourd’hui, le terme « déploiement » est un incontournable dans le métier des devOps. Comment en sommes-nous arrivés à intégrer au mieux les mises en prod ? Faisons un bref historique pour ensuite terminer sur les nouvelles techniques de déploiement de nos applications PHP et leur mise en place dans l’intégration continue.

Retour sur le PHP Forum 2015 – Jour 2

Ce deuxième jour a suivi son lot de conférences, et s’est terminé symboliquement par une table ronde, regroupant l’essentiel de la Core Team de PHP : Pascal MARTIN, Julien PAULI, Remi COLLET, Zeev SURASKI, et bien entendu le créateur de PHP himself : Rasmus LERDORF, pour discuter de la sortie de PHP7, et répondre aux différentes questions.

Mon avis général sur cet évènement est identique à celui de l’an passé, toujours une excellente ambiance, des prises de contacts. J’ai juste déploré les thèmes des ateliers de cette session, que je n’avais pas trouvés en adéquation avec ce qui m’intéressait.

Voici donc mes comptes-rendus des conférences auxquelles j’ai assisté ce deuxième jour, entre plusieurs visites de stands, de morceaux de gâteau, de pop-corn, de tests PHP, et de selfies (si je me trompe, ou si vous avez des remarques, n’hésitez pas à commenter) :

ZF3 le futur de PHP – Sophie BEAUPUIS

ZF3 est défini comme un ZF2 « nouvelle génération ». Il est centré sur PSR7 et les « middlewares ». Il se fait remarquer par ses performances, sa facilités d’utilisation. Le framework peut en plus, se séparer en composants réductibles.

Depuis la version 2.5, chaque composant de zend possède son propre repository, chaque élément est versionné de façon indépendante. Un package de framework est en fait un méta-package faisant références à différentes versions des composants. Ont changé le gestionnaire de services, le gestionnaire d’évènements, et les composants MVC en conséquence. Le gestionnaire de services est quatre fois plus rapide, compatible avec ZF2 pour la plus grande partie, et les noms canoniques ont été supprimés. L’apport majeur est le Container Interop : on peut utiliser la même factory pour différents services car le nom du service est passé en paramètre (en tant qu’utilisatrice de ZF2, je ne peux que dire : « YALLAAAAAA »). Adieu les factories pour chaque service !

Mon avis : une conférence qui m’était incontournable en tant que Zend-Addict. J’ai été on ne peut plus soulagée à l’idée de réduire le nombre de mes factories redondantes. Comme pour Symfony, on apprend ici que la version 3 est quasi-compatible avec la version 2.

L’architecture événementielle chez Meetic Robin Matthieu – Meetic / Pineau Benjamin

Meetic est devenu un incontournable des sites de rencontres. Cette application web est accessible en tant que site web desktop, mobile web, et applications natives.

Il y a eu un projet de refonte sous Angular JS.

Aujourd’hui l’application est composée de différents éléments comme une API publique, une API Microservices en Symfony 2, et des bases de données.

Des flux asynchrones doivent être gérés pour envoyer des emails, faire des notifications « Push », des manipulations sur des images, et de la modération. Ceci pose des limites en matière de traitements et de possibilité de rejouer des évènements. Les interactions entre les membres doivent être pris en compte : consultation de profils, « flashs », messages, etc …

Agnostic framework for the win – Jonathan Reinink

La meilleure façon d’utiliser un framework est de faire une application dont les éléments sont réutilisables, car un code réutilisable devient un code qu’on n’a plus besoin d’écrire.

Entre 1994 et 2004, Vanilla PHP était en vogue. On avait également recours aux fichiers Zip, puis est venu PEAR. A partir de 2005, l’ère des frameworks est arrivée, leur avantage est de pouvoir travailler rapidement, cependant, les développeurs ont continué à téléchager des Zips. Depuis 2013, c’est composer et ses packages qui est le must. En effet, composer permet d’updater des packages déjà téléchargés, de résoudre les dépendances, et les classes autoloadées.

Jonathan Reinink nous parle également du projet The PHP Framework Interop Group, accessible sur php-fig.org qui définit les PSR.

Mon avis : un bon bilan sur ces dix dernières années de la gestion des packages PHP. Composer est en effet l’outil plébiscité du moment, tant par son efficacité que par sa polyvalence (utilisé pour Symfony, ZF, et indépendamment).

Un éléphant dans le monde des licornes – Moquet Matthieu

Chez Blablacar, la mise en production se déroule ainsi :

Master → branch → CR+CI → staging → merge → mise en prod

Les tests sont 70% unitaires, 30% d’intégration et fonctionnels.

Les ORM, pour une grosse appli, ce n’est pas une bonne idée. En programmation évènementielle, on va privilégier les Bundles et les Events.

Matthieu nous explique l’utilisation de Monolitic, de Gateway et de Cassandra (utilisation indirecte d’une brique JAVA), et nous renvoit sur le site de BlaBlaTech.

MySQL 5.7 & JSON: New Opportunities for Developers – Ulin Thomas

Cette nouvelle version du fameux SGBD se caractérise par sa performance, sa scalabilité et sa maintenabilité.

Thomas Ulin nous fait alors une série de démonstrations pour nous montrer les features JSON : en effet, on peut maintenant extraire des données sous ce format : JSON_EXTRACT(colum_name, #type) ;

On peut également aller chercher des données JQuery pour les infiltrer dans des requêtes. D’après une variable $(‘#type’), par exemple, on peut créer ce genre de requête : SELECT DISTINCT feature->  »$.type » as json_extract FROM features.

Les utilisateurs peuvent également créer leurs propres plugins.

Mon avis : une conférence ultra-fournie qui est passée très vite. Le sujet est néanmoins ultra-interessant pour tout développeur web, et mérite une découverte par soi-même du potentiel de cette version, en pratique, plus en profondeur.

 

Photo une : Tirée du blog de Rémi Collet http://blog.remirepo.net

J’ai testé : le PHP Forum de Paris

elePHPant
Vous avez le bonjour de l’éléPHPant !

Le PHP Forum, c’est en fait LE pèlerinage pour tout développeur passionné par son métier et qui veut approfondir d’avantage ses connaissances. Si vous êtes développeur, et que ça ne vous ai jamais venu à l’idée, le mois d’octobre venu, de venir voir ce qu’il s’y passe, c’est que vous êtes un faux développeur, que vous avez choisi cette voie par dépit professionnel et que vous programmez toujours en PHP4 (rhô la vilaine que je suis).

Le PHP Forum est un évènement sur deux jours qui a lieu vers la fin d’octobre au Beffroi de Montrouge. Il a son petit prix (un peu plus de 200 euros), mais si vous souscrivez à l’AFUP, qui est l’Association Française des Utilisateurs de PHP (25 euros), vous aurez droit à une réduction de 100 euros … donc non seulement vous payez moins cher mais en plus, vous aurez droit à entrer dans la communauté et à participer via des mailings-lists au développement des évolutions du langage. Et ça, j’aime. L’inscription vous donné également le droit réserver votre place à un (seul, hélas) atelier qui prend une demi-journée, et qui vous permet de vous ouvrir à des outils que vous ne connaissiez pas. Personnellement, j’ai souscrit à l’atelier « Usage avancé de Jenkins comme outil d’amélioration/intégration continue ». Ce qui me permet d’avoir vu en diagonale le potentiel de ce dernier.

Bref, arrivés sur les lieux (je vous conseille de venir une demi-heure à l’avance sinon vous allez pleurer les premières minutes auxquelles vous n’assisterez pas), vous voyez une belle file d’attente, avec plein de geeks, majoritairement masculins à 98,5% , barbus à 70%, et avec un portable ou une tablette à 100%, Apple à 65%. On s’immisce donc d’entrée à l’ambiance de l’évènement.

Une fois que vous arrivez à l’accueil, on vous remet votre badge, qui ne vous quittera

Haouuu la classe avec les lunettes
Haouuu la classe avec les lunettes Jolicode

plus, ainsi qu’une pochette-surprise avec plein de jolies choses dedans :
– 1 t-shirt pour se la péter au bureau
– 1 bilboquet
– 1 chargeur de smartphone USB
– 1 paire de lunettes de soleil <Jolicode />
– 1 magazine
– des stylos
– des prospectus avec des bons de réductions (notamment un bon SensioLabs pour découvrir son nouveau débugger).
– des bonbons à la menthe « stay PHPresh » (I’m serious)

Pendant les premières minutes qui précèdent le discours de bienvenue, vous pouvez donc découvrir avec émerveillement ce package … puis vous pourrez choisir vos confs, auxquelles vous assisterez pendant deux jours entiers. En général, deux conférences ont lieu en simultané, donc vous avez l’embarras du choix. Si vous regrettez de ne pas être doté du miracle du dédoublement, rassurez-vous, toutes les conférences sont enregistrées et diffusées sur le chan Youtube de l’AFUP.

Pour ma part, j’ai pu : découvrir Drupal 8 et son croisement avec Symfony 2, approfondir Cake PHP, tout su sur le déploiement des tests unitaires, et découvert la vraie communauté WordPress, et j’ai également pu découvrir Docker.

Un exemple de conférence à laquelle j’ai assisté

Entre deux conférences, on peut aller se promener autour des stands en buvant un café, allez critiquer Zend auprès de SensioLabs, et critiquer SensioLabs chez Zend (personnellement je préfère de beaucoup Zend), et apprécier que Microsft puisse lâcher ASP, le vilain petit canard du monde web.

A la fin, en guise de clôture, vous assisterez à un débat qui aura pour sujet les évolutions du langage PHP. En espérant d’ailleurs que PHP7 puisse voir enfin le jour avant l’année 2016 …

En bref

Le Graal qui permet d'assister à THE event
Le Graal qui permet d’assister à THE event
  • J’ai aimé : l’ambiance geek, l’intérêt des sujets des conférences, les ateliers en petits groupes de 20, qu’on nous offre le repas de midi, le contenu de la pochette-suprise.
  • J’ai moins aimé : qu’on ne puisse assister qu’à un atelier (normal, pour avoir un nombre adéquat de personnes par atelier), y’a pas toujours du café quand on le souhaite, et y’avait pas de peluches élePHPant !!!
  • Y retournerais-je ? carrément.