Le PAAS: objectif
Platform as a service
, son but est de dĂ©ployer son application simplement en ayant une abstraction de l’hĂ©bergement.
On branche son environnement Ă un VCS comme github, gitlab … puis on dĂ©finit son environnement et les Ă©tapes pour dĂ©ployer son code.
Tout ça sans interruption de service … sur le papier
Le dimensionnement de l’environnement n’est limitĂ© que par le plafond de votre carte de crĂ©dit.
La promesse
- Environnement haute disponibilité
- Environnement Ă©lastique dans ses performances
- Facilité de déploiement
- Un environnement par branche.
- Construction reproductible
Zero downtime
- Moins d’administration système et plus de dĂ©veloppement
- Des templates d’intĂ©gration de CMS : Wordpress, Magento, Prestashop …
- Un support technique dévoué
La réalité
Attention, c’est Ă charge.
Sous le capot
Les environnements sont clairement sous dimensionnés à base de kvm
, lxc
, glusterfs
.
Cela correspond en terme de performance Ă un lab perso.
L’isolation des ressources ne permet pas de bĂ©nĂ©ficier des caches du système de fichier, des applications ainsi que des bases de donnĂ©es.
La performance est donc bien dégradée en I/O
.
Un build
en local est plus rapide que sur ces environnements.
Le métier
Qui achètent ces plateformes ?
- le client final
Qui utilisent ces plateformes ?
- le développeur
La promesse est très belle pour le client final et puis on commence à travailler dessus.
Le report des compétences systèmes se fait sur la partie développement.
Les développeurs doivent trouver des solutions par du développement sur des problématiques liées à la faible allocation de ressources.
Les scripts de migration explosent en out of memory
. Dans certains cas il est préférable de les jouer en local et de tout importer.
Au final, il ne s’adresse pas aux dĂ©veloppeurs vu la charge de travail supplĂ©mentaire.
Du moins, le temps passĂ© sur cette intĂ©gration est au dĂ©triment du planning global car il n’est pas quantifiĂ©.
Pour certains cas, on n’a pas de zero down time
lors du déploiement. Dans ce cas quelle est la valeur ajoutée du service ?
Le schéma
Comment résoudre ces problèmes rapidement ?
On demande un accès aux outils de monitoring :
grafana
en PLS- agrégateur de log facturé 💸
APM
beurk facturĂ© đź’¸ (blackfire, newrelic …)
Tout cela pour ne rien voir.
Ce qui se passe en gĂ©nĂ©ral : scale-up de l’environnement -> đź’¸
Cette augmentation des ressources induit automatiquement une augmentation de la facturation. On se dit que c’est temporaire … et ça reste.
L’agacement se fait ressentir pour le dĂ©veloppeur :
- DifficultĂ© d’intĂ©gration
- Temps de de
build
etdeploy
plus long qu’en local - InstabilitĂ©
- Performance ridicule
- Perte de confiance du client final
- Énervement
Une fois en production :
- pas de visibilité sur la supervision système
- pas de responsabilité sur le fonctionnement global
Si l’application a des soucis de performances, la seule rĂ©ponse est de reporter la responsabilitĂ© sur les dĂ©veloppeurs ou de proposer une gamme supĂ©rieure de l’hĂ©bergement. Aucune investigation est proposĂ©e et le support ne connaĂ®t pas le contexte client, ni son mĂ©tier.
Au final, tout le monde se renvoie la balle. L’observabilitĂ© Ă©tant limitĂ©e, les investigations sont très compliquĂ©es.
On se retrouve dans une situation oĂą l’application fonctionne très mal et chacun se cache derrière son contrat.
C’est d’un triste.
> To be continued …
Combien pour tout ça ?
Le rapport performance/investissement n’est pas lĂ .
On a, sur une infrastruture à base de bare-metal, 5x plus de puissance pour un coût divisé par 10.
Ce qui est cool : ce n’est pas le dĂ©veloppement qui est responsable des mauvaises performances.
Ce qui est moins cool : le client final pense que le développement ou son intégration est responsable.
La solution d’hĂ©bergement est juste moisie.
> To be continued …
Quelques solutions PAAS visitées
- platform.sh sans zero down time.
- clever cloud avec du zero down time.
- artifakt vient de déposer son bilan.
Pour l’instant c’est un gros Nop !!
> To be continued …