Qu’est-ce que Knative ?

Qu’est-ce que Knative ?

Knative permet d’exécuter les workloads sans serveur sur des clusters Kubernetes. Il accélère et facilite la création et l’orchestration des conteneurs avec Kubernetes.

Knative est une extension de la plateforme d’orchestration de conteneurs Kubernetes. Les outils et fonctionnalités proposés facilitent la création, le déploiement et la gestion des applications conteneurisées, offrant une expérience plus « native dans Kubernetes » (d’où son nom : « K » comme « Kubernetes » + « native »).

Comme Kubernetes, Knative est un logiciel open source initialement développé par Google en collaboration avec IBM, Pivotal, Red Hat, SAP et près de 50 autres entreprises. Aujourd’hui, la Cloud Native Computing Foundation (CNCF) héberge le projet open source Knative.

Vue aérienne d’autoroutes

Gardez la tête dans le cloud 


Recevez la newsletter hebdomadaire Think pour obtenir des conseils d’experts sur l’optimisation des paramètres multicloud à l’ère de l’IA.

Pourquoi Kubernetes a besoin de Knative

Kubernetes automatise et planifie le déploiement, la gestion et la mise à l’échelle des conteneurs. Ces derniers sont des composants applicatifs légers et exécutables, qui associent le code source aux bibliothèques et dépendances du système d’exploitation nécessaires à l’exécution du code, quel que soit l’environnement.

Les conteneurs permettent aux composants d’une application de partager les ressources d’une seule instance d’un système d’exploitation, de la même manière que les machines virtuelles (VM) permettent aux applications de partager les ressources d’un seul ordinateur physique. Plus petits et plus économes en ressources que les VM, mieux adaptés aux cycles de publication incrémentiels des méthodologies de développement Agile et DevOps, les conteneurs sont devenus les unités de calcul par défaut des applications cloud natives modernes. Les entreprises qui les utilisent citent d’autres avantages, notamment une meilleure qualité des applications, des niveaux d’innovation plus élevés, et bien plus encore :

Dans un contexte où le développement cloud natif gagne en popularité et les conteneurs se multiplient au sein de l’entreprise, les capacités d’orchestration de conteneurs de Kubernetes (planification, équilibrage de la charge, surveillance de la santé, etc.) facilitent grandement la gestion de ce volume croissant. Cependant, Kubernetes est un outil complexe qui oblige les développeurs à effectuer ou à modéliser de nombreuses tâches répétitives telles que l’extraction du code source de l’application à partir de référentiels, la création et le provisionnement d’images de conteneurs autour du code et la configuration des connexions réseau hors Kubernetes à l’aide de différents outils. Incorporer les conteneurs gérés par Kubernetes dans un pipeline automatisé d’intégration continue/livraison continue (CI/DC) requiert des outils spécialisés et un codage personnalisé.

Knative élimine cette complexité grâce à des outils qui automatisent ces tâches directement dans Kubernetes. Le développeur définit le contenu et la configuration du conteneur dans un seul et même fichier manifeste YAML, et Knative se charge de créer le conteneur et de programmer le réseau pour définir l’itinéraire, l’entrée, l’équilibrage de charge, etc. Knative propose également une interface de ligne de commande appelée CLI Knative, qui permet aux développeurs d’accéder aux fonctionnalités de Knative sans modifier les fichiers YAML.

AI Academy

Se préparer à l’IA avec le cloud hybride

Dirigé par des leaders d’opinion IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires qui leur permettront d’orienter leurs investissements IA vers les opportunités les plus prometteuses.

Rendre les conteneurs serverless

