5 raisons pour lesquelles vous devriez envisager l’informatique sans serveur

Lorsque vos développeurs se chargent en permanence de la gestion des serveurs et de la mise à niveau des systèmes d’exploitation, ils n’ont pas le temps de travailler sur votre produit, et vous perdez en compétitivité. Outre le temps, l’informatique sans serveur vous offre d’autres avantages.

L’idée de l’informatique sans serveur (« serverless computing » - ou simplement « serverless »)  gagne rapidement en popularité depuis qu’Amazon Web Services (AWS) a lancé le service AWS Lambda en 2014. Depuis lors, l’intérêt pour l’informatique sans serveur a augmenté de façon constante, et tous les principaux fournisseurs de cloud ont une solution sans serveur. Microsoft propose ainsi Azure Functions et Google, Cloud Functions. Le graphique ci-dessous de Google Trends montre l’intérêt croissant pour l’informatique sans serveur.

 

L’informatique sans serveur: c’est quoi ?

Le principe de l’informatique sans serveur repose sur un style d’architecture logiciel spécial qui exécute la logique des applications dans un environnement sans processus, systèmes d’exploitation, serveurs ou machines virtuelles visibles. Ceux-ci sont bien présents, mais la responsabilité de fournir et de gérer cette infrastructure incombe entièrement au fournisseur de cloud. Dans un tel environnement, les développeurs peuvent alors se concentrer pleinement sur l’écriture de code. Traditionnellement, ce code est contenu dans des services qui fonctionnent avec des services tiers dans un système distribué, dans lequel l’équipe est également responsable de l’installation, de la surveillance, de la mise à l’échelle et de la mise à jour de tous ces services, y compris les serveurs, les machines virtuelles ou les conteneurs docker sur lesquels ces services sont installés. Dans un monde sans serveur, c’est le fournisseur de cloud qui assume toute cette responsabilité.

L’informatique sans serveur, c’est nouveau ... ou pas ?

En soi, l’informatique sans serveur n’est pas nouvelle. En 2015, nous avons déjà blogué sur l’utilisation de services Web via des API pour ajouter des fonctionnalités aux applications. Lisez par exemple notre billet « Standing on the shoulders of giants: six APIs for instant SaaS success »  pour des exemples concrets. « Serverless », c’est ça. L’intégration d’API tierces vous permet d’ajouter des fonctionnalités à votre application, sans être responsable de l’infrastructure, des serveurs, du système d’exploitation. En bref, sans serveur. Aujourd’hui, vous pouvez puiser parmi toute une série de fournisseurs BaaS, 'Backend-as-a-Service' : pensez à analytics-as-a-service (Keen.io) ou logging-as-a-service (loggly.com) ou encore les paiements as-a-service (stripe.com ou le twikey.com belge). 

Les plus récents sont Functions-as-a-Service, ou simplement FaaS. Avant AWS Lambda, vous étiez non seulement obligé de développer votre propre logique d’application (soutenu ou non par des fournisseurs de BaaS), mais aussi de vous assurer que votre code d’application était évolutif et sécurisé. Vous étiez responsable de toute une série de choses qui n’étaient pas différentiatrices dans votre entreprise, mais nécessaires. Pensez à la configuration et gestion des serveurs, des machines virtuelles, des systèmes d’exploitation et des correctifs associés, votre environnement d’exécution (par exemple, un environnement Python, PHP, Java, Ruby dans lequel vous exécutez votre code). La mise en place d’une mise à l’échelle (automatique), surveillance, équilibrage de charge, mise à jour, de préférence automatiques, de vos propres applications sans temps d’arrêt, tout cela était entre vos mains. Grâce à FaaS, il est possible de développer des parties de votre application en tant que fonctions individuelles, que vous envoyez ensuite à votre fournisseur de cloud. Votre fournisseur de cloud s’occupe du reste. 

5 avantages d’être « serverless » pour votre entreprise

  1. Délai de mise sur le marché plus court : dans le paradigme du sans serveur, les développeurs s’occupent uniquement des aspects qui sont propres à leur propre application. Tout le reste (OS, serveurs, ...) est laissé au fournisseur de cloud. Cela peut réduire considérablement votre temps de mise sur le marché. Comme il y a peu ou pas d’administration système, les développeurs ne perdent pas de temps à attendre les sysadmins et inversement.

  2. Coûts opérationnels réduits : Les fournisseurs de FaaS ne facturent que le temps nécessaire pour que vos fonctions fonctionnent efficacement. Une fonction effectuée seulement quelques fois par jour pendant quelques secondes ne sera facturée que pour ce temps. Dans une configuration traditionnelle, un serveur doit tourner en continu et est facturé pour tout ce temps. De plus, une architecture serverless entraîne beaucoup moins d’administration système. Cela est également source d’économie.

  3. Évolutivité : dans une architecture sans serveur, l’évolutivité est assurée par le fournisseur de cloud. Vous avez peu à faire à ce niveau. Cela permet également d’économiser du temps et des efforts.

  4. Agile : tous les fournisseurs de FaaS fournissent des outils (sous la forme d’API) pour « déployer » votre code, souvent sans temps d’arrêt. Cela vous permet de publier rapidement vos nouveautés. Ceci est un élément fondamental dans le développement de logiciels agiles.

  5. Fonctions comme glue-code : les fournisseurs cloud utilisent de plus en plus FaaS comme glue-code : vous souhaitez appliquer un peu de logique lors d’un courrier entrant ? Traduisez cette logique dans une fonction lambda. Quand un utilisateur télécharge une photo vers un AWS S3-bucket, vous voulez en créer un thumbnail ? Traduisez cette logique dans une fonction lambda et connectez-la avec le S3-bucket. Vous voulez lancer un script exécutant une tâche ETL de données toutes les 15 minutes ? Traduisez cette logique dans une fonction lambda et demandez à votre fournisseur de cloud d’effectuer cette fonction périodiquement. 

Conclusion

Les principaux fournisseurs de cloud sont misent sur l’informatique sans serveur. Serverless, la combinaison de BaaS et FaaS, offre aux développeurs la liberté de se concentrer sur le développement de fonctionnalités uniques à leur propre application, laissant ainsi tout un tas de « undifferentiated heavy lifting » aux fournisseurs de cloud. Il est dès lors possible de créer des applications évolutives, qui peuvent être rapidement commercialisées et nécessitant peu d’administration système. N’est-ce pas du pain béni pour tous les intéressés ? 

Dans les prochaines semaines, je partagerai mes expériences avec la construction de petites applications sans serveur dans plusieurs articles. Dans l’intervalle, je suis curieux de lire vos réactions par rapport au serverless. Des questions, commentaires ou expériences que vous souhaitez partager ? N’hésitez pas à nous contacter !