clean code, clean archi, avoir une stratégie de versionning sont applicables et le Serverless implique d’en tirer parti au maximum.
Dans la réalité, le Serverless masque une grande partie de la complexité sous-jacente et permet d'accélérer à tel point le passage du développement à la mise en production que parfois cela se fait au détriment de la mise en place de l’outillage nécessaire à l’industrialisation.
C’est précisément ce qui fait la différence entre un POC ou MVP et un produit en production. Les POCs et les MVPs démontrent la capacité technique à répondre à un besoin, mais ne sont pas destinés à se retrouver en production sans passer par l’étape de l’industrialisation. L’industrialisation est essentielle pour permettre de suivre, opérer et maintenir un produit en production, et dans le cas du Serverless de pouvoir profiter des innovations sereinement.
L’industrialisation du Serverless n’est pas triviale et doit être considérée et mise en place très tôt dans le développement d’un projet ou d’un produit. Pour mieux cerner ce que cela implique, voici quelques bonnes pratiques d’industrialisation pour un projet utilisant les Function as a service (FaaS).
1/ exemple de déploiement sans industrialisation
2/ exemple de déploiement industrialisé
Sur les illustrations ci-dessus, le coût supplémentaire que demande l’industrialisation est visible mais permet de gagner en contrôle ainsi qu’en stabilité sur les déploiements ultérieurs. De plus, les éventuelles refontes de code n’en seront que plus aisées.
La stratégie de collecte des logs et des traces doit être définie et mise en place avec les outils du cloud provider ou des outils spécifiques. Les procédés de packaging et de déploiement doivent être décorrélés du code métier et dans la mesure du possible abstrait du cloud provider. En lisant ces recommandations, il est naturel de se dire que c’est superflu de mettre tous ces outils en place à un stade précoce du projet.
C’est là que se situe le plus grand piège du Serverless. Car le Serverless permet d’accélérer la mise en service, et l'évolution d’un produit à une telle vitesse que lorsque les besoins d'industrialisation se font sentir il est trop tard. À ce moment, le temps nécessaire à la mise en place des outils et procédés d’industrialisation impacte très fortement le cycle des features releases.
Pour ce qui est du Serverless et de l’innovation incessante poussée par les évolutions ou l'apparition de nouveaux services, l’industrialisation permet de pouvoir intégrer ces nouveautés dans les roadmap. Et ainsi d’en profiter pour proposer un produit toujours plus performant pour les utilisateurs.
Le Serverless comporte de nombreux avantages qui doivent être nuancés selon les cas d’usages. Il est aussi important de prendre en compte ce que le Serverless nécessite en termes de mise en place et de fonctionnement pour les équipes qui opèrent avec ces types de services.
La réussite ou le déclin d’un produit conçu avec le paradigme Serverless dépend donc de la capacité des équipes techniques à éviter les écueils. Il n’existe pas de guide du Serverless, au sens où il n’existe pas de vérité unique sur la manière de piloter un business, mais les bonnes pratiques et un outillage bien pensé peuvent aider à tirer parti de l'écosystème Serverless pour développer un produit.
Le Serverless est un paradigme récent et même s’il peut lui être reproché un manque de standardisation, son adoption est de plus en plus courante dans le paysage des SI. Le Serverless n’en reste pas moins un outil, et comme tous les outils, il n’est performant que lorsqu'il est utilisé correctement et dans le bon contexte.