L’informatique sans serveur est un modèle d’exécution cloud natif qui facilite le développement des applications et améliore sa rentabilité. Le modèle informatique sans serveur

  • provisionne les ressources informatiques à la demande, les met à l’échelle en toute transparence, en fonction des requêtes, et les met à zéro lorsque plus aucune requête n’est faite ;

  • confie au fournisseur de cloud toutes les tâches de gestion de l’infrastructure (mise à l’échelle, planification, application des correctifs, provisionnement, etc.), pour permettre aux développeurs de se concentrer sur le développement et l’innovation ; et

  • permet aux clients du cloud de ne payer que les ressources utilisées ; ils ne paient jamais pour une capacité inutilisée.

À lui seul, Kubernetes ne peut pas exécuter d’applications sans serveur sans un logiciel spécialisé qui l’intègre à la plateforme sans serveur d’un fournisseur de cloud spécifique. Knative permet à n’importe quel conteneur de s’exécuter en tant que workload sans serveur sur n’importe quel cluster Kubernetes, que le conteneur soit construit autour d’une fonction sans serveur ou d’un autre code d’application (par exemple, des microservices), en abstrayant le code et en gérant le routage réseau, les déclencheurs d’événements et la mise à l’échelle automatique.

Comment fonctionne Knative : composants Knative

Knative s’appuie sur Kubernetes et ajoute trois composants principaux, ou fonctions primitives : Build, Serving et Eventing.

Build

Le composant Knative Build automatise la conversion du code source en conteneur. Ce processus comprend généralement plusieurs étapes, notamment :

  • Extraire le code source à partir d’un référentiel de code tel que GitHub ;
  • Installer les dépendances sous-jacentes (variables d’environnement et bibliothèques de logiciels) dont le code a besoin pour s’exécuter ;
  • Créer des images de conteneurs
  • Mettre les images de conteneurs dans un registre où Kubernetes et les autres développeurs pourront les trouver.

Knative utilise les API Kubernetes, ainsi que d’autres outils, pour son processus de création. Le développeur crée un manifeste unique (généralement un fichier YAML) qui spécifie toutes les variables (emplacement du code source, dépendances requises, etc.), et Knative utilise le manifeste pour automatiser la création du conteneur.

Serving

Le composant Serving déploie et exécute les conteneurs en tant que services Knative évolutifs. Serving fournit les fonctionnalités essentielles suivantes :

  • La configuration définit et gère l’état d’un service. Elle assure également la gestion des versions : chaque modification apportée à la configuration entraîne la création d’une nouvelle version du service, et les versions précédentes sont enregistrées.

  • Le routage intelligent des services permet aux développeurs d’acheminer le trafic vers les différentes versions du service. Supposons que vous ayez créé une nouvelle version du service, mais que vous souhaitiez la déployer auprès d’un groupe d’utilisateurs avant de procéder à une migration complète. Le routage intelligent des services vous permet d’acheminer un pourcentage de requêtes utilisateurs vers le nouveau service, et le reste vers une version précédente. Au fur et à mesure que votre confiance dans le nouveau service s’accroît, vous pourrez y acheminer davantage de trafic.

  • Mise à l’échelle automatique. Knative peut faire évoluer les services jusqu’à des milliers d’instances ; il peut également les réduire à zéro (c’est-à-dire aucune instance du conteneur), ce qui est essentiel pour prendre en charge les applications sans serveur.

Knative Serving emprunte les capacités de routage intelligent des services Istio, une autre application de l’écosystème Kubernetes. Istio est un maillage de services open source pour Kubernetes qui fournit également les fonctionnalités suivantes : authentification pour les demandes de service, chiffrement automatique du trafic pour une communication sécurisée entre les services, indicateurs détaillés portant sur les microservices et les fonctions serverless, ainsi que d’autres outils permettant aux développeurs et aux administrateurs d’optimiser l’infrastructure. 

Eventing

Le composant Eventing de Knative permet à différents événements de déclencher leurs services et fonctions basés sur des conteneurs. Knative met en file d’attente et transmet ces événements aux conteneurs adaptés. Il n’est donc pas nécessaire d’écrire des scripts ou de mettre en œuvre un middleware pour cette fonctionnalité. Knative gère également les canaux, qui sont des files d’attente d’événements parmi lesquels les développeurs peuvent choisir, et le bus, une plateforme de messagerie qui transmet les événements aux conteneurs. Il permet également aux développeurs de configurer des flux qui relient un événement à une action à effectuer par leurs conteneurs.

