À propos des perturbations sur les services BlackBerry

October 13th, 2011

Les services BlackBerry rencontrent de fortes perturbations depuis plusieurs jours. Parmi les clients d’Evolix pour qui nous infogérons leur service de messagerie, certains utilisateurs ont fait le (mauvais) choix d’utiliser des BlackBerry. Notre support se retrouve donc à traiter des problèmes de mails non délivrés sur BlackBerry… mais malheureusement nous n’y pouvons rien (à part expliquer la situation). En effet, le fonctionnement des BlackBerry est d’utiliser une sorte de proxy IMAP situé chez BlackBerry : un BlackBerry est donc connecté aux serveurs de BlackBerry qui récupèrent et mettent à jour les emails sur votre serveur de messagerie. Depuis lundi, on constate toujours des connexions de la part des serveurs de BlackBerry, mais les emails ne parviennent pas toujours instantanément sur votre BlackBerry : le problème est bien sur leur infrastructure en pseudo-Cloud Computing et on ne peut vraiment rien y faire !

J’en profite pour expliquer un peu pourquoi je pense que c’est un mauvais choix d’utiliser BlackBerry pour le mail. Premièrement, la non-utilisation des standards : il existe des protocoles pour l’envoi et la réception de mails, et ne pas les utiliser est une erreur. Deuxièmement, faire transiter des messages par d’obscurs serveurs en Angleterre ou au Canada est une hérésie. Nous mettons en place une messagerie adaptée aux exigences d’un client, et cette surcouche BlackBerry est aberrante : c’est un SPOF (Single Point Of Failure), un problème pour la confidentialité et la sécurité, une absurdité écologique …et surtout c’est inutile dans l’absolu ! Bref, changez pour un fonctionnement moins fermé, par exemple un smartphone Android avec le logiciel libre K-9 Mail avec votre serveur infogéré par Evolix ;-)

Opérateur réseau AS197696

September 30th, 2011

En complément des nouvelles informations sur l’hébergement Evolix, voici des précisions techniques sur la partie réseau.

Nous sommes donc devenu l’opérateur réseau AS197696. Cela signifie que nous faisons tourner un AS (Autonomous System) gérant plusieurs préfixes IPv4/IPv6 et interconnecté avec d’autres AS. Nous sommes actuellement connectés en direct avec les opérateurs JAGUAR et IELO qui gèrent des interconnexions de qualité avec Free, Orange, SFR, Google, etc. En agrégeant des opérateurs de qualité, grâce au routage dynamique via BGP, nous sommes un opérateur de très bonne qualité :-) ! BGP permet en effet de sélectionner naturellement les meilleures routes vers n’importe quel équipement connecté à Internet. BGP est également tolérant aux pannes : exemple concret, l’opérateur JAGUAR a réalisé une maintenance de 10 minutes la nuit dernière, ça n’a provoqué aucune coupure pour nous ! Autre avantage : en cas de soucis réseau quelque part sur Internet (au hasard, dans un gros datacenter parisien), nous pouvons dans certains cas contourner le problème même si il ne nous concerne pas ! Notez qu’en temps habituel, nous utilisons très peu cette capacité d’influencer le routage : notre politique est basée sur la sélection des routes de meilleures qualités, et non pas l’utilisation des routes les moins coûteuses comme le font souvent la plupart des opérateurs… Enfin, comme nous sommes sérieux, tout cela tourne avec de l’Open Source !

Par contre, ces évolutions vont imposer une contrainte pour tous les serveurs que l’on héberge depuis plus que quelques mois : pour bénéficier totalement de ces avantages, il est nécessaire de changer les adresses IP actuellement utilisées. La bonne nouvelle est que l’on peut ajouter ces nouvelles IPs sur les serveurs tout en continuant d’utiliser les IPs actuelles. Et cela pendant plusieurs mois (voire plus). La migration sera donc assez transparente : il suffira de changer tous les enregistrements DNS pointant sur les IPs actuelles, et dans des cas plus exceptionnels mettre-à-jour des règles de firewalls. Évidemment, nous allons prendre contact avec tous nos clients concernés pour gérer cela du mieux possible.

