Cachez cette infrastructure que je ne saurais voir !

Cachez cette infrastructure que je ne saurais voir !

Enfin ! Je dis bien enfin ! Avec l'avènement du Serverless Computing, les développeurs sont enfin de retour dans le jeu.

Avant d'aller plus loin, si vous êtes déjà familer du sujet ou pressé, alors foncez directement ici pour vous former. Si vous n'êtes pas d'accord avec moi, alors venez me voir le 19 février lors des Azure Essentials pour en débattre.

Cloud First oui...

L'histoire du Cloud Computing a jusqu'à présent été principalement marquée par des discussions autour du IaaS pour Infrastructure as a Service. En gros, comment déployer de manière automatisée, à l'échelle et dynamiquement des machines virtuelles, des réseaux virtuels et du stockage disque, comme on le faisait déjà dans les centres de données privés mais avec une capacité à payer "as you go" ou encore "as you consume" et donc d'optimiser sérieusement la facture pour peu qu'on fasse l'effort d'éteindre les machines qui ne servent pas 24h/24 - 7j/7 et grâce au potentiel de rationalisation de son infrastructure.

La nouvelle étape que nous sommes en train de franchir dans une optique de modernisation des applications et d'une rationalisation encore plus forte des coûts d'infrastructure est le basculement vers les conteneurs. Grâce à une virtualisation de niveau système d'exploitation, les conteneurs permettent d'exécuter les applications de manière complètement isolée notamment aux niveaux de ses dépendances. Grâce à cela, la mise à jour des applications est grandement facilitée car on ne risque plus d'impacter les autres applications déployées sur la machine. De plus, on peut densifier le nombre d'applications déployées sur une même machine car il n'est plus nécessaire de contrôler la compatibilité des middlewares et autres dépendances.

Bien sûr, lorsqu'on parle conteneurs, inévitablement on parle de Kubernetes. Je vous invite à regarder cette petite vidéo si vous avez vécu isolé du monde pendant les 12 derniers mois.

Toutes ces étapes permettent de moderniser progressivement son système d'information mais elles ne sont que des étapes et pas une fin en soi. Une infrastructure IaaS ou CaaS pour Container as a Service demandent, au-delà de l'aspect supervision et maintenance, des compétences pointues dans leurs mises en oeuvre et leur architecture. Ces compétences sont en général très loin du métier de base des entreprises qui est très loin de l'IT.

… mais Software Before

Alors comment faire ? Car malgré tout, il y a deux citations importantes à retenir :

Software is eating the world, Marc Andreessen
Every business is a software business, Watts S. Humphrey, amplified by Satya Nadella

Ces deux citations ont un point commun : elles parlent du logiciel, pas de l'infrastructure sous-jacente. Ce sont bien les applications qui se diffusent partout dans notre quotidien : dans nos téléphones, dans nos télévisions, dans nos consoles, dans nos montres, dans nos balances, dans notre cuisine... Chaque société va devoir rendre "intelligents" les produits ou les services qu'elle délivre sous peine d'être reléguée en deuxième division ou plus grave de disparaitre. L'intelligence infusée dans les produits et services grâce aux applications va devenir un élément différenciant critique.

Logiquement, cela implique que les entreprises doivent investir dans des équipes de développement internes car on ne fait pas reposer un sujet vital pour son entreprise sur des prestataires externes ou des partenaires qui ont leur propre agenda. Mais quid des compétences pour gérer l'infrastructure ?

Grâce au Cloud, l'infrastructure est devenue une commodité et il est donc tout à fait possible et non critique de déléguer la gestion de cette commodité à un prestataire externe dont ce sera le coeur de métier. Une autre option est d'orienter les équipes de développement vers l'utilisation de services PaaS pour Platform as a Service ou encore vers le Serverless Computing.

Et la prochaine grande étape est bien le Serverless Computing. Attention, l'appellation peut être trompeuse. Il y a 2 idées préconçues, qu'il faut battre en brèche à propos du Serverless Computing :

  • Il n'y a plus de serveurs à gérer : FAUX ! Il y a toujours des serveurs mais ce n'est plus vous qui les gérez ; vous payez pour une puissance de calcul, du stockage ou un service d'ingestion de données et le fournisseur Cloud vous met à disposition les serveurs nécessaires pour garantir le niveau de service.
  • Il n'y a plus besoin de supervision : FAUX ! Il y a toujours de besoin de supervision mais vous ne supervisez plus que l'infrastructure fonctionne, vous supervisez que votre service fonctionne et vos équipes d'exploitation sont pleinement concentrées sur ce qui est critique pour vous : garantir le niveau de service que vous avez promis à vos clients.

Le gros avantage du Serverless Computing est que vous payez vraiment pour ce que vous consommez. Un exemple très parlant est celui d'un traitement qui doit s'exécuter en fonction de la réalisation d'un événement. Cet événement se produit 1 fois par heure.

Dans une approche traditionnelle, nous allons développer un daemon ou un service Windows qui va attendre la réalisation de l'événement pour exécuter le traitement. Malheureusement, pour que cela fonctionne, il va falloir laisser tourner une machine virtuelle ou une instance de conteneur en permanence. Nous allons donc payer ce service 24h/24, 7j/7 pour quelques minutes d'exécution par jour.

Avec une approche Serverless, la réalisation de l'événement va déclencher l'exécution d'une Azure Functions qui va réaliser le traitement. Si ce traitement est complexe, vous pourrez l'orchestrer avec un autre service Serverless : Azure Logic Apps.

Alors on fait quoi maintenant ?

La boucle est bouclée : les développeurs sont de retour au centre du jeu. Sans eux, vous ne pourrez pas tirer partie de l'énorme potentiel du Serverless Computing que je ne fais qu'effleurer dans cet article introductif. Rapidement, vous sentez que le développement des services et applications ne va plus suivre les mêmes Design Patterns. Pour tirer partie de toute la promesse du Serverless Computing, il faut donc former les équipes. Pour cela, il y a énormément de ressources disponibles en ligne et en présentiel :

Je vous recommande aussi cette vidéo avec Jeff Holan, Senior Program Manager for Serverless Azure Functions.

Je suis preneur de vos feedbacks sur votre vision du Serverless Computing et si vous n'êtes pas d'accord avec moi, je vous invite à venir en débattre le 19 février dans nos locaux lors des Azure Essentials

Stephen Roux

Helping companies in their modernization and transformation journey.

6 ans

Je suis un fervent partisan du Cloud, pas de soucis avec ça, mais ça me fait toujours sourire quand je lis que les infras, serveurs, etc. sont des commodités dont on peut faire abstraction avec le Cloud. C'est s'adresser uniquement a la frange, certainement importante commercialement pour Microsoft, du digital et autres concepts du même type qui effectivement sont solubles dans le Cloud, mais cela occulte l'informatique industrielle, celle qui fait tourner les entreprises, les outils de production, les gares de péage, ... qui ne sont pas Cloud compatible. Je préfère parler de Cloud hybride , sujet bien traité par Microsoft au par ailleurs pour illustrer comment le Cloud peut s'intégrer avec cette informatique plus "traditionnelle".

Serguei Tarassov

Software engineer | database expert | R&D | core platform ERP | tech writer

6 ans

Depuis le début ce terme "serverless" continue me choquer sachant que le cloud est un grand serveur logique. Next step is "computerless computing" :D

félicitations et très bonnes nouvelles!

Identifiez-vous pour afficher ou ajouter un commentaire

Plus d’articles de François Bouteruche

Autres pages consultées

Explorer les sujets