OpenStack - informatique en nuage et Société - une conférence de Loïc Dachary

Présentation

  • Titre :OpenStack - informatique en nuage et Société - une conférence de Loïc Dachary
  • Intervenant : Loïc Dachary
  • Licences : gFDL, CC-by-SA, Art Libre
  • Durée : 49 mn 44 s
  • Média : openstack-demo.ogv (799 Mo)
  • Logiciels utilisés : Recordmydesktop pour la capture d'écran, Audacity pour le post traitement du son et
    Kdenlive pour la vidéo

Transcription

Emmanuel Charpentier : Bonjour à tous. Nous sommes aujourd'hui en compagnie de Loïc Dachary et nous enregistrons avec vous une conférence et une discussion autour du cloud. On va discuter un petit peu de ce dont il s’agit et de la manière dont ça se met en place. Je vous indique un petit peu, Loïc est un des grands pontes du Libre en France, membre émérite de l'April, c'est le moins qu'on puisse dire, végétarien du Libre ? La tête dans les nuages depuis 2012. Et puis nous avons Luc aux manettes qui va enregistrer et mettre en forme, Yoann et Nicolas qui seront là et qui vont regarder avec nous et discuter éventuellement de tout ça.

Loïc, alors le cloud de quoi il s'agit ?

Loïc Dachary : Alors le cloud, c'est présenté souvent par un discours marketing plutôt assez compliqué, où si on découpe ce slide-là en 12 heures de conférence après on sort avec mal à la tête et on n'a rien compris du tout. Moi je vous propose un découpage beaucoup plus simple où il y a 3 composants dont on entend parler assez souvent, c'est le composant de base qui est au niveau bas qui est IAAS Infrastructure As A Service par dessus lequel on trouve le PAAS, Plate-forme As A Service, ou bien le SAAS Sofware As A Service.

Emmanuel : As A Service, comme un service, c'est-à-dire quelqu'un vous rend ce service-là ?

Loïc : Mais oui, Sofware As A Service, on pense immédiatement à Google Mail où tous les services qui ne tournent pas sur notre propre machine. Le PAAS c'est encore quelque chose d'autre qui est plus technique. C'est là où des développeurs vont mettre leur morceau de logiciel pour qu'il soit exécuté dans un environnement cocooné, où ils n'aient pas à se préoccuper de problèmes d'installation. Ces 2 choses-là on ne va pas en parler. Ce sont des choses qui sont de plus haut niveau. Ce dont on va parler, ce qui est vraiment intéressant, là où il y a une vraie révolution qui se passe, c'est l'IAAS, l'Infrastructure As A Service. Et là on pense à Openstack qui est un ensemble de logiciels qui fournissent ce service et pas du tout des services applicatifs destinés aux utilisateurs.

On découpe le débat en 3 grandes parties. D'abord pourquoi c'est une révolution ? Pourquoi on a envie d'en parler ? Pourquoi on a envie de décrypter ce truc marketing ? Pourquoi ça vaut le coup ? Ensuite pour mettre les pieds dans le concret on va faire une démo live de OpenStack, montrer concrètement ce que c'est. En fait on peut le montrer parce que ce n'est pas si compliqué que ça. Et à la fin comme c'est un objet technique nouveau, il y a évidemment des conséquences sociétales et on va essayer de découvrir celles qui nous paraissent ( à nous des citoyens et engagés dans le libre ) les plus importantes.

Emmanuel : Le cloud peut être que le terme lui-même a un sens pour toi ?

Loïc : Aujourd'hui, non. Et en fait c'est une des grosses difficultés du cloud. Comment on peut l'expliquer? Moi j'y crois. Je me dis : « Oh là là, c'est un truc formidable! » Mais imagine ... là, maintenant on est tous les pieds dans l'internet. Imagine que tu voyages dans le temps, tu vas voir quelqu’un en 1990. Tu essayes de lui expliquer : « Ah l'internet c'est formidable, ça va changer la société ». Tu serais capable de le faire ? Tu serais capable de convaincre une personne qui n'a jamais vu 2 ordinateurs connectés que l'internet va révolutionner la société ? Il va te dire : « Ouais ce serait sympa, mais on peut déjà les connecter ». Mais il se passe quelque chose d'autre.

Dans le cloud, en fait, on est un petit peu dans cette position de pré-révolution où il faut trouver des raisons d'y croire. Alors moi je ne sais pas si vous vous y croyez, si on est là tous les 4, tous les 5, c'est probablement qu'on y croit un petit peu, de façon confuse. Moi j'ai une raison d'y croire, comme je suis un développeur, ce qui me fascine c'est qu'on puisse manipuler des machines comme on manipule des entiers. Donc là j'ai mis un morceau de code. On a dans la première ligne : "create instance = max count == 1", ça c'est typiquement ce que fait un programme. Il fait une comparaison de nombres et puis il le stocke dans une variable. Voila. Ça on a l'habitude. Et juste en-dessous ce qu'on voit c'est "self.create_instance" qui se met dans une variable "instance". Ça c'est une machine. Elles sont traitées au même niveau. Alors ça paraît complètement anodin. Mais reviens dans l'idée de tu es là maintenant de retour en 1990, est-ce que tu vas dire à la personne c'est « Connecter tous les ordinateurs ensemble ça va faire la révolution ! » Finalement c'est un truc technique et tu n'as pas à expliquer grand-chose. Donc moi ma raison d'y croire c'est faire des machines comme si c'était des entiers, et les manipuler pareil. C'est ma raison d'y croire.

Emmanuel : Tu prends de la hauteur, tu atteins les nuages et toi en tant que programmeur tu programmes des machines, enfin la mise en place de machines ?

Loïc : Mais oui, c'est la virtualisation. Toi tu fais ça tous les jours.

Nicolas Vinot : Oui, c'est quelque chose qui est courant dans l'industrie, d'avoir ce besoin de machines, de pouvoir déployer des applications et la problématique effectivement aujourd'hui c'est qu'on va vers des logiciels qui demandent de plus en plus de ressources, de plus en plus de machines et justement de décentralisation. Et si on n'a pas ces outils cloud on peut juste rien en faire, ce n'est pas possible de gérer ce genre d'architecture.