Evolix désormais hébergeur totalement indépendant

September 15th, 2011

Ça fait un moment que c’est en place, mais cette bonne nouvelle n’avait pas encore été publiquement annoncée : Evolix gère désormais son infrastructure d’hébergement en toute indépendance !

Cela signifie concrètement :

– Que nous louons des espaces en datacenter à différents prestataires (principalement au datacenter SFR de Marseille, rue Roger Salengro), nous permettant d’être maître de nos choix pour nos évolutions et de faire jouer la concurrence ;
– Que nous avons un statut d’opérateur réseau indépendant, ce qui nous permet de gérer nos propres adresses IP et de choisir nos fournisseurs de trafic Internet. Outre l’indépendance, cela offre une haute qualité (en choisissant les meilleures routes vers les autres opérateurs) et une complète redondance.

Pour le “plaisir”, vous pouvez ainsi faire en ligne de commande :

$ host www.evolix.fr
$ host gcolpart.evolix.net
$ whois 31.170.8.0/21
$ whois 2a01:9500::/32
$ whois AS197696

Je détaillerai dans un autre post plus technique la partie réseau (BGP, politique de routage, etc.) !

Évidemment, tout cela va nous permettre de faire évoluer nos offres commerciales pour (enfin) proposer de la location de serveurs dédiés associés à notre fameuse infogérance

Support H+4 ou J+1 pour votre serveur ?

June 15th, 2011

Nous devons souvent conseiller nos clients sur le choix du support H+4 ou J+1 pour leur serveur. En théorie un support H+4 permet d’obtenir un matériel de remplacement en moins de 4h 24h/24, alors qu’un support J+1 permet de déclarer l’incident uniquement en heures ouvrées (du lundi au vendredi de 9h à 18h) et de l’obtenir 1 jour ouvré après.

Pour aider à cette décision, je vous propose de profiter d’un incident traité la nuit dernière par notre équipe de sysadmins. Il s’agit d’un soucis classique avec un disque défectueux sur un serveur DELL PowerEdge en support H+4. Voici l’historique précis de l’incident :

Mardi 14 juin 23h45 : le controleur RAID du serveur nous remonte une alerte : un disque OFFLINE.

Mardi 14 juin 23h50 : notre sysadmin d’astreinte intervient sur le serveur pour vérifier l’alerte. Une fois confirmée, il reste à collecter les différentes informations nécessaires à l’appel au support (numéros du serveur, logs à transmettre au technicien, etc.)

Mercredi 15 juin 00h05 : appel au support DELL. Vu que l’on est en heures non ouvrées, on passe donc par le support 24/24. À bien noter que le support 24/24 est exclusivement en anglais (si vous comptez faire intervenir une personne ne parlant pas la langue de Shakespeare, c’est raté). La conversation avec le technicien DELL peut être longue car selon son humeur il va demander de lui envoyer par mail le résultat de certaines commandes, chercher lui-même dans sa base de connaissances, etc. Le délai est clairement variable à cette étape. De notre côté, l’appel a duré 52 minutes !

Mercredi 15 juin 01h00 : départ en urgence pour le datacenter, le technicien DELL exigeant une vérification visuelle du disque et de ses numéros de série.

Mercredi 15 juin 01h20 : arrivée au datacenter, il faut maintenant passer tous les accès, sortir le disque concerné et envoyer un email de confirmation au technicien DELL.

Mercredi 15 juin 01h30 : l’email “final” est envoyé à DELL.

Mercredi 15 juin 02h00 : sans confirmation par mail ou téléphone, une relance par mail est faite.

Mercredi 15 juin 02h20 : le technicien DELL rappelle pour confirmer qu’il vient de prendre en compte l’email. Tout lui parait OK, il lance donc la procédure de remplacement du disque défectueux.

Mercredi 15 juin 03h00 : on reçoit un email de DELL nous donnant une estimation d’arrivée du disque pour 05h00… on ignore cependant si c’est GMT+1 (comme pour notre interlocuteur chez DELL) ou bien GMT+2

