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 :
grafanaen PLS- agrégateur de log facturé 💸
APMbeurk 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
buildetdeployplus 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 …