Aller au contenu
AFUP AFUP Day 2024 Baromètre Planète PHP PUFA
 

Développer et packager votre application Symfony2 avec Docker et Vagrant

Description

Tester ses développements directement sur sa machine est source du classique "je ne comprends pas, ça marche chez moi". D'un autre côté, Vagrant qui permet d'harmoniser les environnements de développement et de production avec des machines virtuelles VirtualBox, a un impact fort sur les performances de l'environnement de développement. Il manquait une solution intermédiaire… c'est là qu'apparaît Docker et son intégration récente dans Vagrant. Dans un premier temps, nous découvrirons ensemble quels bénéfices découlent directement de la conteneurisation Docker d'une application Symfony2 et les écueils à éviter. Ensuite nous verrons comment automatiser, en quelques itérations, l'approvisionnement de notre conteneur. Enfin, nous nous appuierons sur l'intégration dans Vagrant afin de permettre le déploiement de nouveaux livrables dans les environnements de pré-production et production dans une logique Devops.

Conférence donnée lors du PHP Tour Lyon 2014, ayant eu lieu les 24 et 25 juin 2014.

Informations complémentaires

Vidéo

Le speaker

Thierry MARIANNE

Thierry est développeur chez Theodo, certifié expert Symfony2. Diplômé d'un master en Génie Mathématiques et Informatique de l'Université de La Réunion, il a collaboré aux livraisons d'applications web dans le cadre de métiers tels que la publication scientifique (liée aux technologies de l'information et de la communication), de la logistique (industrie textile) ou de la publicité en ligne (Google AdWords MCC). Il a récemment rejoint le conseil d’administration de l'AFUP. Membre du conseil consultatif de Lifeboat Foundation, il renouvelle régulièrement son inspiration auprès des essayistes du mouvement Indie Web. L'une de ses premières sources de motivation est une forte croyance en la capacité que nous possédons tous à nous réapproprier nos (méta-)données.

Commentaires

Sujet maitrisé, présentation aussi, mais j'ai trouvé le contenu trop dense pour le temps. Malgré ça, ou peut être à cause de ça, difficile de toujours se situer, peut-être un manque de connections entre ce qui est présenté et l'usage réel au quotidien dans diverses situations. Merci !
Bertrand Dunogier, le 24/06/2014
Pour une première conférence, belle prestation. Ca se sent que tu as énormément travaillé pour comprendre et maîtriser ton sujet. Cependant, comme Bertrand, j'aurais apprécié que tu me montres comment tu t'en sers au quotidien : il me semble que tu cherches à recopier au maximum la production, mais je ne pense pas que ta prod soit actuellement sous Docker. En quoi ton docker diffère d'un elasticsearch ou nginx/php-fpm installé par homebrew sur ton mac ? Tu commites le dockerfile dans le repo du projet ? As-tu testé stage1 / joliCi ?
Bastien Jaillot, le 24/06/2014
@Bertrand, @Bastien, @Mathieu Merci ! @Bertrand En effet, la découverte du bon curseur entre les extrêmités "découverte" et "pratique" était un défi intéressant. Le workflow quotidien mérite donc d'être davantage exposé (ça fera sans doute l'objet d'un article de blog... à suivre sur twitter ^^). @Bastien Faire usage de Docker permet d'aller plus loin dans la normalisation des environnements de développement tout en conservant une distance raisonnable avec les environnements cibles, dont celui de production et surtout sans perdre en flexibilité). Pour le moment, je préfère que le(s) Dockerfile(s) soi(en)t ajouté(s) au référentiel du projet de manière à pouvoir embarquer les ressources accédées comme faisant partie du contexte courant au lancement de nouveaux containers. Je n'ai pas encore eu l'occasion de tester stage1/joliCI mais les travaux respectif de @ubermuda et de @JoelWurtz comme ceux de @manuquentin (avec gaudi.io) me font rêver.
Thierry Marianne, le 25/06/2014
Le sujet est indéniablement maîtrisé. On sent que tu es compétent, pas de pb là-dessus. Par contre, ton discours manquait un peu de fluidité, tu avais trop de choses à dire pour le temps qui t'étais alloué et, je pense que tu auras tiré cette conclusion de toi-même ;), évite à l'avenir les démos pour lesquels tu es dépendant d'internet. Malgré ces points négatifs, j'ai pas mal appris, mieux apprécié ce que Docker peut apporter pour moi et le changement de paradigme derrière.
Vincent Lepot, le 25/06/2014
Merci @neozibok, je vais retenir ces points comment autant d'axes d'amélioration et suis très heureux d'avoir pu transmettre certaines idées à propos de Docker :)
Thierry Marianne, le 25/06/2014
Bonne conf, bien préparée donc bien maitrisée. Malheureusement la démo n'a effectivement pas eu l'effet escompté.
Michaël Thieulin, le 26/06/2014
Merci @Michaël, j'ai eu envie de tenter ma chance et c'est vrai que si j'avais trouvé un moyen de mettre en cache les dépendances JavaScript, mon script de build aurait été plus rapide (n'aurait pas été interrompu la première fois). Cependant les containers ont été lancés sans encombre et finalement seul le build shell avait échoué, ce qui n'était pas plus mal dans la mesure où l'on peut souhaiter s'en débarrasser au plus vite au profit d'outils de configuration comme fig ou gaudi :P
Thierry Marianne, le 26/06/2014
La plupart des ressources ayant servi à nourrir la démo ont été mises à disposition à cette adresse : https://github.com/thierrymarianne/symfony2-docker-vagrant On peut imaginer une tendance selon laquelle un Dockerfile adapté serait ajouté pour chacun des projets majeurs présents sur github de la même manière qu'on peut découvrir un composer.json pour la gestion des dépendances
Thierry Marianne, le 26/06/2014
bonne conf, un peu difficile à suivre pour moi par moments, mais ça a contribué à faire grandir mon envie d'utiliser docker au moins pour le dev, merci!
Nicolas Dermine, le 28/06/2014
Merci @nicoder, je crains que mes propos n'aient été suffisamment limpides à l'écrit ou à l'oral par certains moments. N'hésite pas à me transmettre les numéros des pages de la présentation qui t'apparaîtraient comme étant les moins évidentes afin que je tente de les mette à jour peut être par découpage ou complétion.
Thierry Marianne, le 28/06/2014