samedi , 21 juillet 2018
Home » Articles » De CoreOS à Nano : les micro-OS se réduisent pour les conteneurs

De CoreOS à Nano : les micro-OS se réduisent pour les conteneurs

CoreOS, Red Hat, Ubuntu, VMware, Rancher et Microsoft changent ses propres caractéristiques pour le système d’exploitation à échelle réduite, centré sur le conteneur et à l’échelle du cloud.

C’est toute une guerre pour voir quel système d’exploitation sera couronné roi du cloud. Et devine quoi ? Aucun des systèmes d’exploitation traditionnels ne va gagner !

La raison pour laquelle aucun des systèmes d’exploitation traditionnels ne gagnera, c’est qu’ils ne sont tout simplement pas conçus pour le cloud – ils sont trop gonflés. En conséquence, une nouvelle génération de systèmes d’exploitation super-maigres et minimalistes émerge pour les remplacer.

Remarque : nous allons nous référer à ces systèmes d’exploitation minimalistes comme des micro systèmes d’exploitation. Vous avez peut-être également entendu parler de systèmes d’exploitation de conteneurs, car ils sont conçus pour faire fonctionner des conteneurs.

Pour définir la scène, le cloud concerne trois choses principales dont la densité, l’élasticité et la sécurité. De toute évidence, le cloud concerne beaucoup de choses, mais la densité, l’élasticité et la sécurité sont au centre du cloud computing.

Et ce sont ces trois facteurs qui annoncent la disparition du système d’exploitation traditionnel dans le cloud, et la naissance du micro système d’exploitation.

Qu’est-ce qu’un micro système d’exploitation ?

En un mot, un micro système d’exploitation est un système d’exploitation conçu pour une chose, et une chose seulement dont les charges de travail du serveur. Il n’y a rien à ajouter pour gérer les choses comme les interfaces utilisateurs assez graphiques, les applications de productivité de bureau, ou même des services de serveur qui ne sont pas absolument nécessaires. Plus rien ! Les micro systèmes d’exploitation sont réduits au strict minimum, pas de systèmes d’exploitation supplémentaire.

Un principe fondamental du micro système d’exploitation est que les plus petites empreintes permettent de plus grandes densités et une plus grande sécurité. Autrement dit, des empreintes plus petites conduisent à moins de complexité, moins de vulnérabilités, moins de patches, moins de redémarrages, des temps de démarrage plus courts … bref, moins de gaspillage.

Et même si tout a commencé dans le monde Linux, la bataille est si chaude qu’elle s’est répandue dans le monde de Windows. Tout le monde est en compétition pour être couronné roi du cloud.

Dans cet article, nous allons passer en revue certains des acteurs majeurs et plus intéressants dans ce nouvel espace passionnant de micro systèmes d’exploitation.

CoreOS

Tout d’abord, toute conversation sur les micro systèmes d’exploitation modernes devrait probablement commencer avec CoreOS, car on pense qu’il est juste de dire qu’il s’agissait du premier micro système d’exploitation influent conçu pour les environnements cloud d’aujourd’hui.

À un niveau élevé, CoreOS est une distribution Linux simplifiée conçue pour fonctionner avec les conteneurs – en utilisant initialement le moteur de conteneur Docker, mais plus récemment en utilisant son propre moteur de conteneur rkt. (Remarque : rkt se prononce « rocket ».) D’une manière ou d’une autre, cette focalisation sur les conteneurs a permis à CoreOS de supprimer les gestionnaires de paquets et l’ensemble des charges supplémentaires, lui permettant d’être réduit à une taille de 161Mo seulement (version actuelle au moment de la rédaction de cet article).

CoreOS est donc petit et conçu pour une utilisation avec des conteneurs. Mais, la distribution Linux de CoreOS n’est qu’une partie de ce que CoreOS, la société, essaie d’accomplir. La raison d’être de l’entreprise pourrait se résumer en deux points :

  • Pour sécuriser les cloud ​​et Internet
  • Pour apporter l’infrastructure de type Google au grand public

En ce qui concerne la sécurisation des clouds et d’Internet, la simplification des mises à jour constitue une part importante de la proposition de valeur CoreOS. Les mises à jour du système d’exploitation sont basées sur l’image, ce qui signifie que chaque fois que des mises à jour sont nécessaires, toute l’image du système d’exploitation est mise à jour. Plutôt que d’essayer de mettre à jour plusieurs packages et services individuels, CoreOS s’appuie sur des mises à jour complètes des images et des conteneurs du système d’exploitation. Cela s’avère être un excellent moyen de mettre à jour les systèmes et permet un retour en arrière plus facile si nécessaire.

Pour l’infrastructure de type Google, CoreOS propose une suite de services pour orchestrer des écosystèmes de conteneurs évolutifs et fournir des réseaux superposés, des technologies telles que etcd, fleet et flannel.

