Technique

Technique - Les Paas full-stack PHP

Image principale du blog pour l’article publié le 9/21/2015

Dernièrement, pour les besoins d’un client, j’ai fait un tour non exhaustif des solutions Paas (platform as a service) PHP pour héberger un Prestashop 1.6.

Ce type de service est parfait pour les développeurs qui ont des notions d’admin système mais qui n’ont pas le temps de s’occuper de la partie serveur (installation, maintenance, sécurité, backup, update/upgrade etc…).

Voici les plateformes que j’ai testées :   

Je ne m’attarderais pas sur le coût de chaque solution, les tarifs étant assez hétérogènes mais finalement assez proches à quelques dizaines d’euros près.

Le choix n’est donc pas simple quand l’offre regorge d’acteurs qui proposent des services de qualités. Outre le prix donc, il y a plusieurs questions a ce poser :

  • Sur quelle infrastructure repose le service ?
  • De quelles ressources vais-je avoir besoin ?
  • Y a t-il des backups automatisés ?
  • Y a t-il possibilités de cloner une instance ?

Toutes ces questions sont propre à chaque projet et à chaque client.

Pour nous aider un peu, il existe ce genre de site : http://www.paasfinder.com qui permet de faire une pré-sélection selon tous ces critères.

Revenons à notre installation de Prestashop 1.6.x pour un client qui fait déjà plusieurs centaines de ventes par mois. Le site a un trafic modéré mais comme tout site de e-commerce, il ne doit jamais être indisponible, le mot clé est donc : Haute Disponibilité. Ca tombe bien, tous ces services propose des instances dans le “cloud”, ce qui signifie qu’a part un très gros problème d’infrastructure ou de réseau, notre Prestashop ne sera jamais “offline”. De plus tous les services proposent aussi des systèmes de “snapshot” automatisé qui sauvegardent votre instance de serveur rapidement.

Tous les Paas proposent de déployer votre application via GIT. Il suffit de mettre votre code sur Github ou Gitlab par exemple et de donner l’url à cloner au service. Il va juste falloir faire attention au fichier spécifique de configuration (config/define.inc.php) qui contient les infos de connexion à la base de donnée et qu’il faudra donc modifier en conséquence.

1. Pagodabox

Pagodabox est très au dessus du lot en terme d’interface. L’UI et l’UX sont très soigné, les animations sont très utiles. Mais après plusieurs jours d’essaie, je me suis rendu que le système est assez lent, le resize d’instance prend plusieurs minutes par exemple.

Pour deployer votre application, il vous faudra un Boxfile, un fichier de configuration spécifique à votre application : https://pagodabox.io/docs/boxfile_overview

Voici un exemple de Boxfile pour Prestashop :


web1:
name: web1
type: php
version: 5.6
stability: production
network_dirs:
storage1:
- cache
- modules
- img
- upload
- log
- translations
- download
- config
- mails
after_deploy:
- "rm -rf cache/smarty/compile/*"
- "rm -rf cache/smarty/cache/*"
- "rm -f cache/smarty/class_index.php"
php_extensions:
- apc
- json
- mbstring
- pdo
- pdo_mysql
- session
- xml
- gd
- memcache
- memcached
- mcrypt
- zip
- zlib
- hash
- iconv
- readline
- xml
- xmlreader
- xmlrpc
- xmlwriter
php_date_timezone: Europe/Paris
php_zend_extensions:
- ioncube_loader

2. Fortrabbit

L’ interface est beaucoup plus simple et épurée. Finalement c’est ce qu’on cherche en utilisant un Paas. Le but c’est de simplifier les choses. Le “scaling” de l’application est très simple et rapide. En cas de monté en charge c’est très pratique.

3. Engine Yard

EY propose une interface très complète en terme d’administration serveurs. Là aussi le code est déployé via Git sur toutes les instances lancés.

4. Cloudways

La grande force de Cloudways c’est la possibilité de cloner des instances de serveur et de cloner les apps dans chaque instance. Cela permet de mettre en place très rapidement un environnement de dev ou de pré-prod pour tester des modifs par exemple. L’interface est très simple, les prix sont transparent.

Auteur de l article Benjamin Templé

Par Benjamin Templé

Partager l'article