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.
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.
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
À 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.
Knative s’appuie sur Kubernetes et ajoute trois composants principaux, ou fonctions primitives : Build, Serving et Eventing.
Le composant Knative Build automatise la conversion du code source en conteneur. Ce processus comprend généralement plusieurs étapes, notamment :
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.
Le composant Serving déploie et exécute les conteneurs en tant que services Knative évolutifs. Serving fournit les fonctionnalités essentielles suivantes :
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.
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.
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.
Red Hat OpenShift on IBM Cloud est une plateforme de conteneurs OpenShift entièrement gérée.
Les solutions de conteneurs exécutent et étendent les workloads conteneurisés avec sécurité, innovation open source et déploiement rapide.
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.