CoreOS : le système cloud de demain ?

CoreOS : le système cloud de demain ? C'est le projet open source à suivre. Un Linux des extrêmes qui a subi une cure d'amaigrissement, et peut être déployé sur des milliers d'instances en quelques minutes.

 CoreOS, qu'est-ce que c'est ?

Le projet CoreOS est né avec l'ambition de recréer en open source ce que les géants du web comme Google font en interne pour gérer leurs parcs de serveurs. Google, Facebook ou Twitter gèrent des milliers, des dizaines de milliers de machines mais, sans outils d'automatisation, déployer une nouvelle fonctionnalité ou réaliser une simple mise à jour de sécurité peut demander un travail considérable aux équipes système. CoreOS propose à la fois une architecture Linux optimisée pour les serveurs et les outils nécessaires à la gestion de grands voire de très grands clusters.

 Qui supporte le projet ?

google datacenter
Recréer en open source ce que les géants du web font en interne pour gérer leurs parcs de serveurs  : telle est l'ambition de CoreOS. © Google

Comme toute légende de la Silicon Valley qui se respecte, CoreOS est né dans un garage de Palo Alto. A la tête du projet, Alex Polvi. Après avoir créé Cloudkick, une startup qu'il a revendue au géant du Cloud Rackspace, cet ancien de Mozilla a lancé le projet CoreOS avec Michael Marineau, un ancien de Google, et Brandon Philips, un développeur Linux. L'un des premiers à soutenir le projet était Lew Moorman, le président de Rackspace. Depuis, CoreOS a reçu le soutien financier d'Andreessen Horowitz et Sequoia Capital, les deux fonds d'investissement les plus prestigieux de la Silicon Valley.

 Qu'est-ce que ça comprend ?

La brique de base de CoreOS, c'est un Linux minimaliste, optimisé pour la performance serveurs. Les créateurs de CoreOS sont partis de Chrome OS pour mettre au point un Linux dépouillé à l'extrême, un Linux qui démarre très rapidement (une instance est lancée en 2 secondes seulement !), et qui consomme un minimum de RAM, 161 Mo selon ses auteurs. Outre l'OS, de multiples composants permettent de constituer puis gérer de très gros clusters de traitement.

fleet scheduling coreos
Outre l'OS, de multiples composants de CoreOS permettent de gérer de très gros clusters de traitement. © CoreOS


 Quelle est l'utilité de chaque brique ?

Outre l'OS lui-même, les composants clés de CoreOS sont tous issus de projets open source reconnus. Ainsi, Docker est le système de container retenu pour CoreOS. C'est lui qui permet de placer l'application à déployer dans un container indépendant qui va ensuite être déployé à grande échelle sur des milliers d'instances Linux. 

architecture de coreos 2
Plusieurs containers d'application peuvent être placés sur une instance. © CoreOS

La configuration du cluster et sa gestion sont centralisées via un certain nombre de briques etcd : un deamon qui fonctionne sur chaque nœud pour assurer la cohérence du cluster, systemd pour gérer le démarrage et l'arrêt des services et, enfin, Fleet pour la gestion globale du cluster.

L'architecture proposées par CoreOS permet ainsi de distribuer très rapidement des applications sur le cluster. Elle assure la redondance et la tolérance au panne, et réalloue dynamiquement des ressources.


 Quels sont les domaines d'applications ?

architecture de coreos
L'architecture proposées par CoreOS permet de distribuer rapidement des applications sur le cluster. Elle assure la redondance et la tolérance au panne, et réalloue dynamiquement des ressources. © CoreOS

Les fournisseurs de services Cloud et les hébergeurs sont les premiers intéressés par les travaux de CoreOS mais une grande diversité d'applications peuvent être "containérisées" dans Docker et donc déployées dans un cluster CoreOS. Le Docker Index regorge de containers prêts à être téléchargés : bases de données, moteurs PHP, Python, Ruby, serveurs Java, applicatifs type OpenERP ou SugarCRM, load balancer, etc. La grande force de CoreOS est de pouvoir répartir assez simplement ces différents containers dans le cluster en fonction des ressources disponibles et de la charge requise par les applications.

 Avec quelles plateformes cloud la solution est-elle compatible ?

Si les sites qui recherchent la performance à tout prix vont déployer CoreOS sur leurs propres machines, dans une approche type "bare metal", il est aisé de déployer CoreOS sur tous les grands services Cloud publics existants. Amazon EC2, Google Compute Engine, Rackspace et Brightbox sont les services cités comme pouvant exécuter CoreOS. Il est tout aussi possible de déployer CoreOS sur une architecture de Cloud privé, que ce soit sur des serveurs VMware, OpenStack et Eucalyptus, mais aussi Libvirt, QEMU et Vagrant.

 Qui l'utilise aujourd'hui ?

Si Alex Polvi a déclaré que de nombreuses entreprises testent CoreOS, y compris des entreprises du Fortune 500, aucun grand acteur n'a encore officiellement déclaré utiliser la solution.

eric barroca nuxeo
Eric Barroca, PDG de Nuxeo. L'éditeur open source a fait le choix de CoreOS pour supporter son offre cloud. © Nuxeo

En France, Eric Barroca, PDG de l'éditeur open source Nuxeo, a fait le choix de CoreOS pour sa future offre Cloud : "Nous préparons une offre de PaaS autour de notre plateforme et nous nous sommes intéressés à CoreOS dans ce but. Nous utilisons déjà Docker pour gérer nos instances et nous avons cherché une solution afin de faire tourner les containers Docker aussi bien que possible, avec un minimum d'overhead."

Il ajoute : "CoreOS fait tout cela très bien, mais ce qui est très intéressant avec cette solution, ce sont les outils qui vont autour : l'OS est conçu pour tourner en cluster, il est très léger et toute la partie coordination des nœuds du cluster, notamment via Etcd est extrêmement intéressante." Séduit par la solution, le Français participe au développement de la plateforme via le projet GoMeta, un reverse-proxy qui répartit la charge sur le cluster CoreOS.

 Comment ça s'insère dans une infrastructure existante ?

Pour Eric Barroca, la logique par container de CoreOS remet en cause l'approche actuelle qui veut que l'on crée une machine virtuelle par application : "CoreOS est une approche novatrice, c'est clairement la plateforme de nouvelle génération qui va succéder à la virtualisation. Elle garde les avantages de la virtualisation, tout en lui ajoutant la densité puisqu'on peut exécuter de multiples containers sur une seule instance CoreOS."