En résumé, CoreOS est l’un des plus anciens micro systèmes d’exploitation conçus pour les conteneurs et les charges de travail dans le cloud d’aujourd’hui. Il est respectueusement petit et prend en charge les mises à jour atomiques basées sur l’image.

Project Atomic

Ne voulant pas être laissé de côté, Red Hat a engendré un projet communautaire appelé Project Atomic. Le but du projet est de produire des versions optimisées pour le cloud et le conteneur de Fedora, RHEL et CentOS :

  • Fedora Atomic Host
  • RHEL Atomic Host
  • CentOS Atomic Host

Fedora Atomic Host est l’endroit où se trouvent les dernières nouveautés. RHEL Atomic Host prend ce qu’il aime de Fedora Atomic Host et l’intègre dans l’ensemble de l’entreprise. CentOS Atomic Host est l’édition soutenue par la communauté de RHEL Atomic Host.

Tout comme CoreOS, les Atomic Host sont des serveurs 64 bits centrés sur le conteneur et optimisés pour le cloud. Mais le nom « Atomic » n’a apparemment rien à voir avec la petite taille du serveur. C’est tout aussi bien, compte tenu du fait que, par rapport à de nombreux autres micro systèmes d’exploitation, les Atomic Host sont légèrement lourds. Un aperçu rapide des tailles d’images pour CentOS Atomic Host varie entre plusieurs centaines de mégaoctets pour la version compressée et environ un gigaoctet pour la version non compressée.

Apparemment, le nom « Atomic » vient de la façon dont les mises à jour sont effectuées. Comme CoreOS, les Atomic Host prennent en charge les mises à jour basées sur l’image.

En résumé, Project Atomic fournit des versions optimisées pour le cloud et le conteneur de Fedora Linux, RHEL et CentOS qui exploitent le moteur de conteneur Docker et prennent en charge les mises à jour basées sur des images.

Snappy Ubuntu Core

À l’époque où le monde devenait fou et que cette nouvelle génération de micro systèmes d’exploitation était en train de naître, les équipes de Canonical (propriétaires d’Ubuntu Linux) travaillaient dur sur une version minimaliste d’Ubuntu pour les téléphones mobiles et les tablettes. Et ainsi l’histoire se passe … quand Ubuntu s’est rendu compte qu’il avait besoin d’un micro système d’exploitation optimisé pour les clouds et les conteneurs, il avait déjà quelque chose de très bon pour répondre  à cette demande.

Réduire la taille d’une longue histoire, c’est ainsi que Snappy Ubuntu Core est né. Sur le plan technique, c’est une version allégée d’Ubuntu Server qui pèse environ 100 Mo en tant qu’image compressée. Pas étonnant que Snappy tire parti de Docker et prend en charge les mises à jour basées sur l’image.

VMware Project Photon

En tant qu’expert dans le repérage d’une tendance et dans la fourniture de produits solides et professionnels, VMware vient prendre part à cette liste avec son propre micro système d’exploitation, baptisé Project Photon. Photon est actuellement en avant-première technologique avec seulement un support de la communauté.

Project Photon est une distribution Linux simplifiée optimisée pour fonctionner sur VMware vSphere et tirer parti de l’écosystème VMware pour les correctifs et les mises à jour, et la gestion d’accès basée sur l’identité. Les options d’installation vont d’une « micro »image de 260 Mo à une installation complète de 1,7 Go.

En plus de Docker, Photon travaille avec les conteneurs rkt et Garden. Ce dernier est un format conteneur utilisé dans Cloud Foundry de Pivotal. Et Photon prend en charge non seulement les mises à jour basées sur l’image, mais comprend également un gestionnaire de paquets plus traditionnel, semblable à yum.

Le fait que Project Photon soit optimisé pour fonctionner sur vSphere (drivers et un noyau optimisé) est génial. Mais, les vraies fonctionnalités de Project Photon seront le support VMware et les intégrations dans l’écosystème vSphere.

Si vous êtes une entreprise prudente déjà cliente de VMware, il n’y a peut-être pas de meilleure plate-forme pour commencer à travailler dans les conteneurs.

RancherOS

OK, et maintenant pour une vraie surprise …

RancherOS (de Rancher Labs) est un système peu connu et prend toute cette intégration de cloud et de conteneur au prochain niveau.

Pour commencer, il est incroyablement petit avec à peu près 20Mo, ce qui est génial pour une plate-forme de serveur optimisée pour le cloud. Mais, ce n’est pas le bon parti … ce qui est bien c’est la façon dont RancherOS intègre Docker.

Revenons un instant. CoreOS, Atomic Hosts, Snappy Ubuntu Core et Project Photon démarrent tous un noyau Linux, démarrent une série de services système, puis superposent une exécution de conteneur. RancherOS adopte une approche différente. Après avoir démarré le noyau Linux, il engendre une instance Docker spéciale appelée system-docker et démarre tous les services système en tant que conteneurs. Oui, vous avez bien lu. Avec RancherOS, le noyau Linux est bootstrappé (ou autoamorcé), puis un processus system-docker est généré. Ce processus system-docker obtient PID 1 et est responsable du démarrage de tous les processus liés au système en tant que conteneurs – tels que udev et syslog.

