Le serverless computing domine les gros titres, les salons technologiques et les conférences sectorielles. Bien que le concept de « serverless » existe depuis 2006, il reste relativement nouveau. Beaucoup considèrent que le serverless est l'évolution naturelle du modèle informatique. Dans cet article, nous explorerons les concepts clés du serverless computing et présenterons une solution d'Alibaba Cloud appelée Function Compute, un service de calcul entièrement géré et piloté par les événements.
Évolution des modèles informatiques
Au cours des dernières décennies, l'informatique d'entreprise a évolué à un rythme rapide, passant des serveurs physiques aux machines virtuelles, puis à la technologie de conteneurisation.
La première génération informatique reposait sur l'architecture de Von Neumann et utilisait des programmes fixes. Ces programmes étaient généralement étroitement couplés au matériel sur lequel ils s'exécutaient. Avec la transition vers le stockage sur disque, le système d'exploitation est devenu moins dépendant du matériel. Cependant, les applications logicielles ont fini par ressembler à des « monolithes », où l'interface utilisateur et le code d'accès aux données étaient combinés en un seul programme s'exécutant sur une même plateforme. Ces monolithes étaient autonomes et toute modification fonctionnelle nécessitait un chantier considérable. Si les systèmes d'exploitation sont devenus moins tributaires du matériel, les applications, elles, sont devenues plus dépendantes du système d'exploitation spécifique. Au début des années 2000, pour lancer une nouvelle application, il fallait probablement prévoir d'abord l'achat d'un nouveau serveur. En résumé, le serveur physique constituait la brique de base de toute application.
Puis, en 2001, la technologie de virtualisation a commencé à gagner du terrain à mesure que le matériel se standardisait (en particulier l'architecture x86), rendant les machines virtuelles très populaires. Les logiciels
hyperviseurs, popularisés par des entreprises telles que VMWare, ont facilité la création de
machines virtuelles. En exécutant plusieurs machines virtuelles sur un seul appareil physique, le besoin d'acheter des serveurs physiques a diminué et le bloc de construction architectural est passé du serveur physique à la machine virtuelle.
Si la
virtualisation a simplifié l'exploitation des machines, les images de disques virtuels étaient plutôt volumineuses et peu maniables, et difficiles à mettre à l'échelle face aux fluctuations de la charge de calcul. La technologie des conteneurs a permis la virtualisation au niveau du système d'exploitation et s'est imposée comme une alternative bien plus légère. Au fil du temps, plusieurs autres développements majeurs ont vu le jour. Nous allons en présenter les principaux.
- En 2009 : Heroku a popularisé le Platform as a Service, permettant le déploiement d'applications conteneurisées 12-factor via un buildpack
- En 2010 : OpenStack a réuni un ensemble extraordinairement diversifié de fournisseurs pour créer une infrastructure as a service open source
- En 2011 : CloudFoundry, un PaaS open source, ainsi que des outils similaires, ont contribué à accélérer le mouvement DevOps en prenant en charge la livraison continue sur l'ensemble du cycle de développement applicatif. L'architecture basée sur les conteneurs de Cloud Foundry permettait d'exécuter des applications dans n'importe quel langage de programmation auprès de divers fournisseurs de services cloud
- Et en 2013 : Docker (combinant LCX, Union file system et cgroups) a créé un standard de conteneurisation qui a connu un succès immédiat auprès de la communauté des développeurs

En résumé, la technologie de
conteneurisation a facilité la création et le déploiement d'architectures basées sur les microservices, permettant un couplage plus lâche et une bien meilleure évolutivité.
Le serverless constitue l'évolution naturelle du modèle informatique, comme nous allons l'explorer plus en détail.
Principaux défis du serverless
De nombreux défis persistent, même avec le recours à la
technologie des conteneurs. Parmi ceux-ci :
- La planification des capacités n'est pas une tâche aisée. Les ingénieurs d'infrastructure doivent anticiper l'utilisation des ressources de calcul : nombre, taille et type de machines à configurer (processeur, mémoire, bande passante réseau ou d'E/S). Une surestimation peut entraîner une hausse des coûts, tandis qu'une sous-estimation peut nuire à l'activité.
- La mise à l'échelle automatique au niveau des machines est fastidieuse. Dans certains cas, le scale-out peut prendre plusieurs minutes. La gestion de la mise à l'échelle automatique en temps réel et de l'équilibrage de charge demande un travail de planification considérable.
- Des défis similaires se posent en matière de tolérance aux pannes, d'exploitation et de maintenance.
Certaines de ces problématiques peuvent être résolues par des solutions open source ou propriétaires, mais celles-ci nécessitent tout de même un engagement en ressources et ne sont pas simples à mettre en œuvre, en particulier pour les petites et moyennes entreprises.
Explorons comment le serverless peut atténuer certains de ces défis.
Serverless computing
L'architecture serverless, également appelée FaaS (Functions as a Service) ou Backend as a Service, permet l'exécution d'une application via des conteneurs éphémères et sans état. Les conteneurs sont créés au moment même où un événement se produit et déclenche une action. Elle est donc pilotée par les événements. Les applications, regroupées en une ou plusieurs fonctions, sont chargées sur une plateforme, puis exécutées, mises à l'échelle et facturées en fonction de la demande exacte à un instant donné. Serverless ne signifie pas « sans serveur ». En réalité, les détails d'orchestration de l'infrastructure sont masqués pour l'utilisateur et gérés par le fournisseur de la plateforme serverless.
Principales fonctionnalités de la technologie serverless :
- Le serverless simplifie le DevOps L'un des principaux avantages de la technologie serverless est qu'elle permet de créer et d'exécuter des applications et des services sans avoir à se soucier des serveurs. Avec le serverless, le provisionnement, la mise à l'échelle et la gestion des serveurs ne sont plus nécessaires. Les développeurs peuvent se concentrer sur la création de fonctionnalités métier sans se préoccuper de l'infrastructure sous-jacente. Le serverless peut s'appliquer à presque tout type d'application ou de service backend.
- Le deuxième avantage du serverless est qu'il est parfaitement adapté à l'architecture basée sur les microservices. Il offre également un niveau élevé de découplage entre les différents services, favorisant le développement d'architectures microservices. Cela facilite grandement le déploiement continu, tout en simplifiant les retours en arrière si nécessaire.
- Troisièmement, la technologie serverless permet une facturation à l'usage : on ne paie que pour les ressources réellement consommées. Appliqué au coût du calcul, le serverless ne facture que les ressources de calcul effectivement utilisées. Cela se traduit généralement par des coûts bien inférieurs à ceux des méthodes de calcul traditionnelles.
- La haute disponibilité devient automatisée et intégrée
La communauté serverless connaît une croissance très rapide et l'on observe de nombreux backends web, mobiles et de traitement de données construits à partir de composants serverless. Les cas d'utilisation courants qui exploitent les approches serverless incluent les chatbots, le calcul Big Data, le
machine learning et l'
Internet des objets (IoT).
Présentation de Function Compute d'Alibaba Cloud
Alibaba propose tous les outils nécessaires aux développeurs pour entamer leur parcours serverless. Function Compute, un produit de calcul serverless essentiel proposé par Alibaba Cloud, peut améliorer considérablement l'agilité et réduire les coûts d'exploitation pour les entreprises de toutes tailles, leur permettant de concentrer leurs investissements sur les livrables et résultats stratégiques. Outre Function Compute, de nombreux autres produits cloud, notamment le stockage, l'analytique et la messagerie, sont serverless. Par exemple, Object Storage Service (OSS), le premier service cloud lancé par Alibaba Cloud, est un service de stockage serverless. Les utilisateurs n'ont pas à se soucier de la manière dont les données sont stockées sur le serveur sous-jacent et ne paient que pour les ressources de stockage consommées.

Function Compute d'Alibaba Cloud est un service de calcul entièrement géré et piloté par les événements. Avec Function Compute, vous pouvez rapidement créer tout type d'applications ou de services sans vous soucier de la gestion de l'infrastructure.
Function Compute prépare les ressources de calcul pour vous et exécute votre code de manière élastique et fiable.
Function Compute fournit la consultation des journaux, la surveillance des performances, les alertes et plusieurs autres fonctionnalités. Vous ne payez que pour les ressources réellement consommées lors de l'exécution du code. Aucun frais n'est facturé pour le code applicatif non exécuté.
Pour en savoir plus sur le produit
Function Compute proposé par Alibaba Cloud, ainsi que sur les scénarios courants d'utilisation du serverless computing, consultez le lien.