Mercredi 15 juin 05h01 : on reçoit bien le disque par “Taxi Colis”. Je vous fais grâce de la suite des opérations, pas très intéressantes pour illustrer le sujet.

En conclusion, environ 5h entre le début de l’incident et la réception du matériel, soit un peu plus de 4h entre l’appel au support DELL et la réception du disque. Dans un cas général, les constructeurs respectent donc pratiquement leur engagement H+4… mais il ne faut pas négliger le temps nécessaire à analyser le problème avec le support (de quelques minutes à plusieurs heures selon l’incident matériel) et le plus important : s’assurer d’avoir une bonne infogérance 24/24 ! Sachant qu’un support H+4 coûte quelques centaines d’euros supplémentaires à l’achat, qu’il est possible en complément (ou à la place !) d’avoir une partie du matériel en spare… ou même un 2e serveur (ou plus) qui pourra prendre le relai à chaud ou en secours… vous avez presque tous les éléments en main : à vous de choisir !

Bilan de l’IPv6day Evolix

June 13th, 2011

Evolix infogère des centaines de serveurs chez différents hébergeurs français. À l’occasion de l’IPv6day (mercredi 8 juin 2011), nous avons pu vérifier le déploiement d’IPv6 chez chacun d’eux. Pour certains, c’était déjà en place (parfois depuis des années), pour d’autres c’est beaucoup plus “problèmatique”. Petit bilan sans concession :

– JAGUAR NETWORK : OK pour l’IPv6
– LOST OASIS/IELO : OK pour l’IPv6
– DEDIBOX/ONLINE : OK pour l’IPv6
– OVH : OK pour l’IPv6
– GANDI HOSTING : OK pour l’IPv6
– IKOULA : #FAIL pour l’IPv6 ; malgré une communication autour d’IPv6 (?!), réponse reçue : “Nous vous invitons à contacter le service commerciale à sales@ikoula.com.”
– AMAZON EC2 : #FAIL pour l’IPv6 ; IPv6 est déclaré comme “non supporté”…
– NEXTO : #FAIL pour l’IPv6, réponse reçue : “Aucun planning n’est actuellement prévue pour la migration IPv6.”
– ILIAD ENTREPRISES : #FAIL pour l’IPv6, réponse reçue : “pour le moment ca n’est pas possible, on espère pouvoir le fournir prochainement mais je ne peux pas donner d’échéance précise pour l’instant.”

Côté fournisseur d’accès français, ça sera plus rapide, seul Nerim offre un accès natif depuis presque 10 ans. Free s’y est mis plus récemment en proposant un accès 6to4rd : c’est moins bien qu’un accès natif notamment car cela signifie qu’IPv6 n’est pas déployé sur le cœur de réseau, mais Free a permis une mise en œuvre très facile : il suffit de cocher une option sur une interface web pour activer l’IPv6.

Pour l’IPv6day, Evolix a donc proposé à tous ses clients d’activer leurs services en IPv6 pour ce jour là, notamment de les aider à ajouter temporairement un enregistrement DNS AAAA sur les noms de domaines les plus utilisés. Le taux de réponse a été très faible, et nous remercions notamment les sites web http://www.itsartmag.com/ et http://www.chambresapart.fr/ d’avoir joué le jeu.

Sur la partie technique, l’activation de nos propres services et ceux de certains clients ont montré que tout est quasiment prêt. Le soucis majeur n’est plus vraiment de se préoccuper si cela marche ou pas, mais d’avoir une qualité de service au moins équivalente à l’IPv4. De façon plus terre à terre, l’enjeu n’est plus d’arriver à faire un ping6 ipv6.google.com ou de voir la tortue danser sur www.kame.net MAIS d’avoir des temps de réponse corrects. Concrètement, à cause de l’utilisation de nombreux tunnels IPv6, mais aussi d’infrastructures IPv6 expérimentales et moins robustes chez les opérateurs et fournisseurs d’accès, on a souvent constaté des temps de réponses dégradés en IPv6 pour l’utilisateur final. Par exemple, depuis un accès donné, un site web qui répondait en 50ms en IPv4 peut se retrouver à répondre en 200ms en IPv6…