Loïc : Alors finalement toi tu y crois à cette révolution du cloud ?

Nicolas : Ah mais complètement !

Loïc : Et si tu devais expliquer à quelqu'un, tu lui dirais quoi ? « J'y crois parce que ? »

Nicolas : Aujourd’hui la problématique du cloud c'est que le terme est devenu un terme marketing assez trompeur. Quand on voit dans la presse ou dans le brochures commerciales, le cloud dont on entend beaucoup parler n'est pas le vrai cloud au sens de ce que permet de faire OpenStack et le terme est complètement détourné.

Loïc : Donc évidemment pour toi c'est sa réalité technique qui te séduit.

Nicolas : Voila, c'est vraiment la réalité technique, ce qu'on peut entendre au quotidien sur le cloud est souvent relativement faux et plutôt trompeur.

Emmanuel : De manière assez amusante, moi je retournerais peut-être dans les années 70 et 80, où les gens avaient un terminal qui se connectait à quelque chose et ils faisaient leur travail depuis le terminal et ça l'envoyait au quelque chose et ils récupéraient sans savoir vraiment ce qui se passait vraiment derrière. Et j'ai un peu cette impression des fois quand on est dans les nuages, on n'est plus à vraiment s’occuper de ce qui se passe. Il y a quelqu'un, il y a des spécialistes, il y a des techniciens qui s'en occupent pour nous et nous on est un peu utilisateurs, de loin. Et on a juste un câble, un tuyau qui nous relie entre eux. C'est juste une analogie, elle vaut ce qu'elle vaut !

Loïc : Quand tu es au niveau Sofware As A Service, c'est très sensible. Tu as l'impression par un clic de déclencher une montagne d’opérations qui t'échappent complètement, elles sont complètement opaques L’intérêt, je pense, de se pencher sur l'IAAS c'est que tu décryptes tout le mécanisme et aussi que tu te l'appropries.

Je ne sais pas toi, Yohan, tu as une expérience du cloud ?

Yoann Radenac : Non je n'ai pas d'expérience du cloud, mais c'est vrai qu'il y a un côté un peu magique avec ça, effectivement de voir que, ce qu'on fait en soft, on va pouvoir le faire en infrastructure avec des machines. Il y a aussi une telle facilité. Donc non je ne maîtrise pas, mais j'ai hâte de découvrir et de voir ce que c'est.

Loïc : Ben justement ça fait un super enchaînement avec la deuxième partie où on va mettre les doigts dedans et on va faire une live démo.

Loïc : Donc l'idée de cette live démo c'est de prendre un exemple qui serait un entrepreneur qui est dans son garage et il a imaginé faire un jeu, un WebGL. Un jeu WebGL, c'est "je fais de la 3D dans un browser web". Aujourd'hui c'est possible avec cette technologie : WebGL.

Emmanuel : Browser = navigateur.

Loïc : Un navigateur web, pardon. Donc ce jeu il a cette tête-là. Ça s'appelle MIOP, Monsters Is Other People : les monstres c'est les autres. Donc on démarre et l'idée c'est qu'on a des petites créatures. Un œil ici. Des petites créatures qui s’attachent à l’œil. Leur objectif c'est d’encercler une cible. On fait un train de petites créatures comme ça ... qu'on traîne, on va chopper la cible et on l'encercle. Et quand on a réussi à l'encercler, et paf, on change de niveau et on « level up ». C'est un jeu à 2 francs. C'est un jeu web, mais c'est super sympa. On a de la 3D dans le web. Ça, notre entrepreneur, il a fait. Il est super content et il se dit "maintenant je vais en faire une entreprise". Je vais faire une entreprise web avec ce jeu, recruter des utilisateurs. Pour pouvoir faire un classement qui compare leurs scores et peut-être leur vendre des items virtuels, leur vendre un abonnement, etc. Alors la façon dont ça apparaît dans la tête du développeur c'est je l'ai exemplifié comme ça : « je vais aller dans le cloud parce que c'est moderne. Et donc je vais choisir un provider de cloud. Là-dessus je vais développer mon application, je vais la déployer. Ici je vois la personne qui arrive et quand il y a un visiteur qui vient consulter mon application, paf, mon provider de cloud, là le petit truc qui se développe ( référence a l'animation qui est jouée ), c'est une ressource qui va s'occuper de cette personne-là. Évidemment quand mon visiteur s'en va, cette ressource-là elle me coûte, alors moi je voudrais que mon fournisseur d'informatique en nuage, il la supprime pour moi. C'est ce qui se passe, il supprime la ressource qui ne sert plus à rien et qui coûte de l'argent. Et hop elle disparaît et du coup j'ai un coût minimum. C'est ça qui me séduit dans les nuages. Et quand j'ai plein plein de visiteurs, à ce moment-là, mais juste au moment où j'ai plein plein de visiteurs et c'est ce qui se passe dans ma tête comme je le montre à l'écran, à ce moment-là il y a plein de ressources qui se créent, mais comme j'ai plein de visiteurs j'ai assez de ressources, j'ai assez d'argent, assez de ressources pour pouvoir payer toute cette infrastructure. »

Nicolas : Peut-être pour faire le parallèle avec la manière ancienne de faire, sur les anciens systèmes, cette société aurait eu de plus en plus d'utilisateurs et donc aurait acheté de plus en plus de machines, aurait acheté de plus en plus de serveurs qui lui auraient coûté de plus en plus cher et le jour où il y a une baisse d’activité et bien on ne peut se débarrasser des machines qu'on a achetées, on est obligé de continuer de les payer à vie. Il n'y a pas cette flexibilité.

