Le Serverless est une infrastructure Cloud permettant aux développeurs de créer une application sans se soucier de la partie administration d’infrastructures, comme les serveurs ou les réseaux. Cette technologie, bien que récente, semble promise à un bel avenir. Voici les informations essentielles à connaître sur le Serverless.
Qu’est-ce que le Serverless ?
Le Serverless est une infrastructure Cloud dans lequel l’utilisateur va pouvoir créer, exécuter et modifier ses applications, sans avoir à s’occuper de la partie infrastructure, qui prend en compte les réseaux et les serveurs, d’où son nom : Serverless (sans serveur en Français). Ainsi, le développeur n’aura qu’à fournir son code et le Serverless s’occupera de gérer les infrastructures IT.
Ce que cela change pour un développeur
Pour un développeur, utiliser un Serverless permet un grand nombre de changements dans la façon d’aborder le développement d’une application ou d’un site Web.
Notamment :
· Plus de gestion manuelle de serveur : le développeur n’aura plus à définir un nombre exact de serveurs, la puissance nécessaire de ces serveurs pour le bon fonctionnement d’une application, la mise en service, l’entretien et la supervision, les mises à jour… ;
· Plus de gestion de déploiement : avec un Serverless, un développeur n’a plus la nécessité de gérer manuellement le déploiement de son application sur différents serveurs ;
· Plus de problématiques liées aux infrastructures : le temps nécessaire pour s’occuper de la partie infrastructure est colossal. Avec un Serverless, les problématiques de stockage ou de réseau sont réglées automatiquement, ce qui laisse ainsi beaucoup de temps au développeur pour s’occuper de la partie développement de l’application.
Les conditions préalables à l’utilisation du Serverless
Pour mener à bien un projet d’application avec un Serverless, il y a quelques conditions préalables que vous devez connaître :
· Respecter un langage informatique adéquat avec le Serverless utilisé : la plupart des Serverless sont compatibles avec JAVA ou Python ;
· Fractionner le code : dans un Serverless, le code ne doit pas être donné entièrement, mais doit être fractionné (chacune des fonctions ayant un seul et unique but).
Le fonctionnement du serverless
Le Serverless fonctionne à l’aide de fonctions, chacune ayant un but unique et précis. Tout l’intérêt est dans ce découpage. En effet, avec ce découpage, l’hébergeur Cloud pourra garantir un « scaling » automatique de chaque fonction, suivant les pics de trafic.
Par exemple, lorsqu’un utilisateur va solliciter une fonction dans votre application, celle-ci va s’exécuter et offrir à l’utilisateur la réponse demandée, mais si le trafic est plus important, parce que plusieurs utilisateurs sollicitent en même temps la même fonction, la fonction sera exécutée plusieurs fois en même temps, pour permettre une réponse efficace pendant un pic de trafic.
Le coût du serverless
C’est l’un des grands atouts du Serverless en dehors de la simplicité de gestion. La facturation se fait en fonction des ressources consommées et donc du temps d’exécution de chaque fonction. Pour en revenir à l’exemple précédent. Vous ne paierez pas pour une fonction si elle n’a pas été exécutée.
De ce fait, le paiement se fait selon une unité de temps (la milliseconde généralement) et le développeur ne paiera que pour l’utilisation réelle de son application. C’est ainsi tout l’inverse de l’utilisation de serveur typique, où il faut compter sur l’achat, la gestion, l’entretien, tout en payant le même coût, qu’il soit sur ou sous utilisé.
En plus du coût de revient très abordable, le Serverless pousse le développeur à optimiser son code. Plus le code sera performant, plus la vitesse d’exécution sera réduite et plus le coût sera réduit !
Les atouts et points faibles de ce concept
Le système de Serverless peut vous paraître idéal et vous pouvez vous demander pourquoi certains développeurs continuent à utiliser des serveurs classiques. Il existe pourtant certains inconvénients à une automatisation totale des infrastructures. Voici donc un rapide rappel des avantages et des inconvénients à connaître avant de vous pencher vers une infrastructure Cloud comme le Serverless.
Les avantages du serverless
· La simplification : le Serverless s’occupe automatiquement d’exécuter le code, de le dimensionner, d’assurer une haute disponibilité et de réaliser les charges administratives de réseau, serveur et autres infrastructures ;
· Economie de temps : avec ce type d’infrastructure, les temps de chargement sont généralement réduits, permettant ainsi une mise sur le marché plus facile et rapide ;
· Economie financière : le développeur ne paiera que pour le temps d’exécution des fonctions, lorsque les fonctions ne sont pas utilisées, celles-ci ne sont pas facturées. Ce système peut-être un réel atout économique, notamment pour la mise sur le marché d’une application ;
· Le langage informatique universel : la majorité des offres de Serverless sont compatibles avec les langages informatiques les plus utilisés, tels que JAVA et Python, ce qui permet une prise en main plus rapide pour le développeur ;
· Un code de meilleure qualité : cet avantage n’est pas un réel bénéfice, mais plutôt une conséquence directe. Comme le développeur n’a pas à s’occuper de l’administration des infrastructures IT, celui-ci économise beaucoup de temps et peut donc se consacrer au développement de ligne de code de meilleure qualité.
Les inconvénients du serverless
· Technologie récente : étant donné le caractère récent de cette technologie, peu d’acteurs sont aujourd’hui capables de gérer le déploiement à grande échelle d’un Serverless ;
· Peu de possibilités : les outils mis en place pour la sécurité des données, le management, le monitoring et l’optimisation des systèmes ne sont aujourd'hui encore que très peu nombreux et offrent ainsi peu de possibilités de personnalisation, mais cela devrait évoluer rapidement ;
· Un marché ne laissant pas la place à la concurrence : aujourd’hui, seuls trois Serverless se partagent les parts de ce marché, à savoir AWS, IBM et Microsoft Azure. Ceux-ci, étant les pionniers en la matière, ne laissent que très peu de place à la concurrence, et les nouveaux tels que Google, Docker ou Red Hat peinent à trouver leurs marques ;
· Ne répond pas à tous les cas d’usages : avec les inconvénients précédents, comme la jeunesse de cette technologie et la personnalisation très limitée, les infrastructures Serverless ne répondent pas à tous les cas d’usage, et il faudra encore attendre un peu avant que ce concept ne devienne une technologie incontournable dans le développement d’applications.
Les principales offres de Serverless
Comme expliqué précédemment, 3 grandes infrastructures de Serverless se partagent les parts de ce marché :
· AWS ou Amazon Web Service est donc une offre proposée par Amazon et mis sur le marché en 2014. Ses offres se sont considérablement enrichies depuis et le groupe utilise lui-même ses services de Serverless sur plusieurs de ses plateformes, comme Amazon Prime ;
· Le groupe IBM propose lui aussi un service Serverless nommé IBM Cloud Functions ;
· Microsoft Azure a été commercialisé en 2016 par Microsoft, et offre des options Serverless avec Azure Fonctions.
Le Serverless semble très prometteur en termes de gestion d’applications. Les avantages associés à ce concept technologique sont multiples et d’une grande valeur. Néanmoins, compte tenu du caractère récent de cette avancée technologique, les développeurs d’infrastructures Serverless devront s’investir encore plus, pour permettre aux utilisateurs une utilisation plus poussée et accessible dans de nombreux cas d’usages.
La plateforme Ryax intègre un certain nombre de technologies serverless pour assurer une auto-scalabilité totale des workflows de Data Science qui sont exécutés par les équipes Data. Ce nouveau paradigme informatique apporte de nombreux avantages dans le cadre de l'industrialisation d'algorithmes sur des infrastructures de production.
La Ryax Team.