About Romain

Jul.28

Docker: des adresses ip routables!

Avec un peu de retard (bah oui, pas eu le temps de jouer avec plus tôt), j’expérimente les nouvelles fonctions de docker développées par l’équipe libnetwork.

Depuis que j’utilise docker, j’ai toujours utilisé pipework pour mettre mes containers en réseau de la façon dont je voulais; que chacun aie une IP routable.

Mais aujourd’hui, grâce aux nouvelles (bon, ok, depuis la 1.10 il me semble) fonctions de docker network, il est possible d’attribuer de vraies ip à vos containers en quelques lignes à peine.

 

Dans mon setup, j’ai un réseau en 192.168.11.0/24 où se trouve mes hosts docker, mes aussi les containers.

#Créer le réseau docker
docker network create --subnet 192.168.11.0/24 --gateway 192.168.11.1 -o com.docker.network.bridge.name=outside outside

#Activer le bridge
sudo brctl addif outside eth0

#Lancer vos containers !
docker run --rm -it --net ipstatic --ip 192.168.11.20 nginx

C’est pas beau, ça ?

 

 

Tech&Dev

May.02

Apache: passer de mod_php a fpm

Si comme moi, vous disposez d’un serveur web utilisant apache et php, ceci peut vous intéresser:

Passer de mod_php à php-fpm offre de meilleurs temps de réponse, et une consommation de ressources bien moindre… voilà comment faire, partant d’une installation apache+mod_php:

sudo apt-get install libapache2-mod-fastcgi php5-fpm

Si aucun paquet candidat n’est trouvé, c’est parce qu’il vous faut ajouter multiverse dans vos sources 😉

Il vous faut ensuite informer apache de votre nouveau gestionnaire php, créez pour ça le fichier « /etc/apache2/conf-available/php5-fpm.conf » avec le contenu suivant:

<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</IfModule>

Il vous faut évidemment désactiver mod_php et activer la nouvelle config:

a2dismod php5
a2enmod actions fastcgi alias
a2enconf php5-fpm
service apache2 restart

Reste à vérifier le résultat, via un mini-script:

<?php
phpinfo();
?>

Vous devriez voir: « Server API:  FPM/FastCGI »

De toutes façons, vous verrez vite la différence de performances et d’utilisation de mémoire 😉

 

Note: pensez à transférer votre config php (php.ini) si vous avez changé celle par défaut… !

Tech&Dev

Aug.02

Premiers pas avec le NOSQL

Comme tout le monde, j’ai appris les bases de données avec le SQL. Ce système a de nombreuses qualités telles que la complexité possible des requêtes, les jointures, les opérations logiques et mathématiques, les structures de contrôles, ou encore la gestion des clés dépendantes.

Cependant, quand on travaille avec d’énormes quantités de données (je vous parle de dizaines ou centaines de millions de lignes), les bases SQL s’écroulent rapidement en terme de performances, c’est pourquoi je vous propose une introduction rapide au NOSQL.

Tech&Dev

Oct.22

DynDNS/DynHost auto-update

Accéder à ses données depuis n’importe où, c’est un concept plutôt fun, non ? Par contre, accéder à des dizaines de To de données depuis n’importe où, ça devient un peu plus compliqué…

Il y a peu, il m’a été demandé par une grosse boîte de mettre en oeuvre ce concept, sur base de serveurs existants, tournants sous ubuntu, et présents dans les bureaux de l’entrprise en question.

Vu le volume de données, et le matériel dont disposait l’entreprise; à savoir serveurs samba redondants (cfr cet article), j’ai décidé d’utiliser ces machines directement depuis internet.

Tech&Dev

Jul.16

Serveurs Samba redondants

Il y a quelques semaines, la modernisation de l’infrastructure informatique d’une petite entreprise de 15 travailleurs, m’a été confiée.

Tous travaillaient au même poste et devaient, en permanence, partager des données au niveau local. Or, celles-ci étaient stockées sur les postes clients et les échanges se faisaient par clef usb… Bref, pas top tout ça !

Mon approche a été de centraliser toutes ces données sur un serveur de fichiers, accessibles par tous les clients via le réseau (mélange de postes Ubuntu et Windows). Malheureusement, en centralisant l’information, on crée de nouvelles contraintes:

  1. Les données doivent être protégées contre la perte (Crash de HDD par exemple)
  2. Elles doivent être accessibles en permanence (FailOver requis !)

Au vus de ces contraintes, je me suis tourné vers un architecture à redondance complète : 2 machines avec réplication synchrone et gestion de FailOver, le tout sous Ubuntu Server. C’est la raison pour laquelle j’ai utilisé Samba (Serveur de fichiers), DRBD (synchronisation des données entre serveurs) et Heartbeat (FailOver logiciel via IP flottante).

Tech&Dev

Mar.16

Réplication circulaire avec MySQL

Récemment, il m’a été demandé de développer une application de gestion de stocks, pour une entreprise de construction, basée sur MySQL, pour la base de données. Évidemment, qui dit entreprise, dit logiciel qui fonctionne 24h/24, 7j/7, éviter la perte de données… Ceci m’a amené à m’intéresser à la fonction de réplication de MySQL…

J’ai donc cherché un peu de documentation, quelques tutos, mais rien ne fonctionnait. J’ai donc décidé de prendre le taureau par les cornes, en me référant à la documentation de MySQL.

Tech&Dev