Loïc : C'est ce qu'on appelle l'élasticité du cloud. Donc je me dis je vais dans les nuages et puis je vais pouvoir avoir cette élasticité comme je l'imagine dans ma tête. Et je vais pouvoir aussi l'automatiser, c'est-à-dire qu'à un moment je m'en occupe moi, à la main, et puis après je vais faire en sorte qu'un programme s'en occupe pour moi. Ça va être la cadence de la live démo. D'abord je fais des trucs à la main et ensuite je vais faire un programme qui montre comment ça se fait. Oui Yohan ?

Yohan : Alors quel est l'ordre de grandeur de temps pour ces ressources, c’est vraiment du direct ? Ça se fait comment ?

Loïc : C'est de quelques secondes.

Yohan : Voila d'accord.

Loïc : On crée une machine en quelques secondes. Ben oui ! Alors c'est plus lent qu'une variable. C'est beaucoup plus lent. Mais c'est quelques secondes, c'est pas quelques heures. Donc comme je suis cet entrepreneur fictif, je suis un développeur web. Il a une idée d'infrastructure qui est assez classique et pour un technicien on retrouve quelque chose de familier dans ce que je présente là et c'est l'idée de transposer une architecture familière dans les nuages histoire de ne pas se perdre. On a les visiteurs tout en bas, qu'est-ce qu'ils font ? Ils vont sur le game.com qui est mon nom de domaine. Là dessus ce jeu va être disponible parce qu'il va y avoir une adresse qui va me mener vers mon fournisseur de cloud. C'est une adresse IP. Cette adresse IP elle va être portée par un proxy de haute disponibilité ; c'est quelque chose qui va faire en sorte que si jamais une ressource tombe et bien il en trouve une autre. Et derrière ça je vais avoir des technologies web courantes qui sont des serveurs PHP. Là je vais en mettre 2, comme ça si il y en a un qui casse et bien il y a l'autre qui prend le relais. Et les données de mon utilisateur, toute ma base utilisateurs et puis mon classement je vais les stocker dans une base de données MySQL que je vais redonder c'est-à-dire que je vais en mettre une paire. C'est pour ça que j'ai figuré 2 serveurs MySQL. C'est cette architecture-là qu'on va déployer par la pratique dans le cloud, là maintenant. La première chose qu'on fait c'est qu'on va prendre une paire de clés. Quand on déploie des choses dans le cloud, ce n'est pas ouvert à tout le monde. D'abord on obtient des clés, on va fabriquer des ressources et la paire de clés va nous permettre d'y accéder. Ici je commence par me connecter à mon fournisseur de nuage avec mon compte et j’ai un panel, une page web dans lequel j'ai le menu Access & Security et tout en bas je vais pouvoir lui dire « vas-y fabrique moi une paire de clés ». Je vais l’appeler « demo » et hop ici il me la crée et ici il me permet de la télécharger. Le nuage a fabriqué une clé, il me la donne et ça me permettra ensuite de rentrer dans la nuage que je viens de créer. On n'a pas besoin de la créer, de la charger en vrai parce que c'est tout préparé, mais on a fait cette première étape indispensable.

Deuxième chose, on va créer notre base de données. On veut 2 machines, donc on vient dans Image & Snapshot. On va choisir un disque ici, un exemple de machine et on lui dit « vas-y, lance-moi cet exemple de machine ». Je vais dire que c'est une machine MySQL, je vais lui donner une taille, je vais choisir la clé qui me permet d'y accéder et j'ai dit que je voulais en lancer 2. Hop ! Et je le crée. Ici on voit dans le panel que les machines sont en cours de création. Là viennent d’apparaître des adresses IP. C'est ce qui leur permet de dialoguer en interne. On voit que ce sont des adresses IP qui sont privées. Elles sont à l'intérieur du cloud. On n'est pas du tout encore exposé sur le net. On reste à l'intérieur du cloud. On voit aussi des tailles de machines. Évidemment, quand on est dans le cloud, plus une machine est grosse, plus elle est chère, là on en a choisi une qui est toute petite, de façon à limiter nos coûts et on choisit une machine qui est dimensionnée en fonction de nos besoins.

Loïc : Lorsqu'on va déployer ici, on va faire en sorte qu'une des machines soit celle qui contient les données, celle sur laquelle on agit et que l'autre soit une machine de secours. Donc les données vont transiter de la machine primaire à la machine secondaire à l'intérieur du cloud et ça ne va pas nous coûter de l'argent. A contrario si on voulait accéder aux machines depuis le cloud, si on voulait servir des données depuis le cloud, si on voulait avoir des utilisateurs venant d'Internet et bien le fournisseur de nuage, il va nous faire payer les octets qui rentrent et qui sortent. Donc là, les machines sont créées et pour les reconnaître l'une et l'autre, on va juste leur changer de nom. On va dire qu'il y en a une qui est la machine primaire, c'est celle qui va contenir les données, et l'autre qui est la machine de secours pour le cas où l'autre casse. Voila on les a changé de nom.

On peut maintenant aller voir la machine par sa console. Donc ici, on voit une console qui est en fait comme un écran d'ordinateur sauf que là c'est l'écran d'une machine virtuelle. On voit un écran de boot qui est assez rébarbatif et tout en bas on voit un login, on va pouvoir se connecter avec l'utilisateur cirros et le mot de passe, et voilà. Ici on voit qu'on a une adresse, c'est 10.1.0.3 et si on ping 10.1.0.5 on voit qu'on arrive à accéder à l'autre machine qui est la machine secondaire. Elles sont effectivement bien connectées. On a fait notre première étape, on a nos deux machines.

Ensuite notre base de données, on veut la stocker sur un disque. Ce disque-là on veut qu’il ait des caractéristiques de redondance, de durabilité. On ne veut pas qu'il soit attaché à la machine qu'on vient de créer. On veut la redimensionner, on veut prendre le disque et le mettre sur autre chose. Pensez à un disque USB qu'on met sur un laptop. C'est un peu la même chose. Ici j'en ai préparé un. Il s’appelle mysql-storage et je vais le mettre sur le primaire. J'édite les attachments de mysql-storage et je lui dis : « Et bien tiens va sur le primaire, j'attache et il apparaît : hop, il est attaché à l'instance ». Ça se fait dynamiquement, il n'y a pas besoin de rebooter la machine, comme sur un laptop.

