Avec la popularisation du cloud computing, l’informatique sans serveur est progressivement devenue une tendance importante dans le secteur informatique. Il s'agit d'un service cloud qui ne nécessite pas que les utilisateurs gèrent des ressources matérielles ou logicielles. Les utilisateurs doivent uniquement fournir le code ou les données de l'application pour exécuter le service correspondant. Malgré le « sans serveur » dans le nom, cette technologie s’appuie toujours sur un serveur pour exécuter le code du développeur.
L'informatique sans serveur fait référence à l'abstraction de l'informatique, permettant aux développeurs de se concentrer davantage sur la logique de l'application plutôt que sur l'infrastructure sous-jacente.
La définition du terme « sans serveur » a évolué au fil du temps et fait l’objet de différentes interprétations au sein du secteur. Les experts suggèrent de déplacer l’accent des spécifications techniques vers un état d’esprit qui se concentre sur la manière dont le sans serveur peut être utilisé pour résoudre les défis commerciaux.
Cependant, la popularité de la technologie sans serveur ne signifie pas que tout est devenu simple. Son utilisation a progressivement transféré la complexité qui appartenait à l’origine à l’équipe d’exploitation à l’équipe de développement. Pour autant, les équipes opérationnelles doivent toujours gérer des problèmes tels que l’authentification, la mise en réseau, les politiques de sécurité et l’optimisation des coûts.
Dans le monde de l’informatique sans serveur, les développeurs peuvent être confrontés à plusieurs défis, l’un d’entre eux étant que les applications sont sensibles aux erreurs dans le calcul distribué.
« Le contrôle des versions est simple, les transactions compensatoires fonctionnent toujours et l’observabilité est facultative. » Ce sont des idées fausses courantes sur l’informatique distribuée.
De plus, la surveillance et le débogage des applications sans serveur sont difficiles, car leur nature distribuée et pilotée par les événements les rend souvent difficiles à suivre. Bien que les outils de surveillance traditionnels puissent être confrontés à des limites, les technologies modernes telles que les outils de traçage distribués et la journalisation centralisée peuvent améliorer efficacement ces problèmes.
Selon le rapport OWASP, les applications sans serveur sont toujours vulnérables aux attaques traditionnelles et aux cyberattaques ciblant spécifiquement les applications sans serveur (telles que les attaques par « déni de service de portefeuille »). Cela oblige les développeurs à changer leur façon de penser et à prévenir ces risques de nouvelles manières.
L'informatique sans serveur est souvent fournie par des services tiers, ce qui signifie que les applications et les logiciels sont verrouillés dans un fournisseur de cloud spécifique. Le problème de dépendance vis-à-vis des fournisseurs devient plus important lorsque l’on considère des flux de travail plus complexes, car les fournisseurs de cloud autorisent généralement uniquement les clients à télécharger du code sur leurs plateformes et ne peuvent pas configurer l’environnement de base. Cela rend la migration des charges de travail sans serveur presque impossible ; par conséquent, la conception et le déploiement de flux de travail sans serveur dans une perspective multicloud deviennent progressivement une solution viable.
Bien que l’informatique sans serveur offre flexibilité et évolutivité dans de nombreux scénarios, elle peut ne pas être aussi efficace que l’allocation de ressources ciblée pour certaines charges de travail de calcul haute performance (HPC). Lorsque les charges de travail nécessitent une utilisation continue ou prévisible des ressources, le provisionnement par lots traditionnel des serveurs peut parfois s'avérer plus rentable qu'un modèle de facturation à l'utilisation.
« Pour certaines charges de travail HPC, l’informatique sans serveur semble de plus en plus adaptable à des exigences de plus en plus complexes. »
L’avantage du serverless n’est pas seulement sa large gamme, mais aussi la flexibilité qu’il apporte et la capacité à répondre à différents besoins. Les développeurs doivent trouver les meilleurs moyens d’appliquer ces technologies plutôt que de suivre aveuglément les tendances.
Dans les architectures sans serveur, les développeurs doivent se méfier des anti-modèles tels que « l'anti-modèle sable », qui fait référence à une fonctionnalité du système trop granulaire, entraînant une complexité de gestion et une efficacité réduite des performances. Un autre anti-modèle, appelé « Lambda Pinball », implique des appels de fonctions excessifs, provoquant des problèmes de latence et d'observabilité.
Pour résoudre ces problèmes, les entreprises peuvent envisager d’établir des limites de domaine claires pour distinguer les interfaces publiques des interfaces publiées, réduisant ainsi la complexité des dépendances.
« L’adoption de la technologie sans serveur doit être combinée à des pratiques de sécurité, notamment l’application de DevSecOps, qui contribue à améliorer l’efficacité et la sécurité. »
Dans l’ensemble, la flexibilité et l’évolutivité apportées par l’informatique sans serveur offrent de nombreuses opportunités commerciales aux développeurs et aux entreprises. Toutefois, dans un tel environnement, nous devons également être conscients des défis et des risques potentiels. L’informatique sans serveur deviendra-t-elle une option courante à l’avenir, ou ses limitations la forceront-elles à adopter d’autres architectures ?