PROJET AUTOBLOG


Philippe Scoffoni

source: Philippe Scoffoni

⇐ retour index

Installer Owncloud 8.1 sur Debian 8 avec Nginx et MariaDB

dimanche 26 juillet 2015 à 22:00

L’objectif de ce tutoriel est de procéder à l’installation du logiciel libre de partage de fichiers (et bien plus) Owncloud. La plateforme cible est la version 8 de Debian. L’objectif premier est de concevoir une solution la plus légère possible pour limiter au maximum la consommation de ressources machines.

J’ai choisi  le serveur web Nginx couplé à PHP-fpm et la base de données MariaDB. Concernant ce dernier point, une autre solution est d’opter pour SQLite supporté par Owncloud. Une approche tout à fait crédible pour une instance avec moins de 5 utilisateurs et quelques dizaines de Go de données. Dans mon cas je lui préfère MariaDB, car l’ambition est de gérer un grand nombre d’utilisateurs et de données à terme. PostgreSQL aurait également été un choix potentiel, mais cette fois la limite réside dans ma méconnaissance de cette base de données.

Voilà posé les composants et les motivations. N’hésitez pas à apporter vos remarques en commentaires en essayant de ne pas tomber dans la querelle de clocher :-) !

Installer MariaDB

Direction l’espace de téléchargement de MariaDB dédié aux dépôts depuis lesquels l’installer. Un petit assistant vous guide pour obtenir les informations nécessaires.

Les commandes pour ajouter la clé du dépôt et le dépôt en lui-même. Au passage, il nous est proposé d’installer le paquet python-software-properties qui apporte quelques commandes supplémentaires destinées à simplifier la gestion des dépôts bien connus des utilisateurs d’Ubuntu.

apt-get install python-software-properties
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
add-apt-repository 'deb http://mirror6.layerjet.com/mariadb/repo/10.0/debian jessie main'

Si vous ne souhaitez pas installer le paquet python-software-properties, il vous suffit d’ajouter les deux lignes à votre fichier sources.list contenant la liste de vos dépôts.

deb http://mirror6.layerjet.com/mariadb/repo/10.0/debian jessie main
deb-src http://mirror6.layerjet.com/mariadb/repo/10.0/debian jessie main

Il suffit ensuite de mettre à jour les dépôts et de lancer l’installation de MariaDB.

apt-get update
apt-get install mariadb-server

Notez bien le mot de passe que vous allez indiquer pour le compte d’administration root de la base de données.

Installer Ngninx et PHP-fpm

Commençons par installer Nginx qui est présent dans les dépôts de Debian avec une commande on ne peut plus simple

apt-get update
apt-get install nginx ssl-cert

J’ai ajouté le paquet ssl-cert lié à la création des certificats. Pour PHP-fpm, je pioche à nouveau dans les dépôts de Debian.

apt-get install php5-fpm php5-mysqlnd

J’ajoute un paquet pour PHP et le support de MySQL (bien que nous utilisions MariaDB).

À ce point de l’installation et pour faire bonne mesure, je vous propose d’ajouter l’interface web d’administration de base de données PHPMyadmin.

apt-get install phpmyadmin

Lors de l’installation, il vous sera demandé de choisir le serveur web à configurer. Nginx n’apparaît pas dans la liste, nous ajouterons plus tard les directives de configuration nécessaires. Lors de l’installation, il faut également configurer la base de données utilisée par PHPMyadmin. Vous devrez indiquer le mot de passe root de MariaDB (celui que vous avez indiqué lors de son installation) et fournir un mot de passe pour la compte MySQL de PHPMyadmin.

Configuration de Nginx

Pour la suite de ce tutoriel, je pars du principe que vous installez tout ceci sur une url de type owncloud.example.com et que le répertoire utilisé pour Owncloud sur le serveur est /var/www/owncloud .

Créez un fichier dans le dossier /etc/nginx/sites-available nommé owncloud.conf et insérez les directives suivantes :

upstream php-handler {
  server 127.0.0.1:9000;
  #server unix:/var/run/php5-fpm.sock;
  }

server {
  listen 80;
  server_name owncloud.example.com;
  # Force le passage en https
  return 301 https://$server_name$request_uri;
  }