Si je reviens sur la console, je vois qu'il y a de l'activité sur la console. Et si je demande avec la ligne de commande de me montrer s'il y a un nouveau disque je vois sur vdb, je print et je vois ici que j'ai /dev/vdb, un disque de 10 Go qui est celui que je viens d'attacher. On a créé notre disque pour stocker les données. On a créé nos 2 machines pour la base de données, on suppose qu'on va les « nurser » un petit peu ces machines, on va installer une base de données MySQL. Et on peut passer à l’étape suivante qui consiste ( ici sur le schéma ) à créer des frontaux PHP, c'est là où notre appli web elle va vraiment résider. C'est là où on va mettre notre programme web. Pour ça on va faire quelque chose de légèrement différent. Alors ici je la crée toujours à partir du même template. Je l'appelle PHP. Je choisis sa taille. Je choisis une clé pour pouvoir entrer dedans. Je n'en lance qu'une seule et c'est parti. En fait mon idée ici c'est que je vais installer cette machine PHP en vue de la dupliquer n fois. MySQL, je n'en avais besoin que de 2 finalement. Mais pour absorber la charge quand je vais avoir plein de succès je vais devoir lancer un PHP, un 2ème, un 3ème, un 4ème... Je vais installer le PHP aux petits oignons. Je vais installer mon jeu là-dessus et une fois que j'aurais terminé, je vais faire ce qu'on appelle un snapshot, faire une copie de l'image au moment où j'ai fini de bosser que je vais appeler php-snapshot par exemple. Donc il apparaît ici, je vais ensuite pouvoir booter depuis ce snapshot comme je bootais depuis un cd comme quand on installe une machine pour la première fois. Pendant que ça se crée ( on le voit ici ) je peux aussi bien me mettre à préparer la création du dernier composant de mon architecture qui est le proxyHA qui va équilibrer la charge sur tous mes process PHP.

Emmanuel : On dirait intermédiaire Haute Availability.

Loïc : Haute disponibilité. Ouais. High Availability

Donc celui-là je vais le créer précisément. Voilà, j'ai un modèle qui m'a été fourni par mon fournisseur de nuages, qui est déjà là. Ce n'est pas juste un système d'exploitation tout nu mais qui est haproxy-snap et donc je vais lancer celui-là, ce qui va m'éviter de l'installer. Je vais dire haproxy. Ça, c'est une nouveauté du cloud. On voit beaucoup de machines pré-installées qui contiennent par exemple un wordpress ou un git, un redmine. Je donne des exemples qui ne sont pas super populaires, mais pour un développeur c'est super intéressant. On n'a pas à installer tout ça.

Cette machine-là, elle se distingue des autres parce qu'elle va être exposée au public. Il va falloir qu'on sorte de cette idée de "je ne suis qu'avec des IP privées". Il va falloir lui donner une IP publique. Pour ça, on va dans le panel Access & Security et on lui demande tout en haut Allocate IP To Project. On en prend une. Elle apparaît ici. Alors pour les experts, en fait c'est une IP privée, mais c'est pour les besoins de la démo, donc on va imaginer que c'est une IP publique qui est accessible de tout le monde et on va la mettre sur le haproxy. On voit qu'ici on pourrait la mettre sur le MySQL, sur le PHP. Mais non. On veut que tout le trafic de nos utilisateurs arrive sur une machine désignée. Ici je fais l'association entre cette IP, voilà...

Emmanuel : On pourrait parler... comme si tu rajoutais une carte au réseau, et que tu branchais un fil sur cet ordinateur virtuel.

Loïc : Voilà, comme si on était connecté à un Fournisseur d'Accès à Internet et qu'on branchait sur cette machine le Fournisseur d'Accès à Internet. Sauf que c'est dans l'autre sens.

Alors pour protéger, quand on fait cette manipulation-là. On se met à être exposé sur Internet. Openstack par défaut, toutes les ressources, il les protège et il ferme le firewall de façon à ce que rien ne rentre. Nous on veut accueillir nos utilisateurs, quand même. Donc on va dans ce qu'on appelle les Security Groups. On édite une règle qui consiste à faire un trou dans le firewall pour laisser les utilisateurs rentrer. Donc ici on voit qu'on a fait un trou sur le port 80 qui est le port traditionnel des applications web. De cette façon-là on pourra venir consulter.

Et vu qu'on a fini notre architecture maintenant, voila on a fait cette étape-là et bien on devrait pouvoir aller sur ce haproxy et voir notre jeu web. On va tenter le coup. Voila.

Emmanuel : Ça marche du premier coup.

Loïc : Ah c'est fou on dirait une démo qui a été préparée !

Alors maintenant notre entrepreneur, il est super content parce qu'il a fait ses essais avec ses utilisateurs, son jeu est développé et il a des ambitions internationales. Il va aller voir des investisseurs ou des porteurs de projet du genre Y Combinator, où on peut rentrer quand on a une idée intéressante. Il est accepté. Y Combinator lui dit mais « c'est super, viens donc passer 3 mois à New-York avec nous », je ne sais plus où ils font ça... Mais aux États-Unis en tout cas. Il est obligé de sortir de France et il va aller chercher un autre provider d'informatique en nuages et il va répliquer son infrastructure à la main tout comme il l'a fait là, et il va pouvoir faire du load balancing, de l'équilibrage de charge entre ses 2 clouds. Là-dessus, il finit par convaincre des investisseurs, ça marche d'enfer et là il se dit maintenant : « Il faut passer à l'automatisation. Moi je ne peux plus lancer des serveurs PHP comme ça à la main, ce n'est plus tenable. Il faut que je fasse un programme ». Et bien ça tombe bien. Il a été initialement dans les nuages précisément pour faire ça et on va le faire rapidement.

