PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

genma : Du manque de diversité des intervenants aux Ubuntu Party

mercredi 28 octobre 2015 à 11:30

C'est un twitt d'Okhin en réponse à un des miens dans lequel je demandais "sur quels sujets je pourrais parler lors de l'Ubuntu Party" qui m'a inspiré ce billet. Son message a été "Et le manque de diversité dans les intervenants dans les Ubuntu Party, on en parle ?"

En une seule phrase de quelques mots, il soulevait une problématique intéressante que je souhaite développer dans le présent article. J'assiste aux Ubuntu Party quasiment depuis qu'elles existent, même si cela fait quelques sessions que je participe plus activement en aidant, un peu, à l'organisation et en venant y donner des conférences. Lors de la dernière édition par exemple, j'ai parlé sur quatre sujets différents, à savoir Framasoft et la Degooglisation, Tor et le Tor Browser, Firefox OS l'OS pour smartphone de Mozilla et Les Geeks aussi ont le droit à une vie privée. J'ai donc, d'une certaine façon, bloqué quatre créneaux de conférences pendant lesquelles d'autres personnes auraient pu parler. Par d'autres, j'entends des personnes ayant moins de visibilité que moi mais ayant des choses tout aussi intéressantes - si ce n'est plus - à partager.

L'Ubuntu party, comme son nom l'indique, est avant tout deux jours consacrés à Ubuntu. Mais avec les années, les sujets se sont diversifiés (il n'y plus nécessité de présenter pendant des heures les nouveautés de la dernière version par exemple) restant toutefois toujours en rapport (plus ou moins lointain parfois) avec le logiciel libre. Ubuntu party c'est aussi un titre qui n'est pas parlant pour le grand public tous comme la plupart des thèmes abordés ne le sont également pas, mais c'est normal. On est sur une thématique, qui, même si elle est large, a pour dénominateur commun l'informatique et le logiciel libre.

Les problèmes sont que ce sont souvent les mêmes personnes que l'on revoit tous les 6 mois et année après année (et moi-même je suis le premier concerné). Les mêmes figures emblématiques du logiciel libre, qui viennent parler de l'actualité, de l'avancement de leurs thématiques. Peut-être que c'est très bien. Mais...

Ca reste une majorité d'homme blanc cis etc. geek. La diversité n'est pas là. Ca manque de femme, de personnes de couleurs... Cela ne reflète-t-il pas le fait que le logiciel libre reste encore cloisonné à des geeks et donc majoritairement des personnes ayant eu du temps pour apprendre ou ayant fait des études dans le domaine ? A contrario, la mère célibataire a autre chose à penser que de se tenir au courant des dernières nouveautés d'Ubuntu... (D'ailleurs, une femme, bibliothécaire venue assistée à ma conférence en vue de préparer le festival Numok, m'avait confié "ne pas se sentir à sa place" quand aux discussions libristes entendues de ci et de là. Fin de la paranthèse).

J'essaie d'aborder sur ce blog dans différents billets le sujet de comment parler au grand public et de comment s'ouvrir plus à l'autre, car c'est une problématique qui me tient à cœur. Je sais bien que ce n'est pas en un court billet que l'on trouvera les réponses à des problématiques sur lesquelles des personnes planchent au quotidien pendant des heures depuis des années...

Mais je pense que pour faire un pas de plus dans cette direction, je communiquerai plus sur cet événement en aidant à le rendre plus grand public et ce peut-être en passant moins de temps sur le devant de la scène, en laissant ma place à d'autres, en sollicitant quelques personnes moins visibles à venir parler (et en les aidant dans les coulisses si besoin à préparer leurs interventions). Pour cela, si vous souhaitez participer et aider à changer les choses,contactez moi, ou inscrivez vous pour aider à l'organisation de l'Ubuntu Party, ou proposer des conférences.

Lancez-vous, je vous aiderai volontiers et si possible. Que ce ne soit pas toujours les mêmes qui parlent.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Nicolas Lœuillet : Utiliser Mailcatcher via une machine Vagrant

mercredi 28 octobre 2015 à 09:30

Mailcatcher, c'est un serveur SMTP pour le local. Bien pratique, ça vous évite de devoir réellement envoyer des emails sur une boite mail toutes les deux minutes pour voir si la modification que vous venez de faire sur votre email s'affiche bien comme il faut.

Mailcatcher

Au boulot, j'utilise une VM Vagrant pour mon projet. Comment faire pour pouvoir utiliser Mailcatcher sur ma VM ?

Déjà, il faut installer Mailcatcher (gem install mailcatcher).
Ensuite, il faut rediriger le port 1080 de la VM vers le port 1080 de votre PC :

...
        config.vm.network :forwarded_port,  guest: 1080, host: 1080
...

Enfin, il faut démarrer Mailcatcher en lui forçant l'IP : mailcatcher --ip=0.0.0.0

Magie, vous avez accès à Mailcatcher en vous rendant sur http//localhost:1080.

Gravatar de Nicolas Lœuillet
Original post of Nicolas Lœuillet.Votez pour ce billet sur Planet Libre.

Nicolas Lœuillet : Utiliser Mailcatcher via une machine Vagrant

mercredi 28 octobre 2015 à 09:30

Mailcatcher, c'est un serveur SMTP pour le local. Bien pratique, ça vous évite de devoir réellement envoyer des emails sur une boite mail toutes les deux minutes pour voir si la modification que vous venez de faire sur votre email s'affiche bien comme il faut.

Mailcatcher

Au boulot, j'utilise une VM Vagrant pour mon projet. Comment faire pour pouvoir utiliser Mailcatcher sur ma VM ?

Déjà, il faut installer Mailcatcher (gem install mailcatcher).
Ensuite, il faut rediriger le port 1080 de la VM vers le port 1080 de votre PC :

...
        config.vm.network :forwarded_port,  guest: 1080, host: 1080
...

Enfin, il faut démarrer Mailcatcher en lui forçant l'IP : mailcatcher --ip=0.0.0.0

Magie, vous avez accès à Mailcatcher en vous rendant sur http//localhost:1080.

Gravatar de Nicolas Lœuillet
Original post of Nicolas Lœuillet.Votez pour ce billet sur Planet Libre.

Monitoring-FR : Eyes Of Network : sorties de la version 4.2

mercredi 28 octobre 2015 à 07:45

Eyes Of Network (“EON”) est une solution de monitoring Open Source réunissant de manière pragmatique les processus ITIL. Elle est basée sur plusieurs produits libres tel que Nagios, Nagvis, GLPI….

EON est accessible via une interface web qui comprends une interface graphique de définition des processus métiers et des modules de génération de rapports de statistiques sur les incidents et de génération de graphiques de performances permettant à chaque acteur d’un Système d’Information de disposer des information pertinentes pour son métier.

La version 4.2 renforce encore ce positionnement en offrant un nouveau module de simulation utilisateur. Ce module permet de définir, sur une workstation,  des scénarios applicatifs et de les jouer à place de l’utilisateur afin d’obtenir une disponibilité encore plus précise des applications métiers et de donner au DSI une vision encore plus fine de son Système d’Information.

Release Notes : https://www.eyesofnetwork.com/?p=1554&lang=fr

Téléchargement: https://www.eyesofnetwork.com/?page_id=48&lang=fr

Gravatar de Monitoring-FR
Original post of Monitoring-FR.Votez pour ce billet sur Planet Libre.

Articles similaires

Wooster by CheckmyWebsite : Wordpress en mode Docker

mercredi 28 octobre 2015 à 06:00

J’ai eu à installer un blog Wordpress il y a quelques temps pour une connaissance. N’étant pas emballé par la traditionnelle installation, je me suis dit qu’il serait bon de voir comment avait évolué Docker et ce que je serais capable d’en faire plus d’un an après mes premiers essais.

Installation de Docker

Je procède à l’installation de Docker sur une Ubuntu 14.04 pour ne pas changer, l’essentiel étant d’avoir un noyau d’une version supérieure à la 3.10. La procédure d’installation elle-même est très simple et la documentation complète. Rien de plus à ajouter !

Dockerisation de Wordpress

La façon la plus simple d’obtenir un Wordpress fonctionnel et dockerisé est certainement de partir d’une image officielle disponible sur le Hub Docker.

Malheureusement, aucune de ces images ne me convient. La plupart d’entre elles embarquent allégrement toute la pile (Wordpress, MySQL, PHP) dans un seul conteneur, ce qui est contraire à l’esprit Docker où il est prévu qu’un conteneur ne doit faire tourner qu’un seul processus.

De plus, l’image officielle de Wordpress, qui se rapproche le plus de ce que je veux, ne comprend pas les extensions PHP nécessaires à l’installation que j’ai en tête.

Voulant respecter le principe d’un processus par conteneur et voulant quelques options non disponibles dans les images officielles, je me suis donc tourner vers Docker Compose, qui permet de définir une application par l’ensemble des conteneurs la composant.

Docker Compose fait partie avec Swarm et Machine entre autres de qui s’appelle désormais la Docker Toolbox. Mais ne nous écartons pas de notre sujet principal !

Wordpress avec Docker Compose

Essayons de rentrer dans la logique qui va permettre de composer mon application en décrivant ce dont j’ai besoin pour motoriser un blog Wordpress.

Les options dépendent des goûts de chacun mais en ce qui me concerne, mon setup de référence pour Wordpress reste :

  • Un serveur MySQL
  • Un serveur Memcache
  • Un serveur PHP-FPM, qui contient les sources de Wordpress
  • Un serveur Nginx

soit quatre processus et donc quatre conteneurs !

Installation de Docker Compose

L’installation de Docker Compose est simple

curl -L https://github.com/docker/compose/releases/download/VERSION_NUM/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

il est temps de traduire en instructions, directives Docker Compose la description applicative faite préalablement.

Docker Compose utilise un fichier au format YAML nommé par défaut docker-compose.yml. Il contient la déclaration des briques composant l’application à dockeriser. Nous allons construire progressivement ce fichier en commentant chacune des directives.

Un serveur MySQL

Chez moi, MySQL c’est MariaDB ! Il fonctionne sans souci avec les dernières versions de Wordpress.

mysql:
  image: mariadb
  restart: always
  volumes:
    - ./var/mysql:/var/lib/mysql
  environment:
    MYSQL_ROOT_PASSWORD: password
  • mysql est le nom du service fourni à l’application.
  • image permet de spécifier l’image qui va être utilisé pour construire le conteneur.
  • restart permet comme son nom l’indique de démarrer automatiquement le conteneur lors d’un reboot du serveur Docker par exemple.
  • volumes permet de définir un point de montage dans le conteneur qui pointe vers un dossier du serveur Docker.
  • environment permet de passer n’importe quelle variable en variable d’environnement au moment de l’exécution du conteneur.

Pas de quoi se faire mal à la tête il me semble, tout est plutôt explicite en fait ! Et vous pouvez même utiliser un éditeur en ligne pour vous aider dans l’écriture de ce fichier.

Un serveur Memcache

Rien de bien compliqué non plus côté Memcache

memcached:
  image: memcached
  restart: always

Ben oui, c’est tout !

Un serveur PHP

L’image officielle PHP contient plusieurs variantes qui permettent au choix une utilisation avec Apache ou PHP-FPM et qui permettent de spécifier une version particulière de PHP. Mais aucune ne contient les extensions PHP dont j’ai besoin comme par exemple memcache. Il faut donc construire une image spécifique à partir de celle qui est la plus proche de celle souhaitée.

Je passe donc par un Dockerfile qui va contenir l’ensemble des commandes qui dérivent de l’image officielle.

FROM wordpress:fpm

RUN apt-get update && apt-get install -y libmemcached-dev tidy csstidy

RUN curl -o memcached.tgz -SL http://pecl.php.net/get/memcached-2.2.0.tgz \\
        && tar -xf memcached.tgz -C /usr/src/php/ext/ \\
        && rm memcached.tgz \\
        && mv /usr/src/php/ext/memcached-2.2.0 /usr/src/php/ext/memcached
RUN curl -o memcache.tgz -SL http://pecl.php.net/get/memcache-3.0.8.tgz \\
        && tar -xf memcache.tgz -C /usr/src/php/ext/ \\
        && rm memcache.tgz \\
        && mv /usr/src/php/ext/memcache-3.0.8 /usr/src/php/ext/memcache
RUN curl -o zip.tgz -SL http://pecl.php.net/get/zip-1.13.1.tgz \\
        && tar -xf zip.tgz -C /usr/src/php/ext/ \\
        && rm zip.tgz \\
        && mv /usr/src/php/ext/zip-1.13.1 /usr/src/php/ext/zip

RUN docker-php-ext-install memcached
RUN docker-php-ext-install memcache
RUN docker-php-ext-install zip

Rien de bien méchant, je me contente d’ajouter quelques modules PHP dont j’aurais besoin avec le plugin de cache que j’utilise avec Wordpress. C’est fait à la sauce Docker avec l’instruction docker-php-ext-install.

Ensuite, dans mon service, je remplace l’instruction image par build et je pointe vers le répertoire qui contient le Dockerfile, ici wordpress.

wordpress:
  build: wordpress
  restart: always
  links:
    - mysql
    - memcached
  volumes:
    - ./wp:/var/www/html
  environment:
    WORDPRESS_DB_NAME: wpdb
    WORDPRESS_TABLE_PREFIX: dbprefix_

Une nouvelle instruction est apparue et elle est d’une puissance redoutable.

links permet en effet de raccorder deux conteneurs entre eux. Ainsi, le service wordpress va donc être lié au service mysql et memcached. plus besoin de connaître l’adresse IP du serveur Memcache ou MySQL, et ça tombe bien puisque ces adresses sont assignées dynamiquement par Docker au démarrage d’un conteneur.

Un serveur Nginx

Rien de bien nouveau avec le serveur Nginx si ce n’est l’instruction ports, qui comme son nom l’indique permet d’exposer un ou plusieurs d’un conteneur vers le vaste monde. Sans ce type d’instruction, le serveur Nginx ne serait pas joignable depuis Internet.

nginx:
  image: nginx
  restart: always
  ports:
    - 80:80
    - 443:443
  log_driver: syslog
  links:
    - wordpress
  volumes:
    - ./wp:/var/www/html:ro
    - ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    - ./var/log/nginx:/var/log/nginx

Et le monitoring alors ?

Docker apporte son lot de changements au niveau supervision. Il devient difficile d’embarquer un agent dans un conteneur puisqu’il faudra du coup dériver toutes les images depuis celles du Hub pour leur ajouter au niveau Dockerfile les instructions nécessaires au provisionnement de l’agent dans le conteneur. Et cela fera un processus de trop !

Heureusement, quelques projets sortent pour permettre de faire ça proprement et notamment Cadvisor de Google.

Le plus beau, c’est que nous allons faire tourner Cadvisor dans un conteneur et qu’il va permettre la supervision de l’ensemble de ceux-ci.

Il faut donc ajouter un nouveau service au fichier docker-compose.yml

cadvisor:
  image: google/cadvisor
  ports:
    - 8080:8080
  restart: always
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro

Le résultat est immédiat et plutôt flatteur.

Vue imprenable sur les conteneurs
Vue imprenable sur les conteneurs

Voilà une supervision temps réel de base des conteneurs à peu de frais. Je vois d’un seul coup d’œil la consommation CPU, mémoire, réseau, disque de chacun des conteneurs démarrés, le tout dans une interface plutôt agréable. De plus, il est possible d’envoyer l’ensemble des métriques dans InfluxDB. On se garde ça sous le coude pour une autre fois ?

Mais cela ne suffit pas. Ce n’est pas parce que tout roule côté serveur que le site est accessible. J’ajoute donc naturellement ce nouveau Wordpress dockerisé sur Check my Website, histoire de vérifier qu’il est bien disponible depuis l’extérieur.

Et parce que c’est une fonctionnalité dificile à avoir sur une solution de supervision classique et que l’application ainsi dockerisé le vaut bien, une topologie complète applicative et mise à jour en temps réel obtenue grâce à Weave Scope.

Topologie applicative avec Weave Scope
Topologie applicative avec Weave Scope

Le résultat final

le résultat final est ce fichier docker-compose.yml qui contient la déclaration de l’ensemble des briques nécessaires à Wordpress.

nginx:
  image: nginx
  restart: always
  ports:
    - 80:80
    - 443:443
  log_driver: syslog
  links:
    - wordpress
  volumes:
    - ./wp:/var/www/html:ro
    - ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    - ./var/log/nginx:/var/log/nginx

wordpress:
  build: wordpress
  restart: always
  links:
    - mysql
    - memcached
  volumes:
    - ./wp:/var/www/html
  environment:
    WORDPRESS_DB_NAME: wpdb
    WORDPRESS_TABLE_PREFIX: dbprefix_

mysql:
  image: mariadb
  restart: always
  volumes:
    - ./var/mysql:/var/lib/mysql
  environment:
    MYSQL_ROOT_PASSWORD: password

memcached:
  image: memcached
  restart: always

cadvisor:
  image: google/cadvisor
  ports:
    - 8080:8080
  restart: always
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro

Gestion du cycle de vie

Pour démarrer l’ensemble de la pile applicative ainsi déclarée, il suffit d’un

docker-compose up

ou

docker-compose start

pour le même résultat mais en arrière plan.

Vous êtes sûrs que je vous donne la commande pour arrêter l’application ? j’ai envie de dire stop à la facilité !

Mettre à jour tout ce petit monde est d’une simplicité redoutable et c’est certainement un des gros avantages de Docker.

docker-compose pull
docker-compose build
docker-compose up -d

Tout est mis à jour sans interruption de services, la classe !

Enfin, le jour ou vous en aurez marre de votre Wordpress, un simple

docker-compose rm

supprimera les conteneurs et avec l’option -v associée, supprimera les volumes associés.

Il est bien sûr toujours possible d’améliorer ce setup. L’intérêt dans le contexte docker est qu’on ne repart pas à zéro comme trop souvent. Ce qui est décrit permet de capitaliser pour la suite.

Par exemple, comme indiqué au niveau bonnes pratiques dans la documentation de Docker, il serait possible de créer un conteneur uniquement destiné au stockage des données Wordpress et qui seraient monté avec l’instruction volumes_from depuis les services en ayant besoin soit wordpress et nginx.

Sentiment final

L’éco-système Docker a beaucoup évolué en un et demi, c’est le moindre que l’on puisse dire. L’outil est désormais beaucoup plus mature et simple à prendre en main.

J’aime beaucoup le format du fichier docker-compose ou il y a finalement assez peu de choses à déclarer pour avoir une description plutôt complète d’une application.

Une fois que l’on a goûté au workflow proposé par Docker, c’est difficile de s’en passer !

Gravatar de Wooster by CheckmyWebsite
Original post of Wooster by CheckmyWebsite.Votez pour ce billet sur Planet Libre.