server {
  listen 443 ssl;
  server_name owncloud.example.com;

  ssl_certificate /etc/ssl/nginx/owncloud.example.com.crt;
  ssl_certificate_key /etc/ssl/nginx/owncloud.example.com.key;

  # Fichier de log
  access_log /var/log/nginx/ssl.owncloud.example.com.access.log;
  error_log /var/log/nginx/ssl.owncloud.example.com.error.log;

  # Ajout de header liés à la sécurité
  add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
  add_header X-Content-Type-Options nosniff;
  add_header X-Frame-Options "SAMEORIGIN";
  add_header X-XSS-Protection "1; mode=block";
  add_header X-Robots-Tag none;

  # Répertoire dans lequel est installé Owncloud
  root /var/www/owncloud/;
  # Taille de fichier maximum  que l'on peut téléverser/uploader
  client_max_body_size 1G;
  fastcgi_buffers 64 4K;

  # Désactivation de la compression pour éviter la suppression du header ETag
  gzip off;

  # Décommenter cette option si votre serveur est compilé avec le module ngx_pagespeed
  # Ce module est non supporté
  #pagespeed off;

  rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

  index index.php;
  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
    }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
    deny all;
    }

  location / {
   # Les régles suivantes sont uniquement nécessaire en cas d'utilisation de webfinger
   rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
   rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

   rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
   rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

   rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

   try_files $uri $uri/ /index.php;
   }

   location ~ \.php(?:$|/) {
   fastcgi_split_path_info ^(.+\.php)(/.+)$;
   include fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param HTTPS on;
   fastcgi_param modHeadersAvailable true; #Evite d'envoyer les header de sécurtié deux fois
   fastcgi_pass php-handler;
   }

   # Optionnel : positionne un header EXPIRES long sur les ressources statiques
   location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
       expires 30d;
       # Optionnel : ne pas logger l'accès aux ressources statiques
         access_log off;
   }
  }

Il faut ensuite créer le lien permettant de rendre ce fichier actif

ln -s /etc/nginx/sites-available/owncloud.conf /etc/nginx/sites-enabled/

Dans le fichier /etc/nginx/nginx.con ajouter la consigne suivante :