La première étape c'est que là on a fait tout à la main. On a vu qu'on s'était connecté avec un utilisateur et un mot de passe. Quand il y a un programme il va falloir lui donner aussi des credentials. Il va falloir lui donner un moyen de s'authentifier auprès du nuage. Alors pour ça on va dans le panel OpenStack, on va dans Settings, on voit OpenStack credentials, on télécharge un fichier qui est en fait un ensemble de variables et on va le donner à manger au programme qu'on va écrire de façon à ce qu'il puisse accéder au nuage tout comme nous on a pu le faire avec notre clef. Et on écrit ce petit programme, que je décrypte ici ligne par ligne. Notre petit programme, en fait ce qu'on veut c'est que : quand il y a beaucoup de monde il crée beaucoup de machines et puis sinon il les enlève. Donc on commence par demander ici avec le curl --silent .../server-status : "Combien il y a de monde ?", donc on voit combien il y a de requêtes. Ensuite on lui dit : "Combien de serveurs PHP on a ?" et pour ça on utilise la commande nova list qui est "Donne-moi la liste de toutes les machines que j'ai", --name php. Bon ça ne nous intéresse pas de savoir si MySQL est là, on s'y attend, HAProxy aussi. Et ensuite on a beaucoup réfléchi, on s'est dit : "Tiens à chaque fois qu'on a 10 requêtes, on voudrait un serveur". Donc on dit : "on voudrait ce nombre de serveurs, en divisant le nombre de requêtes par 10".

On affiche pour le besoin de l'opérateur, et pour le besoin de la démonstration, ce qu'on voudrait et ce qu'on a. Et si jamais le nombre des serveurs qu'on voudrait est supérieur au nombre de serveurs qu'on a, on lance une machine. Ça se fait avec la commande nova boot, qui est en fait "nova : je crée une instance" et si jamais c'est le contraire, c'est—à-dire qu'on a trop de serveurs donc on est en train de consommer trop de ressources, ( pensez au schéma où il y a quelqu'un qui vient tuer les machines qui sont en surnuméraire parce que ça nous coûte de l'argent ) on fait nova delete php et on en supprime.

Donc on a écrit ce petit programme et puis on va l'activer. On va essayer. Avant ça ... vérifier que la démo va marcher en regardant l’adresse IP des machines. Le HAProxy c'est 10.1.0.7. Tout va bien. On vient dans shell et on le lance ici. Là pour l'instant il n'y a pas de charge donc il a une requête ; il voudrait un serveur il y en a un seul, tout va bien. On va faire semblant que le site a beaucoup de succès en utilisant Apache Benchmark, et pour stresser le serveur de cette façon-là on va voir le nombre de requêtes monter. Donc là il en a 3. On a dit que la limite c'était 1. Là il en a 30. Donc paf il lance un nouveau serveur. On retourne dans le panel et là on voit qu'il est effectivement en train de lancer un nouveau serveur.

Si on coupe les tuyaux une fois qu'il a terminé de lancer le serveur, on va pouvoir le voir, juste derrière, éteindre le serveur. Voilà. Là il a terminé de lancer le serveur. Ici on le voit dans le panel et là il voit qu'il y en a deux, il en veut un seul. Donc il va le détruire et paf il est détruit. On a une élasticité automatique ce qui est l’essence du cloud et ce qui conclut la démonstration qui, finalement, a fait un tour de tout ce qui est techniquement important et possible dans le cloud. Les briques de base à partir desquelles on peut imaginer comment ça va changer la société et ça fait l'introduction à la troisième partie.

Emmanuel : Je suis très impressionné. Surtout j’apprécie énormément la connexion que tu as vers des serveurs qui doivent être énormes pour héberger toutes ces instances. Je ne vois pas le fil. Comment tu te débrouilles ?

Loïc : En fait, et ça c'est une des qualités de OpenStack, c'est que tout tourne sur un portable. Les nuages, toute l'infrastructure, on peut l'avoir sur son propre portable. Ce n'est pas quelque chose qui est forcément à l'extérieur, ça peut aussi être à l'intérieur, ça peut être chez soi.

Emmanuel : Tu viens de créer des serveurs sur un petit ordinateur portable qui tient sur la table et qui n'est pas super lourd.

Loïc : Voilà.

Emmanuel : C'est ça.

Loïc : Oui, oui, c'est de l'infrastructure. C'est la même infrastructure que celle qu'on retrouve chez des hébergeurs qui ont des centaines de machines.

Nicolas : Pour rebondir là-dessus, un des avantages du cloud que moi je vois, c'est plus pour la partie on va dire développeur, c'est justement la capacité de tourner sur des petites machines, des énormes machines et juste à avoir à faire de la configuration de la taille des machines qu'on souhaite et on peut passer donc du coup d'un environnement de développement à un environnement de production. On peut passer sur de très petites machines à d'énormes clusters de serveurs et tout ça en n'ayant aucun risque, c'est le même environnement partout, et c'est les mêmes scripts, c'est la même automatisation et ça ça apporte vraiment un gros plus quand on est développeur.

Loïc : C'est d'ailleurs un plus en fait pour tout le monde et c'est un des 2 enjeux identifiés par l'April. Au moment des présidentielles l'April a envoyé un cahier très complet avec tous les enjeux liés aux logiciels en particulier sur le cloud où était levée la nécessité pour chaque citoyen de pouvoir reprendre son nuage à l'endroit et au moment de son choix. Et pour ça il faut qu'il y ait tous ces outils comme tu dis.

Le deuxième point qui avait été soulevé c'est le chiffrement des données parce qu'il y a une crainte légitime que les données qui sont dans le cloud puissent être vues par d'autres. Tout comme quand tu envoies une lettre par la poste, ben oui le facteur il peut la lire. Quand tu envoies tes mails dans le cloud, qui peut les lire. Donc les chiffrer c'est un moyen de les envelopper.