Les sources Knative Event permettent aux développeurs de créer plus facilement des connexions avec les producteurs d'événements tiers. Knative Event crée automatiquement la connexion avec le producteur d’événements et achemine les événements générés. Nul besoin de savoir le faire par programmation : KNative se charge de tout.

Cas d’utilisation de Knative

Pour résumer, Knative prend en charge plusieurs cas d’utilisation visant à simplifier le développement d’applications conteneurisées, ou encore à optimiser l’utilisation des conteneurs.

Rationaliser Kubernetes. En éliminant les tâches répétitives de construction et de configuration, Knative améliore la productivité des développeurs dans Kubernetes. Knative profitera tout particulièrement aux équipes de développement qui peinent à faire face au nombre croissant de clusters Kubernetes.

Accélérer le passage au « sans serveur ». Les environnements sans serveur peuvent être difficiles à configurer et à gérer manuellement. Knative permet aux entreprises de configurer rapidement leurs workloads sans serveur. En ce qui concerne les développeurs, il suffit qu’ils créent le conteneur pour que Knative l’exécute comme fonction sans serveur en arrière-plan.

Prendre en charge les cycles de vie Agile et DevOps. En permettant aux développeurs d’accélérer la création des conteneurs et de leurs nouvelles versions, Knative facilite le déploiement des applications conteneurisées par petites étapes rapides et itératives dans le cadre des workflows Agile ou DevOps. Les services Knative s’intègrent facilement aux pipelines CI/CD automatisés, sans requérir un logiciel particulier, ni une programmation personnalisée.

Déploiement aisé de nouvelles fonctionnalités. Le déploiement de nouvelles versions auprès des clients peut révéler des problèmes logiciels susceptibles d’affecter les processus métier. La configuration et le routage de Knative permettent aux développeurs d’exposer les nouvelles révisions de conteneurs à un sous-ensemble de la base d’utilisateurs. Ils peuvent ensuite élargir progressivement cette audience au fur et à mesure qu’ils résolvent les problèmes ou revenir rapidement à des versions antérieures si nécessaire.

Permettre aux développeurs de se concentrer sur le codage et l’innovation. Le DevOps permet aux développeurs d’administrer leurs propres environnements. Mais en fin de compte, ce qui les intéresse, c’est de pouvoir créer logiciels sans bogues et fonctionnalités innovantes, et non de configurer des files d'attente de bus de messages pour déclencher des événements, ni de gérer l’évolutivité des conteneurs. Knative permet aux développeurs de consacrer plus de temps à faire ce qu’ils savent faire de mieux.

Solutions connexes
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud est une plateforme de conteneurs OpenShift entièrement gérée.

Découvrir Red Hat OpenShift
Solutions de conteneurs

Les solutions de conteneurs exécutent et étendent les workloads conteneurisés avec sécurité, innovation open source et déploiement rapide.

Découvrir les conteneurs
Services de conseil cloud 

Déverrouillez de nouvelles fonctionnalités et stimulez l’agilité de votre entreprise grâce aux services de conseil d’IBM Cloud. Découvrez comment co-créer des solutions, accélérer la transformation numérique et optimiser les performances grâce à des stratégies de cloud hybride et à des partenariats d’experts.

Services cloud
Passez à l’étape suivante

Modernisez votre infrastructure grâce aux solutions de conteneurs IBM. Exécutez, mettez à l’échelle et gérez des workloads conteneurisés dans tous les environnements avec flexibilité, sécurité et efficacité en utilisant la plateforme complète de conteneurs d’IBM.

Découvrir les solutions de conteneurs Créer votre compte IBM Cloud gratuit