Il n’y a pas de doute que RancherOS est une approche intéressante et extrêmement innovante pour créer des systèmes d’exploitation optimisés pour le cloud. Sans parler du fait que c’est le plus petit des micro systèmes d’exploitation que nous avons examinés, et qu’il est le plus étroitement intégré avec un moteur de conteneur (Docker). Toutefois, il est fortement recommandé de le vérifier.

Windows Nano Server

Enfin et surtout…. Ne voulant pas laisser Linux hors de l’écosystème des clouds ​​et des conteneurs, Microsoft a récemment dévoilé son propre micro système d’exploitation appelé Windows Nano Server.

Réalisant que Windows Server Core était un pas dans la bonne direction – mais seulement un petit pas – Microsoft prend le minimalisme au niveau supérieur avec Nano Server. Nano est présenté comme une version très réduite de Windows Server, Microsoft promettant « une taille de VHD plus petite de 93%, des bulletins critiques moins de 92% et de redémarrages nécessaires moins de 80% ».

Une des raisons qui a conduit à cette réduction de taille est le fait que Nano Server n’a pas d’interface graphique. En fait, il n’a même pas d’invite CLI ou PowerShell locale – toute la gestion doit être effectuée à distance via WMI ou PowerShell Remote ou des futurs outils de gestion Web. Les installations de package et les mises à jour sont gérées via DISM, l’outil de gestion d’image de Microsoft.

Machines de cloud maigres et moyennes

Il semble très probable que les clouds ​​du futur seront alimentés par des serveurs légers et des applications conteneurisées, avec des micro systèmes d’exploitation et des conteneurs sur le devant de la scène. Dans cet esprit, examinons rapidement certains des impacts que cela peut avoir.

Tout d’abord, la petite taille de ces micro systèmes d’exploitation conduit naturellement à une plus petite surface d’attaque – un code moins vulnérable pour les hackers et les logiciels malveillants. Cela signifie également moins de code à corriger et potentiellement moins de redémarrages. Cela devrait également signifier des systèmes d’exploitation plus stables. Après tout, une base de code de 100 Mo est beaucoup plus facile à maintenir et à dépanner qu’une base de code 10 fois plus grande !

Deuxièmement, les mises à jour basées sur l’image constituent également un énorme pas en avant. Fini le temps où la mise à jour de votre système d’exploitation était un processus long et complexe impliquant des changements séquentiels de paquets individuels, et la grande doute que le système devienne instable. Les mises à jour basées sur l’image nous permettent de mettre à jour l’ensemble du système d’exploitation – et tous les packages liés au système d’exploitation – sous la forme d’une mise à jour unique. Cela élimine une grande partie de la complexité liée aux mises à jour et simplifie massivement le processus de restauration.

Les restaurations sont simplifiées en deux partitions : une partition pour l’image mise à jour et une pour la bonne configuration actuelle connue. Après avoir appliqué une mise à jour, la prochaine fois que vous redémarrerez le système d’exploitation, il reviendra avec la partition mise à jour. Si des problèmes surviennent, le système d’exploitation peut être redémarré sur la partition précédente connue. Les mises à jour basées sur des images permettent non seulement de simplifier les mises à jour et les restaurations, mais elles contribuent également à maintenir un état cohérent entre toutes les machines d’un grand cluster. Le processus de mise à jour des clusters volumineux est donc moins complexe.

En ce qui concerne le conteneur, vous devez considérer les exécutions de conteneur qui sont prises en charge. Au moment de la rédaction de cet article, certains micro systèmes d’exploitation fonctionnent uniquement sur Docker, tandis que d’autres cherchent activement à travailler avec Docker et CoreOS rkt. Vous devez analyser avec soin l’environnement d’exécution du conteneur le mieux adapté à votre processus métier et à vos applications.

Pour terminer, regardez les détails sur comment ces nouveaux micro systèmes d’exploitation sont gérés. La gestion de RancherOS se résume à la gestion des conteneurs Docker. CoreOS sera heureux de gérer la rapidité de vos systèmes d’exploitation – considérez-le comme OS en tant que service. Même dans le cas de Windows Nano Server – où toute la configuration se fera à distance – les signes indiquent des moyens plus simples et plus automatisés pour gérer le déploiement et la configuration. Que CoreOS gère notre système d’exploitation pour nous, ou que nous le fassions nous-mêmes, nous devrions tous avoir plus de temps pour nous concentrer sur nos applications.

À lire aussi

Qu’est-ce que la méthodologie agile ? Le développement de logiciels modernes expliqué

Les entreprises ont besoin de compétences en matière de logiciels pour offrir de bonnes expériences …