Pour conclure, l’IPv6day a permis de valider le bon fonctionnement d’IPv6 en parallèle d’IPv4 ; il faut surtout rester vigilant sur la qualité des services accessibles en IPv6, notamment en terme de temps de réponse (tout n’étant pas parfait sur ce point, je conseille d’ailleurs de désactiver pour l’instant les doubles enregistrements DNS A et AAAA sur vos noms de domaine). Par contre, l’obstacle principal à IPv6 reste la partie communication, et l’on voit que des évènements comme l’IPv6day ne suffisent pas : pour forcer tout le monde à s’intéresser à IPv6, il faudrait que des moteurs de recherche comme Google pénalisent les sites web n’étant pas accessibles en IPv6. Prochaine étape ?

Naissance de Planet Evolix

March 15th, 2011

L’équipe Evolix est fière de vous annoncer la naissance de Planet Evolix !

Un Planet (nom issu du logiciel PlanetPlanet) est un ensemble de blogs de personnes appartenant à une même société ou une même communauté. Souvent présent dans le milieu Open Source, on trouve ainsi des Planet pour Debian, Apache, PHP, Python, RubyOnRails, Mozilla, Sun… et Evolix donc. Vous pouvez consulter notre Planet par le web sur planet.evolix.org ou par son flux RSS.

On espère bien que notre Planet est né… sous une bonne étoile ! :-)

Faire du POST/GET/HEAD en ligne de commande

January 14th, 2011

À l’heure des webservices RESTful, il est essentiel d’avoir des outils simples pour réaliser tous types de requêtes HTTP. Et l’outil indispensable c’est LWP (WWW Library for Perl), disponible sous tout système digne de ce nom (sous Debian c’est libwww-perl), qui met notamment à disposition des non-barbus les fabuleuses commandes HEAD, GET, POST. Rien de nouveau, mais l’infogérance Evolix utilisant quasi-quotidiennement ces commandes, il me paraît utile de s’assurer que ces commandes sont entre toutes les mains des développeurs avec lesquels on travaille (et des autres ;-).

Au delà de la Man Page voici quelques exemples pour vous convaincre :

$ HEAD www.evolix.fr
200 OK
Connection: close
Date: Tue, 28 Dec 2010 20:08:35 GMT
Server: Apache
Vary: Accept-Encoding
Content-Type: text/html
Client-Date: Tue, 28 Dec 2010 20:08:44 GMT
Client-Peer: 85.31.205.43:80
Client-Response-Num: 1

$ HEAD -U -H "User-Agent: Mozilla/4.8 [en] (Windows NT 5.1; fr; rv:BlogByGcolpart)" \
 -H "Referer: http://www.evolix.fr/" www.evolix.fr/serv/infogerance.html
HEAD http://www.evolix.fr/serv/infogerance.html
Referer: http://www.evolix.fr/
User-Agent: Mozilla/4.8 [en] (Windows NT 5.1; fr; rv:BlogByGcolpart)

200 OK
Connection: close
Date: Thu, 13 Jan 2011 23:14:13 GMT
Server: Apache
Vary: Accept-Encoding
Content-Type: text/html
Client-Date: Thu, 13 Jan 2011 23:14:13 GMT
Client-Peer: 85.31.205.43:80
Client-Response-Num: 1

$ GET http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.2.tar.bz2 > linux-2.6.36.2.tar.bz2

$ GET google.fr | grep charset= | sed 's@^.*charset=\([-a-Z0-9]*\)".*$@\1@'
ISO-8859-1

$ POST http://www.evolix.fr/contacts.html
Please enter content (application/x-www-form-urlencoded) to be POSTed:
from=jdoe%40example.com&contenu=Coucou&validation=nospam&soumettre=ok
Ctrl+d

$ echo -n "from=jdoe%40example.com&contenu=Coucou&validation=nospam&soumettre=ok" > /tmp/POST-DATA.txt
$ POST http://www.evolix.fr/contacts.html < /tmp/POST-DATA.txt

Note : Attention, pour envoyer interactivement des données en POST, il faut ensuite les valider avec Ctrl+d

Être jeune et entrepreneur : un pari si osé ?

December 6th, 2010

