Platform.sh le PAAS qui résout le casse tête dev/staging/prod - Ori A Pekelman
l y a eu un temps où des développeurs mettait à jour directement sur un serveur de production les fichiers PHP par FTP. Cela même faisait une partie du charme de PHP, la simplicité de la mise à jour. Evidemment ce temps (mal)heureux est terminé. On est devenu adultes. On écrit des tests. On a des systèmes de qualification, de test. On suit des méthodologies. On a gagné en qualité c'est évident, on peut faire des projets plus ambitieux.. mais on a perdu énormement en agilité, en velocité. Des choses qui était au coeur de la promesse de PHP. Chez Commerce Guys, nous avons travaillé à une solution permettant de résoudre l’ensemble de ces problématiques, c’est à dire ne rien perdre en qualité tout en gagnant en productivité : http://platform.sh. Platform est une solution cloud de développement et d’hébergement. La révolution est d’éliminer les concepts de “Dev” et “Staging”, est de ne garder que la prod (comme aux premiers jours de bricolage heureux et sans soucis).... que l’on peut via une simple commande ou un clic de souris, dupliquer intégralement (on clone ainsi les serveurs différents pour le serveur d’application, la base de données, moteur de recherche, cache, etc...), pour créer une copie parfaite à l’octet près, et ceci en quelques secondes. En gros Git, le SCM utilisé ne contrôle plus uniquement le code à déployer, mais la topologie complète du cluster. Chaque branche Git représente un environnement web complet, identique à la prod. On peut le visiter via un navigateur, ou y accéder en SSH. Au lieu d’avoir un seul Dev et un seul Staging, on peut en créer une dizaine dans la journée. On peut ainsi tester chaque nouvelle fonctionnalité en isolation absolue. Une fois le changement testé et approuvé, il suffit de coupler la branche sur master, et voilà, le nouveau code est en production. Platform utilise une fonctionnalité du Kernel Linux permettant d'avoir quelque chose qui ressemble en tout point à de la virtualisation (faire tourner plusieurs systèmes d'exploitation sur la même machine), mais avec un surcoût minimal. Ils utilisent un projet qui s'appelle LXC et qui gère ce concept de Containers (récemment popularisé par Docker). Là où sur une machine avec disons 20GO de mémoire on peut arriver à avoir une dizaine de VM (et ça va ramer!) avec Platform Commerce Guys, on parvient à en faire tourner plus de 1 000 (et ça va vite!). Chaque service peut-être alloué dynamiquement à un serveur différent, et on peut contrôler précisément les ressources qui lui sont allouées (et les changer aussi dynamiquement) en termes de processeur, mémoire, disque dur et ainsi de suite. Une branche de développement qui ne va quasiment jamais avoir des visiteurs peut ainsi consommer très peu de ressources, tandis que la branche de production peut verticalement croître pour atteindre la taille de la machine entière. Voir même être distribuée sur de multiples machines et de multiples datacenters donnant une scalabilité horizontale; la version “entreprise” ajoutant la garantie que chaque composant aura un cluster d’au moins trois serveurs dans trois datacenters différents, permettant de garantir une haute-disponibilité réelle. Aujourd'hui Platform a été spécifiquement pensé pour certains environnements PHP comme Symfony ou Drupal, mais sa généricité permet à terme de déployer tout type d'application (et pas uniquement même du PHP..) https://joind.in/11956 Cette vidéo vous a plu ? Adhérez à l'AFUP pour soutenir son activité : http://afup.org/pages/site/?route=vie-associative/56/devenir-membre