
J'ai récemment regardé une vidéo d' un bon développeur et youtubeur intitulée "Serverless Senselessness". J'ai aimé les pensées de l'auteur, mais je ne suis pas d'accord avec certaines de ses déclarations et je souhaite en discuter dans cet article.
La vidéo commence par une blague: "Il y a deux choses dans le monde que je ne comprends pas - les filles et l'informatique sans serveur." Je ne sais rien de la relation de ce développeur avec les filles, mais a-t-il raison à propos de Serverless? Jetons un coup d'œil à ses principaux points critiques et discutons des arguments possibles en faveur de l'informatique sans serveur.
Alerte spoiler: je crois en Serverless. Vous avez juste besoin de savoir quand et comment utiliser cette technologie.
Critique sans serveur
Le principal argument contre l'informatique sans serveur est la vitesse. Ou le problème bien connu de démarrage à froid. Le démarrage à froid est un retard dans l'exécution du code (peut atteindre jusqu'à 1 seconde pour des langages tels que JavaScript, Python, Go, Java, Ruby), qui se produit en raison de la nécessité d'allouer des ressources de calcul, de récupérer le code et de lancer le conteneur du côté du fournisseur.
Parfois, il s'agit vraiment de millisecondes. Cela soulève la question: est-ce vraiment à quelle vitesse le code accomplit sa tâche en tant que principale mesure de succès pour la gestion du cycle de vie des applications?
En tant que personne travaillant dans l'informatique et confrontée au développement de technologies pertinentes, je ne sais pas quelle est la métrique de vitesse qui est la clé. Après tout, il existe d'autres critères tels que la rapidité des cycles de développement, la facilité de maintenance, le temps de retour sur investissement du produit, les faibles coûts pour l'utilisateur final et la réduction des risques de perturbations en garantissant des opérations informatiques ininterrompues. Enfin, gagner du temps aux développeurs. Si vous y réfléchissez bien, l'informatique sans serveur répond à tous ces critères.
Que manque-t-il aux développeurs? Les réels avantages de Serverless
Si vous vous souciez de la vitesse d'exécution du code à un point tel que la latence possible de 200 millisecondes (jusqu'à une seconde) est inacceptable pour votre travail, alors l'informatique sans serveur peut ne pas vraiment fonctionner pour vous, et c'est tout à fait normal. Cependant, ce n'est pas une raison pour appeler Serverless une chose inutile. Chacun doit décider à quel point ces retards sont inacceptables pour lui.
L'informatique sans serveur est un moyen puissant de gérer l'infrastructure informatique, en particulier pour les entreprises qui n'ont peut-être pas les ressources nécessaires pour acheter leur propre infrastructure et embaucher des spécialistes pour maintenir les serveurs 24h / 24 et 7j / 7.
- Serverless . « ». Serverless, .
Dans la plupart des cas que j'ai rencontrés, l'utilisation de l'informatique sans serveur est un ordre de grandeur moins chère que l'utilisation de ressources auto-hébergées. Cela est vrai non seulement pour le coût de la puissance de calcul en tant que telle. Ce qui rend Serverless moins cher, c'est que la solution permet de gagner du temps pour exploiter, faire évoluer et entretenir l'infrastructure. Vous ferez de réelles économies car vous n'avez pas à engager une équipe d'ingénieurs systèmes en interne. Un bon talent coûte beaucoup plus cher que l'informatique sans serveur.
Je ne dis pas que l'informatique sans serveur est une panacée et convient à tout le monde. Si vos charges de travail sont stables et que vous disposez d'une expertise suffisante pour gérer votre infrastructure, vous feriez peut-être mieux de fonctionner sur des serveurs classiques.
Le démarrage à froid peut être nivelé
Pour en revenir à la question du temps d'exécution du code, le problème du démarrage à froid dépend beaucoup de la façon dont vous codez et configurez Serverless.
En général, il existe de nombreuses façons d'adoucir un démarrage à froid en le «chauffant». Ainsi, vous pouvez exécuter des fonctions avec une certaine fréquence, démarrer le service plus souvent ou garder certains conteneurs en cours d'exécution tout le temps (si le fournisseur le permet). Ces actions fourniront «l'environnement chaleureux» nécessaire au démarrage des fonctions.
En outre, certains fournisseurs sans serveur proposent des systèmes de surveillance intégrés qui vous informent de toute fonction de démarrage à froid afin que vous puissiez rationaliser le processus. Vous pouvez même synchroniser avec des e-mails ou des espaces de travail tels que Slack - les messages de démarrage à froid arriveront dans votre boîte de réception.
Quelle est la latence acceptable pour vos charges de travail?
C'est bien si vous connaissez la réponse à cette question. La latence de démarrage à froid est généralement appelée millisecondes. Dans tous les cas d'utilisation que j'ai rencontrés dans mon travail d'ingénieur de données, les retards dans le travail quotidien ne sont pas perceptibles.
En outre, les fournisseurs avancés vous permettent de créer une infrastructure hybride qui comprend des ordinateurs et des serveurs sans serveur.
L'informatique sans serveur est synonyme de NoOps et d'évolutivité
Le sans serveur vous permet de générer plus rapidement de la valeur commerciale car le fournisseur de cloud prend en charge la plupart des opérations informatiques. Alloue la puissance de calcul, adapte les clusters à la charge requise, surveille la sécurité et les mises à jour, s'occupe de l'intégrité de l'équipement, etc. Puisque les maux de tête associés à la gestion de l'infrastructure ont disparu, vous pouvez vous concentrer sur le travail avec les clients. Est-ce le principal à la fin?
Le sans serveur libère le temps d'ingénieurs hautement qualifiés afin qu'ils puissent se concentrer sur la résolution des problèmes commerciaux plutôt que sur la gestion des clusters.
Quand l'informatique sans serveur est-elle particulièrement utile?
Imaginez que vous démarrez une startup. Vous n'avez peut-être pas besoin d'une infrastructure importante au début et vous ne pouvez avoir qu'un seul développeur. Le paradigme sans serveur vous permet de démarrer petit et d'évoluer automatiquement au fur et à mesure de la croissance de votre entreprise avec un modèle de coût à l'utilisation.
Un autre groupe qui peut grandement bénéficier de l'informatique sans serveur est les petites entreprises qui ne disposent pas d'un grand service informatique. La capacité de gérer l'ensemble du cycle de vie d'une application avec un seul ingénieur DevOps (et non une équipe de programmeurs) est un énorme avantage de l'informatique sans serveur.
Si votre site ou votre application est soumis à une charge saisonnière, Serverless est également une excellente option. Par exemple, si vous avez une entreprise de commerce électronique, vous êtes susceptible de connaître des pics pendant le Black Friday et le Nouvel An. L'infrastructure sans serveur vous permet d'adapter la consommation de capacité à de telles situations.
En outre, tous les événements de la vie ne peuvent être prédits. Imaginez vendre des désinfectants pour les mains, d'autres antiseptiques, des masques faciaux et des articles similaires dans votre boutique en ligne. Puis il y a eu une pandémie mondiale, et maintenant tout le monde a besoin de vos produits. Avec une infrastructure sans serveur, vous serez prêt pour n'importe quelle charge de travail.
Vitesse d'exécution du code par rapport à la vitesse des cycles de développement
La vitesse de développement des produits est également utile. Dans de nombreux cas, l'informatique sans serveur prend en charge une architecture de microservices, ce qui signifie des cycles de développement plus rapides et des composants d'architecture relativement indépendants les uns des autres.
Il s'avère que Serverless permet d'itérer plus rapidement dans le cycle de développement et de livrer le produit à l'utilisateur final plus rapidement, ce qui compense simplement ces millisecondes de latence dues aux démarrages à froid périodiques.
Inconvénients de Serverless non mentionnés dans la vidéo
Certains des inconvénients de l'informatique sans serveur n'ont pas été mentionnés dans la vidéo, et je veux les nommer pour vous donner une image complète sans embellissement.
Bien que l'informatique sans serveur puisse être idéale dans certains cas en termes de coût, d'évolutivité et de gestion de l'infrastructure, ce n'est pas une panacée pour tout le monde.
- Il existe un risque de verrouillage du fournisseur . Les fournisseurs rendent leurs services si pratiques et rentables que vous courez le risque d'être lié à un fournisseur de cloud particulier.
- , , . , SSH , , .
- , .
- - , .
En général, utiliser de nouveaux paradigmes informatiques, tels que l'informatique sans serveur ou d'autres services cloud, dans la même logique que nos technologies sur site «domestiques», n'est guère une bonne idée. Lorsque vous copiez et collez directement des flux de travail de l'infrastructure physique vers le cloud, vous perdez de nombreux avantages des services cloud, voire pas du tout.
Il n'y a aucune raison de s'attendre à ce qu'une technologie soit applicable à toutes les entreprises, ne présente aucun inconvénient et soit bon marché.
De mon point de vue, il ne faut pas parler catégoriquement de Serverless (comme, en effet, d'autres solutions informatiques), en ne considérant qu'un seul aspect du travail et en ignorant le reste. L'informatique sans serveur a du sens. Si vous savez quand et comment les utiliser.
