banner
Maison / Nouvelles / Mains
Nouvelles

Mains

Nov 13, 2023Nov 13, 2023

Par Simon Bisson, Chroniqueur, InfoWorld |

La distribution Linux CBL-Mariner de Microsoft devient de plus en plus importante pour Azure, à la fois dans le cloud et sur site. En plus d'héberger les fonctionnalités de l'interface graphique de WSL 2 dans Windows 11, il s'agit de l'hôte de conteneur dans Azure Kubernetes Service et est disponible en tant qu'image de conteneur de base dans le registre de conteneurs Microsoft, et il prend en charge les conteneurs sans distribution sur Azure. Cela vaut la peine de passer du temps avec CBL-Mariner, d'apprendre ses fonctionnalités et ses capacités et de voir comment cela peut affecter votre code.

Travailler avec CBL-Mariner est maintenant beaucoup plus facile avec la sortie de la version 2.0. Les premières versions devaient être créées à partir de zéro, ce qui nécessitait une chaîne d'outils basée sur Go fonctionnant sous Linux. Maintenant, vous pouvez simplement télécharger un ISO et l'installer dans votre choix d'outils de serveur virtuel. Comme j'utilisais Windows, j'ai utilisé Hyper-V pour héberger mon installation. Si vous préférez Azure en tant qu'hôte, vous pouvez configurer votre propre machine virtuelle ou utiliser une installation préconfigurée à partir de la bibliothèque de machines virtuelles d'Azure. Une approche alternative consiste à utiliser Docker pour télécharger et exécuter une image de base directement à partir du propre registre de conteneurs de Microsoft.

CBL-Mariner est un Linux très moderne, conçu pour fonctionner avec les systèmes UEFI (Unified Extensible Firmware Interface) afin que vous puissiez utiliser un disque virtuel Gen2 Hyper-V pour tirer le meilleur parti de votre installation. Il existe un écueil possible : vous devez vous assurer que votre environnement Hyper-V UEFI utilise le bon certificat ; sinon, l'ISO ne démarrera pas. Dans la section Sécurité des paramètres Hyper-V de votre machine virtuelle, assurez-vous que vous utilisez l'autorité de certification Microsoft UEFI pour un démarrage sécurisé, et non le certificat Windows par défaut.

Au premier démarrage, vous aurez le choix entre un programme d'installation textuel ou graphique. L'option graphique vous permet de choisir une installation complète ou une installation principale. J'ai choisi l'installation complète pour voir combien d'espace il utilisait et quels services il installait.

Une fois que vous avez choisi votre installation, sélectionnez le disque qu'il utilisera et s'il sera crypté ou non. Le chiffrement est utile dans un environnement mutualisé ou lorsque vous ne savez pas qui a accès à vos disques système. Le programme d'installation formate ensuite le lecteur choisi et installe CBL-Mariner.

Le programme d'installation graphique offre le choix d'une installation complète ou principale.

Sur mon système de test, une installation complète prenait 85 secondes et utilisait 2,2 Go d'espace disque. Une installation principale de CBL-Mariner à l'aide de l'installateur de texte a pris encore moins de temps, seulement 21 secondes, et n'a nécessité que 297 Mo d'espace.

Une installation complète de CBL-Mariner a pris moins de deux minutes.

Une fois installé, un autre démarrage vous amène à une invite de connexion. Comme Windows Server Core, il n'y a pas de bureau. Cela ne devrait pas être surprenant. CBL-Mariner est destiné à être un système sans tête fonctionnant sur des serveurs cloud, hébergeant des applications cloud natives dotées d'interfaces utilisateur Web. Un bureau en mode utilisateur ne fait qu'ajouter des risques de sécurité, ce qui rend le système plus complexe. Le gros avantage que vous obtenez avec une distribution légère et uniquement console comme celle de Microsoft est la simplicité. Si vous avez envie d'expérimenter, il existe une version X11 dans le référentiel de packages CBL-Mariner, probablement dans le cadre de son rôle de support graphique pour WSL 2.

Une petite installation comme celle-ci est importante lorsque vous travaillez avec des conteneurs. Cela signifie que votre image de base se chargera rapidement, garantissant un déploiement rapide des conteneurs à mesure que les applications évoluent dans Kubernetes ou dans des environnements d'orchestration légers tels qu'Azure Container Instances, à l'aide du package Moby-containerd par défaut. C'est là qu'intervient la version principale ; il est suffisamment petit pour être téléchargé extrêmement rapidement sur le réseau interne d'Azure ou depuis un registre de conteneurs local vers un système Azure Stack HCI. Les petites images permettront une densité encore plus grande sur des systèmes comme celui-ci, une fonctionnalité utile lorsque vous utilisez du matériel à ressources limitées en périphérie.