Le Startup Week-end MArseille (#SWMA), où j’ai eu l’honneur de faire partie du jury, m’a forcément rappelé la création d’Evolix il y a bientôt 8 ans. Et notamment le fait d’être jeune et entrepreneur.

On entend souvent qu’il est indispensable d’avoir de la bouteille pour se lancer dans l’aventure de la création d’entreprise. Je pense qu’au contraire, il y a certains avantages à entreprendre en étant jeune :

Vous avez le droit de vous rater
Votre carrière professionnelle n’est pas en jeu. Au pire si vous vous ratez, on dira que vous étiez trop jeune. Pas comme un salarié de 45 ans quittant sa boîte pour créer une startup en tant qu’expert dans son domaine : lui, il a pas le droit de se rater. Mais vous, vous êtes jeune, vous pourrez toujours rebondir. Et cela doit vous enlever beaucoup de pression.

Vous n’avez pas ou peu d’expérience
Ne pas avoir d’expérience, dans un certain sens, c’est un avantage ! Grâce à cela, vous lancez sans le savoir des projets impossibles. Impossible pour une personne expérimentée. Donc forcément originaux. Et c’est un bon moyen pour réussir : de nombreuses success story ont été lancées par de jeunes inconscients : ils ne savaient pas que c’était impossible, alors ils l’ont fait

Le sujet de votre projet est vraiment libre
Plus vous vieillissez, moins vous pourrez changer de vocation. Alors profitez d’être jeune pour tracer votre voie dans un sujet qui vous passionne.
Vous n’avez pas (encore) de clients, peu de background : profitez de cela pour vous lancer dans un projet qui vous plaît ! Et attention au piège de sacrifier votre passion sous pretexte de gagner rapidement de l’argent : vous avez l’occasion de faire partie des rares personnes qui aiment leur boulot… vous ne l’aurez qu’une fois !

Pour conclure, cette petite réflexion est en forme de contre-pied à certaines idées reçues… mais je ne dis pas non plus qu’il est facile d’entreprendre en étant jeune. Ni qu’il est facile d’entreprendre d’ailleurs. Dans tous les cas, il faut savoir s’entourer, se tromper, déléguer, se remettre en question, faire des semaines de 35h (de sommeil), etc. Enjoy.

Mise-a-jour WordPress par l’interface web via SSH

October 13th, 2010

J’ai eu l’occasion de m’intéresser à la mise-à-jour de WordPress par l’interface web, et notamment via SSH car un Pack Web Evolix active uniquement un accès SSH/SFTP/RSYNC pour un compte web par défaut. Pour cela, il faut installer le paquet php5-ssh2 (disponible sur http://pub.evolix.net/lenny/ en version amd64 pour Debian Lenny), ce qui active automatiquement la possibilité de choisir SSH2 pour la mise-à-jour. Attention, il faut également activer allow_url_fopen pour que cela fonctionne correctement (merci à ce blog-post). Bien sûr, cela permet également de réaliser les mises-à-jour des plugins comme Akismet par exemple.

Voilà, il ne reste plus qu’à rentrer votre identifiant et mot de passe lors d’une mise-à-jour (évidemment cela ne dispense pas de tester en pré-production, de faire des sauvegardes, de désactiver puis réactiver ses plugins, etc.)… vous n’avez donc plus de raison d’avoir une version de WordPress avec des failles de sécurité !

upgrade wordpress via sftp

Capture input/output of a process with gdb

September 14th, 2010

My tip of day. When you lose control of a process (for example with a process launched with disown or, another example, when you close your SSH terminal with “unsynced” mutt), thanks gdb.

$ tty
/dev/pts/13
$ gdb --pid=`pidof mutt`
(gdb) call close(0)
(gdb) call close(1)
(gdb) call close(2)
(gdb) call open("/dev/pts/13", 2, 0)
(gdb) call dup(0)
(gdb) call dup(0)
(gdb) detach
Detaching from program: /usr/bin/mutt-org, process 2932

Thanks to this comment on superuser.com for the original idea.

Edit: correction on dup() calls. Thanks to Peter Pentchev for his explanation in comments.