include /etc/nginx/sites-enabled/*;

Elle permet de prendre en compte le fichier de configuration que nous venons de créer. Vous pouvez redémarrer Nginx avec la commande /etc/int.d/nginx restart .

Si vous avez lu attentivement le fichier de configuration de Owncloud, vous avez dû remarquer que l’accès est forcé en HTTPS. Cela signifie qu’il faut disposer d’un certificat. À ce niveau plusieurs solutions s’offrent à vous :

Je ne rentre pas davantage dans le détail sur cette partie qui mériterait un tutoriel à part entière.

L’accès à PHPMyadmin se fera par l’URL http://sqlmyadmin.example.com. Voici le fichier de configuration correspondant :

server {
        listen 443;
        server_name sqlmyadmin.example.com;
        root /usr/share/phpmyadmin/;

        ssl_certificate /etc/ssl/nginx/sqlmyadmin.example.com.crt;
        ssl_certificate_key /etc/ssl/nginx/sqlmyadmin.example.com.key;

        access_log /var/log/nginx/ssl.sqlmyadmin.access.log;
        error_log /var/log/nginx/ssl.sqlmyadmin.error.log;

        location / {
                root /usr/share/phpmyadmin/;
                index  index.php;
                # On protège un peu l'accès à l'interface
                auth_basic "Vous devez vous authentifier";
                auth_basic_user_file /etc/nginx/usrpwd;
        }

        location ~ \.php$ {
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           include fastcgi_params;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           fastcgi_param PATH_INFO $fastcgi_path_info;
           fastcgi_param HTTPS on;
           fastcgi_param modHeadersAvailable true; #Evite d'envoyer les header de sécurtié deux fois
           fastcgi_pass php-handler;
        }
}

J’ajoute toujours une authentification devant les accès à l’interface d’aministration, histoire de sécuriser un peu plus l’installation. Pour générer le fichier usrpwd utiliser la commande

printf "monlogin:$(openssl passwd -1 monmotdepasse)\n" >> /etc/nginx/usrpwd

Un redémarrage de Nginx et vous devez pouvoir accéder à l’interface de PHPMyadmin et vous connecter avec le compte root.

Optimisons un peu mais pas trop

Avec cette installation nous disposons de la version 5.6 de PHP intégrant OPcache. Éditons le fichier /etc/php5/fpm/conf.d/05-opcache.ini

zend_extension=opcache.so
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 10
opcache.fast_shutdown=1

Relancer ensuite PHP-fpm.

Comme nous allons utiliser le protocole HTTPS et le chiffrement SSL, indiquons à Nginx d’utiliser un peu de cache pour améliorer les temps de connexion avec la directive ssl_session_cache. Elle s’ajoute dans la déclaration de votre site.

http {
[...]
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
[...]
}

Redémarrer Nginx.

Installer Owncloud

Incroyable, mais vrai, voici enfin venu le temps d’installer le logiciel pour lequel nous venons de passer un bon moment à préparer l’environnement. Plusieurs options d’installation sont possibles avec Owncloud. Il y a l’installation « manuelle » et celle automatisée mettant en oeuvre des dépôts. L’avantage de cette dernière solution est de simplifier les mises à jour ultérieures.  Je dirais qu’ici chacun voit midi à sa porte et prendra l’option qui lui convinet le mieux.

Personnellement, je fais le choix du dépôt que j’ai utilisé jusqu’à présent sans rencontrer de soucis sur les mises à jour successives. Il faut tout d’abord télécharger et installer la clé du dépôt :

wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key
apt-key add - < Release.key  

Il ne reste plus qu’à ajouter le dépôt et installer Owncloud

echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install -V owncloud

Avant de valider l’installation d’Owncloud, parcourez la liste des paquets proposés à l’ajout. Il ne doit pas y avoir de serveur web comme apache ou encore de base de données comme MySQL.

À l’aide de PhpMyadmin, créer un utilisateur en lui associant une base de données pour Owncloud.

Vous pouvez maintenant vous connecter à votre installation Owncloud pour la configuration finale https://owncloud.example.com et découvrir l’écran de configuration. Choisissez l’option MySQL/MariaDB et indiquez les informations de connexion à la base de données.

Au passage deux conseils, donnez à votre compte administrateur un autre login que « admin » cela brouillera un peu les pistes. Stockez vos fichiers en dehors du répertoire /var/www/owncloud tel que proposé par défaut. Créez par exemple un répertoire data-owncloud dans /home.

À ce stade, je me heurterais à un problème visiblement déjà rencontré dans le passé. Dans le fichier de configuration de MariaDB /etc/my.cnf , j’ajoute la ligne suivante dans la partie concernant InnoDB.

binlog-format = MIXED

Faites- moi savoir si le problème se produit pour vous aussi.

Nous avons enfin droit à l’écran d’accueil tant mérité !

Sélection_107

Dans le prochain article, nous nous attarderons sur la petite liste d’applications qu’il me semble indispensable d’ajouter dans le cadre d’une utilisation professionnelle d’Owncloud.

Quelques informations et sources utilisées pour ce tutoriel :


Réagir à cet article

Article original écrit par Philippe Scoffoni le 26/07/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

Comment permettre des discussions entre utilisateurs dans Owncloud

mercredi 8 juillet 2015 à 23:51

Voici un rapide retour d’expérience sur une application développée pour Owncloud : User Conversation.

L’installation de l’application est très simple à un petit détail prêt. Le nom du dossier contenant l’application dans le fichier compressé mis à disposition doit être modifié en « conversations ». Sans cela l’application refusera de s’activer.

Passé cet obstacle, une nouvelle application est disponible. Elle vous permet de converser avec un autre utilisateur ou un groupe d’utilisateurs. Il s’agit des groupes définis dans Owncloud. Mais il n’est pas possible de créer une discussion en choisissant une liste de personnes. Pas possible non plus de lancer une discussion « publique », autrement dit visible par tous les utilisateurs.

Au niveau de la saisie des messages, pas de limite particulière sur la longueur des messages. Vous pouvez y intégrer des liens hypertextes, des images ou des fichiers. Pour les fichiers, il faut au préalable qu’ils aient été copiés sur votre compte Owncloud. Les images sont alors affichées comme sur mon exemple. Les documents sont également partagés à l’utilisateur à qui vous écrivez. Le document partagé apparaît à la racine des fichiers du destinataire. Il n’est pas possible de partager plus d’un document par message ou un dossier.

Lorsque quelqu’un vous a envoyé un message, l’icône de l’application Conversations passe en rouge. Dans la liste des utilisateurs et groupe à droite s’affiche en regard de ces derniers le nombre de messages non lus.

Cette application apporte un premier niveau de réponse pour le travail collaboratif autour des documents contenus dans Owncloud. Il serait également intéressant de pouvoir discuter ainsi autour d’un document par exemple.

D’autres solutions existent pour intégrer des fonctions de discussions comme un client de tchat basé sur le protocole XMPP : JavaScript XMPP Chat. La liste des fonctionnalités est assez intéressante, depuis les fonctions de discussion entre deux utilisateurs ou d’un groupe d’utilisateurs présent dans une « chambre de conversations ». Il est fait mention du support de WebRTC pour de la visioconférence. Une autre application du même type est disponible. Elle est basée sur Jappix Mini, mais son développement semble arrêté. Dans les deux cas, il vous faudra un serveur supportant le protocole XMPP ce qui alourdit la mise en œuvre.

Bref, si vous n’êtes pas trop exigeant et cherchez une solution simple, l’application User Conversations est un début de solution.


Réagir à cet article

Article original écrit par Philippe Scoffoni le 08/07/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

WordPress : Suivi des temps et affichage d’une information sur un article sans utiliser d’extension

samedi 4 juillet 2015 à 00:25

Robin me posait dans email la question suivante :

Tu affiches le temps de rédaction de tes billets. Peux-tu me dire par quelle magie (comprendre plugin WP) tu arrives à faire cela ? J’ai dû vraiment mal chercher, mais impossible de trouver un plugin qui fait simplement ça dans WordPress, sans passer par des outils de gestion de temps/projet overkill…

Tant qu’à lui répondre, autant en faire profiter tout le monde.

Traquer le temps

TaskCoachPremier élément de réponse, comment est-ce que je m’y prends pour savoir le temps passé à l’écriture d’un article. La réponse se trouve une fois de plus dans mon guide des solutions libres pour TPE que vous devriez être plus nombreux à lire :-) .

J’utilise pour le suivi de mon activité le logiciel libre TaskCoach. Ce logiciel qui a la bonne idée de fonctionner aussi bien sous GNU/Linux, MacOSX et Windows permet de définir une liste de projets avec leurs sous-tâches. Il intègre un chronomètre qu’il suffit de démarrer et arrêter sur la bonne tâche.

Il sait détecter que vous n’êtes plus sur votre machine et peut vous proposer d’arrêter le décompte. Pratique lorsque vous partez boire un café où que l’on vous inviter à l’improviste dans une réunion. Tous les temps comptabilisés sur les différentes tâches sont ainsi historisés.

Je m’en sers beaucoup pour avoir un suivi rigoureux des temps passés sur mes chantiers. Il est possible de définir un budget temps sur les tâches. Une information que vous pourrez ensuite confronter au temps réellement passé.

TaskCoach est par contre un outil de travail non collaboratif et trouvera ses limites lorsqu’il s’agit de suivre l’activité de plusieurs personnes. Dans ce cas des outils de gestion de projets seront plus adaptés. Dans la même gamme de logiciels libres, mais uniquement pour GNU/Linux, vous trouverez Hamster.

Afficher l’information dans WordPress sans extension

Voilà, nous savons maintenant mesurer le temps de rédaction d’un article, il nous faut l’afficher. Il ne faut pas oublier que WordPress est capable de gérer des données associées aux articles. Elles sont très utilisées par les extensions notamment. Plutôt que de me lancer dans la recherche d’une extension qui permet de les afficher sur un article, j’ai préféré mettre les doigts dans le code de mon thème.

Plusieurs raisons à cela. Tout d’abord, limiter le nombre d’extensions, car elles sont potentiellement source de problèmes. Je citerais les principales : sécurité, incompatibilité avec d’autres extensions, arrêt de la maintenance de l’extension. Bien évidemment, ce n’est pas une raison pour jeter le bébé et l’eau du bain, il y a de très bonnes extensions et c’est indispensable pour permettre au moins technophile de monter leur propre site WordPress.

Pour commencer, je vous conseille de créer un thème enfant. C’est assez simple si l’on suit bien les instructions. En procédant ainsi vous pourrez continuer de bénéficier des mises à jour du thème tout en conservant vos modifications.

En effet nous allons devoir modifier le thème pour lui demander d’afficher cette nouvelle information. Dans mon cas, je souhaite afficher le temps sous le titre de l’article. Il faut repérer dans le thème le fichier en charge de cet affichage. C’est un peu l’aventure surtout si vous n’en avez pas l’habitude et cela peut différer d’un thème à l’autre. Mais en principe il y a une certaine normalisation dans le nom des fichiers.

Dans mon cas j’utilise le thème Hueman. Le fichier en charge de l’affichage des articles se nomme single.php ce qui est la « norme ». Je ne l’ai pas précisé, mais pour accéder aux fichiers du thème vous aurez sûrement besoin d’utiliser un logiciel de transfert de fichiers comme Filezilla. Pensez à faire une sauvegarde avant de modifier un fichier.

Avant de nous lancer dans le code, nous devons ajouter à notre article un champ personnalisé contenant la valeur que l’on souhaite afficher. Ici, je souhaite obtenir : « Temps de rédaction : x heure(s) » où x provient de la valeur du champ personnalisé.

Dans la page de gestion d’un article, vous avez un pavé dédié à leur gestion.

Wordpress champ personalisé

J’ai cliqué sur « Saisissez-en un nouveau ». J’indique ensuite le nom du champ et la valeur associée. Le nom est important, car il doit toujours être le même dans tous vos articles.
Pour afficher cette valeur dans mon article, je dois ajouter un peu de code à mon thème. Il est à ajouter en général entre l’affichage de la date et des tags. Chez moi cela donne :

<h1 class="post-title"><?php the_title(); ?></h1>
<p class="post-byline"><?php _e('by','hueman'); ?>
<?php the_author_posts_link(); ?> &middot;
<?php the_time(get_option('date_format')); ?> &middot;
Temps de r&eacute;daction :
<?php $tps = get_post_meta($post->ID, "tps_redac", true);
echo($tps); ?> heure(s)</p>
<?php the_tags('<p class="post-tags"><span>'.__('Tags :','hueman').'</span> ','','</p>'); ?>

Vous pouvez remarquer toute la partie entre « Temps » et « heure(s) ». J’utilise la fonction get_post_meta pour récupérer la valeur du champ personnalisé « tps_redac ». Résultat :

Wordpress champ personalisé

Vous pouvez bien entendu ajouter autant de champ personnalisé que vous le souhaitez et associer à votre article tout un corpus de données.

N’hésitez pas à indiquer d’autres méthodes pour répondre à ce besoin, il y a peut-être plus simple :-)


Réagir à cet article

Article original écrit par Philippe Scoffoni le 04/07/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

Bilan des soutiens pour le mois de juin et bientôt… la pub

mercredi 1 juillet 2015 à 22:27

soutenir coeurPréambule : Je ne cherche pas d’une manière ou d’une autre à culpabiliser qui que ce soit sur ce qu’il ferait ou ne ferait pas pour moi. Ce blog est payant à prix libre. C’est une réflexion/action à laquelle je vous invite :-) .

Commençons par les soutiens reçus, le compte est vite fait : rien de financier. Certains continuent de faire circuler assidûment mes articles sur les réseaux sociaux et je les en remercie.

De mon côté :

Sur le plan rédactionnel, j’ai produit 8 articles soit environ 14,5 heures de travail. Je vous invite à les parcourir au cas où vous en auriez raté un. Il ne faudrait pas gâcher :-) ! Une production moindre due à un mois de juin traditionnellement chargé.

Je ne vais pas vous la jouer, « trop triste, ça ne marche pas, je suis déçu ». Je savais que cela ne fonctionnerait pas. Je vais cependant continuer à vous casser un peu les pieds avec cela. L’internaute doit résoudre une bonne fois pour toutes le cruel dilemme auquel internet le confronte : payer pour les services ou contenus qu’il utilise ou être vendu. Pour l’instant, il préfère être vendu.

De la pub ??!!!

Hou-là-là, avez-vous dû vous dire, la situation est grave, Scoffoni, veut se transformer en Korben du Libre ? Au passage, j’ai parcouru ou plus exactement survolé les prises de bec sur le sujet initié par un billet de Cyrille. Ce n’est pas Korben qui est à blâmer, mais ceux qui pensent qu’être vendu à des régies publicitaires n’est pas gênant du moment qu’ils peuvent profiter « gratuitement » de tout ce qu’il trouve sur le Net. Je suis persuadé que si Korben avait une autre solution, il l’utiliserait. Les fautifs ne sont pas forcément les producteurs. Les consommateurs ont aussi leur part de responsabilité. C’est vrai dans bien d’autres domaines qu’internet.

Alors de la pub ici et pour quoi ? Ben, pour ce que je fais et ce que je prépare pour les semaines qui viennent. Pas de publicité « classique » via Adsense et autres régies publicitaires. Cela sera à l’image de la « publicité » pour mon guide qui est déjà présente dans la barre latérale de ce site.

Mais déjà les visiteurs en provenance du moteur de Google ont droit à une pop-up au bout de 20 secondes les invitant à me soutenir. Ceux-là seront probablement « agressés » plus radicalement et commercialement.

Le site ne se transformera pas en sapin de Noël, vos données ne seront pas revendues, je vous rassure, mais les offres seront bien visibles. Rendez-vous dans quelque temps.


Réagir à cet article

Article original écrit par Philippe Scoffoni le 01/07/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

Open Container Project, pour libérer les machines virtuelles

mercredi 24 juin 2015 à 23:50

containerUn sujet, sur lequel je ne suis pas revenu depuis pas mal de temps, est celui du cloud computing. Pourtant, il est désormais devenu partie intégrante de l’informatique des entreprises qui se sont plongées avec frénésie (et pas forcément pour leur bien) dans le gros nuage commercial. Pour beaucoup de patrons d’entreprise, désormais, l’informatique se consomme et le cloud computing est le vecteur de cette transformation. Le résultat est là : Microsoft annonce que le cloud représente désormais 35 % des revenus de sa division PME. C’est tout dire.

Un des points d’achoppement est celui de l’interopérabilité entre les clouds ou fournisseurs de services. Pour être précis, nous parlons ici de la couche basse du cloud : l’IaaS ou Infrastructure as a Service. C’est la possibilité de louer pour une minute, une heure, un jour, un mois, etc. une machine virtuelle dans laquelle nous allons pouvoir installer le système d’exploitation de notre choix. Cette machine virtuelle possède des caractéristiques techniques capables d’évoluer au grès de nos besoins.

Seulement, le jour où je ne suis plus content des services de mon fournisseur, il m’est difficile, voire souvent impossible, de transférer ma machine virtuelle. Je dois donc en prendre une neuve chez le nouveau fournisseur et tout réinstaller, migrer les données, etc..

Il existe pourtant depuis belle lurette des formats d’échanges tels que l’OVF (Open Virtual Machine Format) proposé comme standard de stockage sur disque des images de machines virtuelles depuis 2007. Bien que théoriquement soutenu au travers de la DMTF (Distributed Management Task Force, Inc.) par des acteurs comme Novell, Dell, HP, IBM, Microsoft, VMware, et Citrix, je ne l’ai guère vu mis en œuvre si ce n’est dans VirtualBox d’Oracle.

Depuis maintenant plusieurs mois, un projet dans le domaine de la virtualisation a beaucoup fait parler de lui : Docker. C’est ce projet qui a végété en France pendant trois ans, car personne n’en voulait, avant d’aller connaître un succès fulgurant de l’autre côté de l’Atlantique. Un container c’est une sorte de machine virtuelle, mais contenant en général une unique application.

Voici apparaître un nouveau projet dénommé Open Container Project. Son objectif est de fournir les spécifications d’un format de container standardisé capable de voyager d’un cloud à un autre de façon transparente ou presque. L’initiative est portée par la Linux Foundation et soutenue sur le papier par les gros bonnets du cloud : Amazon, Microsoft, Google et IBM et par des fournisseurs de solutions de cloud : VMware, EMC, Cisco, HP et Red Hat.

C’est Docker bien évidement qui fourni les bases en offrant une portion du code de son logiciel. C’est sur cette base minimale que devrait être construit le nouveau format.

L’annonce est toute fraîche, il va falloir attendre un peu avant de savoir s’il va réellement en sortir quelque chose et si les grands du cloud ont réellement un intérêt à permettre à leurs clients de balader leurs applications d’un nuage à un autre. Je ne sais pas pourquoi, mais je vois le verre à moitié vide…


Réagir à cet article

Article original écrit par Philippe Scoffoni le 24/06/2015. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.