Microsoft recommande des images prédéfinies comme l'ISO que j'ai téléchargée ou ses propres images de conteneur. Bien que vous puissiez prendre la source et la personnaliser et la construire vous-même, elle n'aura pas suivi le processus de validation utilisé pour créer les propres versions de Microsoft.

Pour faciliter les choses, CBL-Mariner ressemble à n'importe quel autre Linux en mode texte. Il n'a pas beaucoup de services en cours d'exécution, principalement le système de fichiers de base, la mise en réseau et la gestion des journaux. C'est ce que vous attendez d'une plate-forme comme celle-ci : l'ensemble minimum de services possible pour garantir qu'il y a très peu de surface d'attaque. Cela vaut la peine de passer du temps avec la documentation de base pour comprendre comment gérer votre installation.

Un point philosophique important avec CBL-Mariner : ce n'est pas une distribution Linux qui est installée une fois puis continuellement mise à jour. Vous pouvez obtenir des mises à jour de sécurité auprès de Microsoft, mais il est préférable de le traiter comme un élément d'infrastructure qui ne change que lorsque vous installez une toute nouvelle version. Tout ce qui doit vivre dans l'espace utilisateur doit être installé en tant que conteneur. Le système d'exploitation de base est mis à jour mensuellement, ce qui donne un calendrier pour l'ajout de nouvelles versions à un processus d'intégration et de livraison continues (CI/CD).

Cela ne veut pas dire que vous ne pouvez pas le personnaliser pour vos propres projets. Microsoft fournit de la documentation et des outils pour ajouter des packages ou créer vos propres forks. Si vous créez votre propre version, vous devez vous baser sur un fork du code de Microsoft, en utilisant git rebase pour synchroniser votre code et celui de Microsoft avec les mises à jour et les versions de sécurité afin de ne pas vous laisser distancer par une version non sécurisée de CBL-Mariner.

Vous pouvez maintenant ajouter des packages à votre installation de base. Microsoft prend en charge le format de package RPM de RedHat, avec le gestionnaire de packages TDNF installé dans le cadre de la version de base. Si vous n'avez jamais utilisé TDNF auparavant, considérez-le comme une version mise à jour de l'outil yum familier. TDNF dans CBL-Mariner est configuré pour utiliser les propres référentiels de Microsoft, qui contiennent des versions corrigées de sécurité des packages testés avec CBL-Mariner. Microsoft a un accord de niveau de service pour les packages de correctifs, qui est basé sur le niveau de gravité de toutes les vulnérabilités.

Vous pouvez trouver un répertoire des packages organisés en ligne. C'est une liste relativement courte par rapport à RedHat ou Ubuntu, mais c'est ce que vous attendez d'une image de conteneur exécutée sur Azure. Les packages spécifiques à Microsoft incluent .NET et ASP.NET Core (ainsi que le serveur Web Kestrel), ainsi que la version OpenJDK de Microsoft et l'outil SQL Server, y compris les connecteurs ODBC. Outre les propres outils de Microsoft, le référentiel CBL-Mariner contient une longue liste d'outils et d'environnements de programmation Linux courants, notamment Python 3, Kubernetes et node.js. Les packages sont divisés en collections de base et étendues, ce qui vous permet d'héberger la plupart des applications, le userland résultant permettant de créer et de gérer des conteneurs à utiliser dans Azure.

Avec Microsoft déployant maintenant des serveurs basés sur ARM dans le cadre d'Azure, il est bon de voir les versions ARM de nombreux packages CBL-Mariner. Si vous créez des conteneurs destinés à s'exécuter sur ces nouveaux serveurs, il est important de vérifier les versions ARM prises en charge des packages que vous avez l'intention d'utiliser.

Les conteneurs étant la base du développement cloud natif, il est clair que Microsoft avait besoin de son propre système d'exploitation hôte pour Azure, ne serait-ce que pour éviter les problèmes liés à la perte de CoreOS. Bien que l'achat de Kinvolk ait amené Flatcar en interne, il existe toujours un besoin pour un système d'exploitation étroitement ciblé comme CBL-Mariner qui cible les besoins d'Azure, pas n'importe quelle plate-forme Kubernetes. Combiné avec Kestrel et YARP et fonctionnant sur ARM, CBL-Mariner pourrait également permettre à plus d'applications de fonctionner sur moins de serveurs, en utilisant moins d'énergie. C'est une très bonne raison de se familiariser avec le propre Linux de Microsoft.

Lisez ensuite ceci :

Auteur du blog Enterprise Microsoft d'InfoWorld, Simon Bisson a travaillé dans la recherche universitaire et en télécommunications, a été directeur technique d'une startup, a dirigé le côté technique de UK Online et a fait du conseil et de la stratégie technologique.

Copyright © 2022 IDG Communications, Inc.

Lisez ensuite ceci :