Configurer OpCache dans Docker

Image utilisateur

Comme annoncé dans un précédant article, j'ai récemment migré mon site web vers une infrastructure Docker.

J'ai donc utilisé un conteneur PHP tout simple, mais plutôt que de partir d'un conteneur standard Ubuntu ou Debian et d'y installer PHP via les dépôts, j'ai préféré utiliser le conteneur officiel PHP proposé par Docker. Je l'ai préféré à une solution standard, car il propose plusieurs versions de PHP (5.4, 5.5 et 5.6) et qu'il est très facile d'y installer diverses extensions. 

Après une semaine, les résultats étaient plutôt positif, mais lors d'une vérification avec un simple phpinfo, je me suis rendu compte que par défaut, le cache opcode pourtant activé par défaut depuis php5.5 ne l'était pas. Bref, les performances étaient quand même pas génial, avec une moyenne de 15 requêtes traités par seconde.

Passage sous Docker

Image utilisateur

Enfin...

Après plusieurs mois à me demander si c'était ou non une bonne idée, c'est fait, je suis passé à Docker pour héberger mon blog.

Il a fallu changer de serveur puisque j'étais pour le moment sur un VPS OpenVZ sur lequel il n'était pas possible de changer de noyau Linux, chose obligatoire pour pouvoir installer Docker. Je suis donc passé sur un VPS VMWare sur lequel j'ai pu modifier le noyau et me lancer dans la virtualisation par conteneur.

Mettre en place un packagist local

Image utilisateur

Dans certains cas, notamment dans les entreprises ou pour des projets personnels, il arrive souvent que des librairies ou des Bundles Symfony2 doivent rester en interne ou n'ont tout simplement pas d'intérêt à être distribués. On se prive alors d'outils très pratique comme Composer et Packagist. Pourtant, il existe des solutions pas si complexe à mettre en place pour permettre une utilisation de Composer avec des librairies internes.

Créer votre système d'accroche pour Gitlab

Image utilisateur

Dans le cadre d'un développement, un logiciel de versionning de code est souvent utilisé car il permet de garder les différentes versions du logiciel et de faciliter son déploiement sur des serveurs quand il s'agit de projet web.

Dans le cadre de mon travail, j'ai eu à mettre en place un système d'accroche ou hooks lié au logiciel Gitlab (logiciel open source proposant les mêmes fonctionnalités que github). Jusqu'à récemment, le logiciel de gestion de code utilisé était Subversion, mais les nouveaux projets étaient gérés avec Gitlab (et donc git). Jusqu'à présent, les commits se faisaient depuis l'ordinateur du développeur puis celui-ci allait faire les commandes de pull manuellement sur les différents serveurs (test, production, parfois plusieurs serveurs pour les systèmes en cluster).

Pour un projet, j'utilisais donc Gitlab, mais étant encore au stade de développement et ayant donc des modifications fréquentes, je ne me voyais pas me connecter plusieurs fois par jours sur le serveur afin de déployer les modifications manuellement. En partant d'un simple script PHP, qui s'occupait de faire les pull automatiquement, j'ai amélioré le système afin d'avoir une configuration beaucoup plus complexe des dépôts avec possibilité de lancer des scripts avant et après chaque mise à jour, une gestion très fine des branches à "accrocher", des rapports d'exécution par mail...

Installer Composer sous Debian/Ubuntu

Image utilisateur

Voici la marche à suivre pour installer Composer sous les distributions basées sous debian (ubuntu, linux mint...), Composer n'étant pas disponible sous forme de paquet deb.