Emmanuel : Là ça veut dire que tu parles d'un nuage qui est fourni par des vendeurs de machines, et des loueurs de machines. Donc le loueur de machines sur lequel tu vas créer 10 serveurs, 50 serveurs, 200 serveurs virtuels, ces loueurs donc tu les payes et eux ils contrôlent tout. Ils peuvent aller voir dedans ?

Loïc : Exactement. En fait là ce qu'on a vu à toute petite échelle, vu que c'est la même chose qui se déploie à grande échelle, le compte dans lequel on s'est connecté pendant la démo, c'est ce qu'on appelle un "tenant" d'OpenStack, un projet d'OpenStack, c'est en fait notre espace client. Il contient des machines virtuelles, il contient un espace de stockage (notre volume), il contient aussi un réseau, toutes les IP qu'on a nous a données pour connecter toutes ces choses-là, c'est dans les mains du fournisseur et on le commande juste par l'interface web ; et l'idée c'est que ce nuage-là, qui est le notre, dans un environnement plus grand ailleurs, on puisse le ramener chez soi. Et donc comme on a vu là qu'on peut le faire tourner sur son portable, l'idée c'est, si on n'est plus connecté à internet, de pouvoir ramener le cloud chez soi pour pouvoir par exemple bosser dans le train. Tu t'imagines, tu ramènes tout ton nuage et puis tu bosses dans le train, tu es complètement déconnecté. Et ça tire partie d'une propriété qui est assez remarquable, c'est la durabilité des machines virtuelles. C'est quelque chose dont on n'a pas tout à fait l'habitude. On a l’habitude de sauvegarder ses mails, de sauvegarder ses documents. Mais imagine un document de Traitement de Texte, il y a 15 ans. Vraisemblablement aujourd'hui tu aurais vraiment du mal à l'ouvrir. Alors que si tu prends une machine d'il y a 15 ans et qu'elle a été virtualisée, à ce moment-là tu peux la faire tourner. Il y a une raison très conne à ça, c'est qu'il y a des gens, l'aérospatiale, les militaires, le gouvernement, ils ont acheté des machines avec des contrats d'entretien sur 30 ans. Évidemment les machines elles sont toutes pétées, elles ne marchent plus et puis ils ont besoin de migrer, donc il y a des industriels, RedHat IBM, etc..., qui ont développé des techniques de virtualisation, pour virtualises ces machines, pour leur donner une vie éternelle.

Et quand on est dans le cloud on bénéficie de cette durabilité tout à fait surprenante qui est plus grande que celle de n'importe quel format de fichier, plus grande que la durée de vie de n'importe quel logiciel. Donc le fait de pouvoir ramener tout ça sur sa machine et de pouvoir faire tourner tout ça dans une machine virtuelle, ça donne la capacité de tourner son nuage à l'endroit de son choix. Pour moi c'est quelque chose qui est un gage d'indépendance indispensable.

Nicolas : Et ça évite beaucoup de problèmes !

Emmanuel : Dans ces éléments-là, le libre il a une place qui est de quelle importance ?

Loïc : En fait ça ne peut évidemment fonctionner que avec du logiciel libre. Parce que imagine s'il y a du logiciel propriétaire dans tout ce que tu transportes comme ça. En fait il y a besoin d'articuler deux choses. Tu as besoin d'une part d'avoir le contrôle de ton infrastructure, ça c'est ton nuage, ça oui tu vas le rapatrier, mais ton nuage comment il peut tourner, comment il peut se reconstituer si ce qu'il y a en dessous, donc OpenStack dont on a fait la démonstration, si ce n'est pas libre soi-même ? Ça veut dire que tu as des licences, des restrictions d'utilisation qui font que dans 5 ans tu ne pourras pas l'utiliser, sur telle machine tu ne pourras pas l'utiliser, que tu ne pourras pas le modifier quand il sera un peu cassé, que tu ne pourras pas le prêter à tes copains. Tout ce qu'on ne veut pas pour notre informatique à nous et qu’essaie de nous fourguer le logiciel propriétaire. Donc en fait cette promesse de durabilité elle n’existe que s'il y a du logiciel libre et c'est aussi pour ça que c'est quelque chose qui est très absent des discours marketing parce que les gens qui sont les plus vocaux sur l'informatique en nuage aujourd'hui c'est des vendeurs de logiciels propriétaires. C'est aussi pour ça que l'April se fait la voix du logiciel libre dans les nuages.

Nicolas : Le meilleur exemple je pense, c'est Amazon EC2, c'est aussi ce qu'ils appellent prestataire cloud, mais ce n'est pas le vrai cloud d'OpenStack et du coup quand on arrive sur cette plate-forme-là, on ne peut plus du tout en sortir. On va pouvoir avoir à peu près le même fonctionnement, rajouter des machines, en créer, mais c'est entièrement propriétaire, on ne connaît pas le format des fichiers derrière, on ne peut pas les extraire, les faire tourner sur son portable et on est entièrement prisonnier d'Amazon si on va sur ce type de plate-forme

Loïc : Oui, on peut extraire les machines par contre on ne peut pas extraire l’infrastructure qui permet de faire tourner le service. En fait on a architecturé plein de trucs sur Amazon Web Service et on peut extraire chaque composant mais par contre, on les pose les uns à coté des autres et on a perdu toute la mécanique, puisque c'est que Amazon. Donc ça n'a aucun sens, littéralement.

Il y a un deuxième point qui était important, c'était le fait de pouvoir exécuter son nuage, de pouvoir le reconstituer au moment de son choix. Si on imagine un album photos qu'on feuilletterait plusieurs années plus tard, le nuage qu'on a à un moment donné, si par exemple on lit son mail dans son nuage, qu'on fait ses documents dans son nuage, c’est à plein d'égards la projection de son être numérique quelque part. Évidemment il ne vieillit jamais cet être numérique et quand on sera vieux et chenu au coin du feu on voudra peut-être ouvrir nos machines virtuelles pour regarder comment on était 20 ans plus tôt, ce "au moment de son choix", c'est quelque chose qui nous garantit qu'on ne va pas se perdre soi-même, numériquement.

