Comment le plan de transformation de l'industrie d'IBM tire parti de l'IA, de la 5G et de la collaboration
Les applications prolifèrent, la complexité du cloud explose et Kubernetes s’impose comme base du déploiement d’applications dans le cloud. Cela ressemble à une tâche d’optimisation mûre pour l’apprentissage automatique, et StormForge agit sur ce point.
Le cloud est devenu la norme de facto pour le déploiement d’applications. Kubernetes est devenu la norme de facto pour le déploiement d’applications. Le réglage optimal des applications déployées sur Kubernetes est une cible mouvante, ce qui signifie que les applications peuvent être sous-performantes ou trop dépensées. Ce problème pourrait-il être résolu d’une manière ou d’une autre grâce à l’automatisation ?
C'est une question très raisonnable à poser, que d' autres se sont également posée. Alors que Kubernetes évolue et devient de plus en plus complexe à chaque itération, et que les options de déploiement sur le cloud prolifèrent, il devient de plus en plus difficile d’affiner le déploiement et l’exploitation des applications. C'est la mauvaise nouvelle.
La bonne nouvelle, c’est que nous avons maintenant atteint un point où Kubernetes existe depuis un certain temps et que des tonnes d’applications l’ont utilisé tout au long de sa vie. Cela signifie qu’il y a un ensemble de connaissances -- et surtout, de données -- qui ont été accumulées. Cela signifie, à son tour, qu’il devrait être possible d’utiliser l’apprentissage automatique pour optimiser le déploiement d’applications sur Kubernetes.
C’est ce que fait StormForge depuis 2016. Jusqu’à présent, ils ont ciblé les environnements de pré-déploiement. À partir d’aujourd’hui, ils ciblent également Kubernetes en production. Nous avons rencontré Matt Provo, PDG et fondateur, pour discuter des tenants et aboutissants de l'offre de StormForge.
Optimiser Kubernetes avec le machine learning
Lorsque Provo a fondé StormForge en 2016 après une longue période en tant que chef de produit chez Apple, l’objectif était d’optimiser la consommation d’électricité dans les grands équipements de CVC et de fabrication, en utilisant l’apprentissage automatique. L’entreprise utilisait Docker pour ses déploiements, et à un moment donné fin 2018, elle est passée à Kubernetes. C’est à ce moment-là qu’ils ont trouvé le cas d’utilisation parfait pour leur compétence principale, comme l’a dit Provo.
Un pivot, une acquisition, 68 millions de dollars de financement et de nombreux clients plus tard, StormForge annonce aujourd’hui Optimize Live, la dernière extension de sa plateforme. La plateforme utilise l’apprentissage automatique pour améliorer intelligemment et automatiquement les performances et la rentabilité des applications dans les environnements de production Cloud Native.
La première chose à noter est que la plate-forme de StormForge le faisait déjà pour les environnements de pré-production et de non-production. L’idée est que les utilisateurs spécifient les paramètres qu’ils souhaitent optimiser, tels que l’utilisation du processeur ou de la mémoire.
Ensuite, StormForge lance différentes versions de l'application et revient aux options de configuration de l'utilisateur pour déployer l'application. Selon StormForge, cela se traduit généralement par des économies de 40 à 60 % et une augmentation des performances de 30 à 50 %.
Il est toutefois important de noter qu'il s'agit d'un problème d'optimisation multi-objectifs. Cela signifie que si les modèles d'apprentissage automatique de StormForge tentent de trouver des solutions qui établissent un équilibre entre les différents objectifs fixés, il ne sera généralement pas possible de les optimiser tous simultanément.
Plus il y a de paramètres à optimiser, plus le problème est difficile. En règle générale, les utilisateurs fournissent jusqu’à 10 paramètres. Ce que StormForge voit, a déclaré M. Provo, c’est un continuum coût-performance.
Dans les environnements de production, le processus est similaire, mais avec quelques différences importantes. StormForge appelle cela le côté observation de la plateforme. Les données de télémétrie et d’observabilité sont utilisées, via des intégrations avec des solutions APM (Application Performance Monitoring) telles que Prometheus et Datadog.
Optimize Live fournit ensuite des recommandations en temps quasi réel, et les utilisateurs peuvent choisir de les appliquer manuellement ou d’utiliser ce que Provo a appelé « définir et oublier ». C’est-à-dire laisser la plate-forme choisir d’appliquer ces recommandations, tant que certains seuils définis par l’utilisateur sont atteints :
« L’objectif est d’offrir suffisamment de flexibilité et une expérience utilisateur qui permette au développeur de spécifier lui-même les éléments qui l’intéressent. Ce sont les objectifs dans lesquels je dois me tenir. Et voici mes objectifs. Et à partir de ce moment-là, l’apprentissage automatique entre en jeu et prend le relais. Nous fournirons des dizaines, voire des centaines d'options de configuration qui atteignent ou dépassent ces objectifs », a déclaré M. Provo.
La ligne fine avec Kubernetes en production
La frontière est très mince entre l'apprentissage et l'observation à partir des données de production, et la mise au point en direct pendant la production, a ajouté M. Provo. Lorsque vous franchissez cette ligne, le niveau de risque est ingérable et intenable, et les utilisateurs de StormForge ne le voudraient pas -- c’était leur réponse sans équivoque. Les utilisateurs ont la possibilité de choisir où se trouve leur tolérance au risque et ce avec quoi ils sont à l’aise du point de vue de l’automatisation.
En pré-production, les différentes options de configuration des applications sont testées en charge via un logiciel créé à cet effet. Les utilisateurs peuvent apporter leur propre solution de test de performance, à laquelle StormForge s'intégrera, ou utiliser la solution de test de performance de StormForge, qui a été intégrée dans le cadre d'une acquisition.
L’optimisation du déploiement d’applications sur Kubernetes est un objectif multi-objectifs Image : StormForge
Historiquement, il s'agit de la plus grande entrée de données de StormForge pour son apprentissage automatique, a déclaré M. Provo. Le coup d’envoi, cependant, n’a pas été facile. StormForge était riche en talents, mais pauvre en données, comme l’a dit Provo.
Afin de bootstrap son machine learning, StormForge a fait de très bons contrats à ses premiers gros clients, en contrepartie du droit d’utiliser les données issues de leurs cas d’usage. Cela a bien fonctionné, et StormForge a maintenant construit sa propriété intellectuelle autour de l’apprentissage automatique pour les problèmes d’optimisation multi-objectifs.
Plus précisément, autour de l’optimisation Kubernetes. Comme l’a noté Provo, la base est là, et tout ce qu’il faut pour affiner chaque cas d’utilisation spécifique et chaque nouveau paramètre prend quelques minutes, sans qu’il soit nécessaire de procéder à des ajustements manuels supplémentaires.
Il y a un peu d'apprentissage qui a lieu, mais dans l'ensemble, StormForge voit cela comme une bonne chose. Plus la plateforme peut rencontrer de scénarios et de situations, meilleures sont les performances.
Dans le scénario de production, StormForge est en quelque sorte en concurrence avec Kubernetes lui-même. Kubernetes dispose de capacités de mise à l’échelle automatique, bot verticalement et horizontalement, avec VPA (Vertical Pod Autoscaler) et HPA (Horizontal Pod Autoscaler).
StormForge travaille avec l’APV, et prévoit de travailler également avec l’APH, pour permettre ce que Provo a appelé une mise à l’échelle intelligente bidirectionnelle. StormForge mesure l’optimisation et la valeur fournies par rapport à ce que le VPA et le HPA recommandent à l’utilisateur dans un environnement Kubernetes.
Même dans le scénario de production, a déclaré M. Provo, ils constatent des économies de coûts. Ce n’est pas tout à fait aussi élevé que les options de pré-production, mais cela représente tout de même une économie de 20 à 30 % et une amélioration générale de 20 % des performances.
Provo et StormForge vont jusqu’à offrir une garantie de réduction des déchets dans le cloud. StormForge garantit une réduction minimale de 30 % des coûts des ressources des applications cloud Kubernetes. Si les économies ne correspondent pas aux 30 % promis, Provo paiera la différence sur votre facture cloud pendant 1 mois (jusqu’à 50 000 $/client) et fera don du montant équivalent à un organisme de bienfaisance vert de votre choix.
Lorsqu’on lui a demandé, Provo a déclaré qu’il n’avait pas eu à honorer cet engagement, même une seule fois à ce jour. Alors que de plus en plus de personnes migrent vers le cloud et que de plus en plus de ressources sont consommées, il existe un lien direct avec les déchets du cloud, qui sont également liés à l’empreinte carbone, a-t-il ajouté. Provo considère que StormForge a un fort côté axé sur la mission.