Le deuxième point qui fait très peur aux gens qui arrivent pour la première fois dans le cloud, c'est la sécurité, c'est "est-ce que je ne risque pas de me faire pirater mes données" ? Est-ce qu'on ne va pas me voler ? Parce que bon quand on l'a chez soi sur sa machine, on a pris l'habitude de l'avoir sous la main, on a pris l'habitude de mettre des choses qui sont plutôt intimes, privées, quand tout d'un coup ces choses-là vont à l'extérieur comme si ça allait sur un site web, comment on réagit ? Or là-dessus il y a quand même 2 trucs différents : la menace extérieure qui est la même que quand on met des informations sur un site web et donc ça dans les nuages ça ne change pas. Si on avait l'habitude de faire un site web, on peut faire le même chose dans le nuage. On ne prend pas plus de risques. L'individu en rouge ( référence a l'image affichée ) dans la foule qui va nous menacer, qui va venir casser notre site web, on l'a dans les nuages comme on l'a partout ailleurs. Il n'y a pas de raison d'en avoir plus peur.

Par contre il y a un nouvel intervenant dans le nuage. C'est celui qui contrôle l’infrastructure qui est en-dessous du nuage. Donc là la personne qui fournit OpenStack. Et lui il peut avoir un intérêt à compromettre les machines et à essayer de rentrer dans toute l'infrastructure qu'on est en train de faire tourner chez lui, en particulier si on a une entreprise, si on a des données confidentielles. Et donc là je pense qu'il faut se résigner à faire confiance au fournisseur de cloud. Il va falloir faire un choix. Il va falloir dire "ben oui je choisis celui-là parce que je lui fais plus confiance qu'à un autre". Et à aucun moment on ne pourra dire "je ne lui fais pas confiance mais j'y vais quand même parce que j'ai trouvé une parade". Il n'y aura pas de parade.

Nicolas : Je pense que ça c'est surtout vrai pour les particuliers parce que les entreprises ont déjà l'habitude d'avoir des serveurs dédiés chez des hébergeurs, c'est assez rarement le cas d'avoir les serveurs au sein même de l'entreprise. Donc je pense que les entreprises font déjà confiance à des prestataires extérieurs et du coup le cloud n'est pas un si grand changement de ce point de vue-là. C'est vraiment pour les particuliers qui eux n’ont pas du tout l'habitude de cet environnement-là, effectivement il faut changer un peu sa manière de penser.

Emmanuel : Sachant qu'un serveur dédié qui serait hébergé chez quelqu'un d'autre, à partir du moment où il a un accès physique, honnêtement c'est un croyance populaire de penser qu'on est sécurisé. Finalement il peut faire un peu ce qu'il veut. On n'est pas sûr que c'est vraiment notre machine qui tournera au final.

Loïc : D'autant plus que c'est lui qui contrôle le processeur, puisque c'est un processeur virtuel, comme on voit sur l'image, il pourrait mettre des fils à l'intérieur du processeur et dire l'instruction machin en fait c'est l'instruction autre chose. Littéralement il contrôle l'univers. On est dans un univers à la K. Dick où ce que voit la machine virtuelle c'est une fiction. Donc il n'y a aucune parade certaine pour l'utilisateur, à aucun moment.

Emmanuel : On ne parle pas de crypter, de chiffrer les données avant de les fournir justement aux machines qui les hébergent ?

Loïc : On peut faire ça et puis finalement c'est ce qui est le plus sûr ; ce n'est pas une parade totale mais c'est la meilleure parade. Dès l'instant où la donnée quitte l'ordinateur, son ordinateur à soi, elle est cryptée par notre ordinateur à nous et quand elle va dans le cloud elle est déjà cryptée. Le volume qu'on a attaché à MySQL par exemple, on va dire qu'il est chiffré. Mais ça voudrait dire que la machine MySQL elle déchiffre ce volume-là. Et comme la machine MySQL tourne sur un processeur qui est fourni par l'hébergeur, il pourrait toujours essayer de rentrer dedans quand même. Donc du côté du chiffrement des disques en fait on n'est pas plus sécurisé, par contre du côté du chiffrement des objets, si on chiffre quand ça quitte la machine, on est bon. Il y a des hébergeurs qui fournissent la possibilité aussi de chiffrer pour le compte de l'utilisateur de façon à ce que les données stockées sur ses propres disques soient chiffrées. Il faut faire confiance à l'hébergeur, mais on se protège contre des fuites accidentelles de données. Imaginez, on stocke tous nos mails, on demande à l'hébergeur de le crypter, donc sur ses disques c'est crypté, l'hébergeur il fait des backups pour le cas où il perd vos mails et ces backups-là ils partent et ben on ne sait pas trop où et si quelqu’un ouvre le backup par hasard, s'il voit que c'est chiffré il ne va pas aller chercher plus loin. Là on n'est pas dans le cadre de « c'est malicieux » on est plus dans le cadre du postier indélicat qui a ses yeux qui tombent sur la carte postale où il y a quelque chose d'intime. Là on met une enveloppe autour de ses mails comme ça si c'est perdu et bien on dit, bon d'accord on ne voulait pas que ce soit lu, on va le laisser tranquille.

Emmanuel : Sans oublier que là tu parles de backup, mais ce que vendent, louent certains fournisseurs c'est de pouvoir faire des backups à travers des continents entiers. Donc si jamais j'ai des données qui sont en Amérique du Nord, d'autres en Europe d'autres en Asie ben il y a encore moins la possibilité de contrôler les facteurs qui font transiter tout ça et qui peuvent à un moment donné avoir les yeux sur la carte postale, n'est-ce pas ?

Loïc : Ouais. Il y a beaucoup beaucoup d'intermédiaires possibles !

Donc la semaine dernière, début octobre, il y avait un summit OpenStack où il était question de l'avenir de OpenStack en tant que logiciel libre et puis surtout c'est une conférence qui est très technique et j'ai eu la très bonne surprise de voir que il y avait un track légal où il était question de brevet logiciel. Il était beaucoup question des menaces qui pèsent sur OpenStack à cause des brevets logiciels, des centaines de brevets logiciels qui couvrent diverses fonctionnalités de OpenStack aux États-Unis parce que c'est un peu la folie. Le conférencier qui présentait ces menaces-là a fait un panel assez inquiétant. Du coup la fondation OpenStack ( qui est récemment formée ) va être vigilante. Depuis la salle, en fait, j'ai eu l'occasion de mentionner l'exception européenne où on est sauvé des brevets logiciels et ça pourrait être un havre pour OpenStack pour le cas où des attaques contre la distribution d'OpenStack se présentent, mais j'ai aussi mentionné que ce havre-là il n'est pas éternel il est toujours sous menace et que l'initiative unitary-patent il faut absolument la soutenir pour ne pas que le brevet unitaire fasse réintroduire des brevets logiciels en Europe et détruise ce havre de paix pour OpenStack. J'ai espoir, quand même, que la fondation soit sensible à ça et apporte son soutien à l'initiative unitary-patent.

Emmanuel : Je rappelle pour ceux qui écoutent on est dans une année où il y a eu un jugement de 1 milliard à cause notamment de brevets logiciels entre Apple et Samsung donc c'est une année assez importante médiatiquement qui restera sûrement dans les annales.

Loïc : Et le dernier point concernant OpenStack et le nuage c'est la réglementation. Aujourd'hui tu l'as dit il y a Amazon Web Service qui domine le marché de l'informatique en nuage. Les données en fait se trouvent effectivement dans des centres informatiques qui sont à des endroits bien particuliers dont aucun n'est en France. En France il y a des législations qui imposent à des collectivités locales, par exemple, de déporter leurs données en dehors de chez elles ... mais de ne pas leur faire quitter le territoire français. Si elles veulent utiliser aujourd'hui un nuage et bien elles ne peuvent pas puisque si elles utilisent Amazon et bien du coup la donnée elle part ailleurs. Il y a aussi des réglementations sur l'hébergement des données de santé, etc.

Là-dessus il y a quelque chose qui est en train de se produire qui est plutôt positif, plutôt favorable à OpenStack et au logiciel libre, c'est le choix de Openstack et du logiciel libre par un Cloudwatt qui est un nuage à la française financé par nos impôts et appuyé par des industriels français. Donc là-dessus il peut y avoir un mariage aujourd'hui qui permet à la réglementation d’être respectée dans un esprit de transparence aussi, puisque dans la mesure où les logiciels libres sont choisis, il n'y a pas des boîtes noires propriétaires qui font que même si c'est sur le territoire français on ne maîtrise pas ce qui se passe avec les données. Et ça c'est juste pour la France, mais on peut imaginer que d'autres pays aient les mêmes besoins et aillent dans le même direction. Donc ça complète, dans les rêves qu'on peut avoir en tant que citoyen d'indépendance individuelle, avec une indépendance de l’État et une autonomie sur la technologie. Si les deux pouvaient se marier sur le long terme ce serait bien. Je pense qu'on a une grande chance à prendre pour l'informatique libre aujourd'hui.

Emmanuel : Et qu'est-ce que tu penserais d’essayer de faire des nuages entre les citoyens ? Sans passer par les grosses infrastructures, les états ? Pourquoi pas entre toi et moi on partage des machines ?

Loïc : Comme je suis développeur, évidemment oui j'ai fait ça et je t'invite à rejoindre mon nuage. On a fait un nuage entre copains et il y a 8 machines. Il s’appelle the.re, comme "là" en anglais. Donc THE.RE et c'est un nuage OpenStack dans lequel on essaye de pratiquer la liberté qu'on a aujourd'hui avec toute la chaîne de logiciels pour inventer, maintenant, l'avenir qu'on veut pour plus tard. Donner l'exemple. Donc là-dessus l'April pourrait peut-être lancer un groupe de travail sur les enjeux sociétaux. On pourrait participer avec cette expérimentation technique et moi j'aurais plaisir à parler de tout ça pendant des conférences parce que le sujet reste encore quand même super nouveau.

Nicolas : Mais l'April commence à s'y intéresser parce qu'on est en partenariat avec Loïc pour avoir des machines dans le cloud pour la partie administration système de l'April, et on espère contribuer un jour. Là aujourd'hui on est plus consommateurs mais on espère mettre à disposition nos machines un jour.

Loïc : Dans the.re il y a une machine qui est là, qui n'est pas encore utilisée, mais elle est là. On peut la fabriquer entre individus, entre associations, ce serait sympa !

Emmanuel : Donc bientôt je peux imaginer des clouds, des nuages à base de téléphones portables, de boîtiers qui seront accrochés aux télévisions, de tous les petits périphériques qu'on a et qu'on mettra en commun dans the.re.

Nicolas : Il faut avoir un peu de ressources.

Emmanuel : Justement.

Loïc : En fait il y a l'informatique en nuage, son devenir à travers OpenStack a minima, même si rien d'autre ne se passe ce sera une API et des plugins. Donc c'est une façon d’interagir avec des ressources informatiques. Oui aujourd'hui c'est plus des machines virtuelles et sur ton téléphone portable tu ne vas pas mettre une machine virtuelle, mais tu peux imaginer que tu vas interagir avec ton téléphone comme tu interagis avec une machine virtuelle. Donc on prétend que ton téléphone c'est une machine virtuelle pour lui faire faire des choses. Ça fait partie des extrapolations qu'on imagine aujourd'hui, qu'on voit apparaître, on dit c'est un peu des déformations de l'idée du nuage. Mais c'est ce genre de bizarreries qui fabriquent au fur et à mesure ce que sera demain l'informatique en nuage.

Emmanuel : Bon ! Et bien sur ce, je pense beaucoup de choses à réfléchir. On va vous laisser justement poursuivre dans ces pensées, atteindre les nuages et puis venir contribuer au logiciel libre, à l'April, la défense contre les brevets logiciels et à une prochaine conférence Loïc.

Loïc : Oui !