Ou, pourquoi une société aussi respectable que France Télécom / Voila en est-elle arrivée à utiliser une technologie aussi peu commune.
Avant de rentrer dans le vif du sujet, et pour éviter tout commentaire des plus pointilleux d'entre vous, il est important préciser que nous entendons par la technologie Linux non seulement l'OS, mais aussi tous les logiciels libres qui l'accompagnent.
Tout a commencé avec bien peu de choses, fin 1996. Un simple PC acheté au Taiwanais du coin, des bouts de code en Perl et en C, bricolés sur NeXt Step, testés sous BSDI, et la volonté de rendre ce foutu moteur de recherche disponible sur le réseau. Pas de quoi acheter un UNIX, enfin aucune raison de payer ce qui semblait être disponible gratuitement, la solution s'imposait donc : Linux. Et les autres ingrédients essentiels, le serveur Web (Apache), un serveur de Nom, Perl, GCC et c'était parti. Le moteur de recherche ECHO (http://echo.fr) et ses quelques premiers services prenaient vie sur le Net. Les premiers visiteurs, les premiers bugs aussi, mais peu de problèmes somme toute.
A ce moment, rien n'était forcément joué d'avance et le «risque Linux» était au cœur de nos préoccupations. Nous étions en permanence prêts à changer d'OS (Solaris, AIX) au cas où ce dernier aurait été défaillant.
Puis tout a été très vite : un accord avec France Télécom (prise de participation dans la société), la maîtrise d'oeuvre pour le développement de Voila. Et quand on jette un coup d'oeil à la salle machine aujourd'hui, on a presque le vertige : plus de 100 serveurs entre Sophia Antipolis et New York, 95 % Linux, 100% opérationnels et plusieurs millions de requêtes chaque jour.
C'est donc maintenant que se pose la question, pourquoi avons-nous toujours fait confiance à Linux ? La réponse tient en ces quelques réflexions et anecdotes.
Depuis 2 ans, il faut bien dire que personne n'a chômé. Toutes les fonctions vitales du site Voila (http://www.voila.fr), connecté 24/24 sur l'Internet et offrant toutes sortes de services aux internautes, ont dû être développées. Et c'est précisément là que Linux prend tout son sens.
La maîtrise de son fond de commerce
Le fond de commerce de Voila se trouve entre les nombreux services qu'il propose, le moteur de recherche et les partenaires qui enrichissent notre portail. Le fait de pouvoir se centrer sur notre cœur de métier impose la maîtrise des logiciels que nous développons ainsi que des environnements hardware et software. Là encore, Linux nous offre une garantie de pérennité et de contrôle de l'environnement.
Pour nous, les logiciels et l'OS sont intimement liés par la notion de qualité de service. La stabilité de l'OS est une condition sine qua non de disponibilité du service.
Le fait de faire fonctionner nos logiciels dans un environnement connu et parfaitement maîtrisé est donc une nécessité.
Les éventuels problèmes, qu'ils soient liés aux logiciels ou à l'OS peuvent être rapidement repérés. Linux offre l'avantage d'être suffisamment maîtrisable pour pouvoir rapidement réparer nous-mêmes les éventuels problèmes de l'OS. Heureusement, ce cas est rare et les problèmes de Linux sont très souvent corrigés avant même que nous les ayons perçus. Mais si, pour une raison quelconque, nous ne devions compter que sur nous, cela reste possible.
La polyvalence de Linux permet de capitaliser autour d'un unique OS.
Nous avons découvert peu à peu l'ampleur de nos besoins et ceux-ci continuent de grandir de jour en jour. Un DNS par ici, un firewall par là, quelques serveurs FTP, un peu plus de serveurs Web aussi et un proxy pour bien répartir le tout. A chaque besoin sa réponse : Linux. Les nombreux logiciels que nous avons utilisés n'ont pas tous été développés sur ou pour Linux (personne n'est parfait), mais là encore, ils se sont révélés fonctionner parfaitement bien et avec une grande fiabilité. La portabilité sous Linux a donc été un atout majeur à notre progrès. Certains serveurs n'ont jamais été rebootés et continuent à ce jour de remplir leurs fonctions.
Récemment, nous nous sommes penchés sur la mise en service d'un VPN, pour lequel il existe de nombreuses solutions hardware ou software coûteuses. Nous avons pourtant trouvé toute satisfaction dans des outils VPN gratuits sans bourse délier. Il existe bien entendu des solutions logicielles dans d'autres environnements, mais obtenir à la fois des logiciels performants, professionnels et gratuits reste en majeure partie un monopole du monde Linux.
Côté réseau, le noyau Linux dispose aussi en standard de très nombreuses fonctionnalités telles que le firewalling (Ipchains), le masquerading, le tuneling. c'est pratique !
C'est pour ces raisons que l'ensemble de nos serveurs reste à ce jour à plus de 95% Linux, enfin tant que nous n'aurons pas trouvé un domaine où Linux se révèle vraiment incompétent.
Il est aussi important de noter que cette polyvalence de Linux nous a permis de développer nos compétences autour d'un unique OS. C'est une approche considérablement plus productive que d'avoir à gérer un réseau hétérogène.
Le coût, ça compte
Evidemment, c'est aussi un avantage de ne pas payer de licence, non seulement pour l'OS mais aussi pour tous les outils qui sont disponibles sous Linux. Au niveau hardware, de nombreux constructeurs prestigieux proposent aussi du matériel compatible 100% Linux avec des cartes RAID, alimentations redondantes hot plug. pour des coûts très raisonnables. C'est un facteur que nous avons pris en compte lors du développement du moteur de recherche qui fonctionne sur plusieurs dizaines de PC.
Il est vrai que les autres OS ne sont pas toujours de prix exorbitant, mais en cumulant les logiciels, la gestion des licences et vu le nombre de machines qui ne cesse de croître, l'addition devient rapidement salée.
Le tuning, c'est pas seulement pour les Jacky's
Linux, dans sa version standard, est configuré pour répondre à la majorité des besoins de ses utilisateurs. Lorsque l'on désire dédier un serveur à une tâche bien particulière, il existe de nombreux moyens d'optimiser ses performances. A ce jeu, Linux est un expert et il permet de paramétrer très finement bon nombre de ses particularités noyau, réseau, système de fichier, services. Pour aller plus loin, il est possible de réécrire certains modules, son propre système de fichier par exemple, ce qui nous a fait gagner un facteur 2 sur les accès disques du moteur de recherche. C'est la visibilité précise sur le travail des développeurs de Linux et les logiciels libres ainsi que leurs commentaires qui nous a permis de customiser à la perfection nos serveurs.
Notre savoir est décuplé par la popularité de Linux
Un point intéressant est aussi de remarquer comment nous avons réussi à développer aussi vite de nouveaux logiciels Internet. L'acquisition des nombreuses technologies que nous pratiquons a été considérablement facilitée par l'existence de pages Web, forums et communautés (Linux Users Groups) qui traitent en profondeur des nombreuses exploitations de Linux, avec une grande réactivité. Chacun des problèmes que nous avons rencontrés était la plupart du temps abondamment traité par des experts, ce qui nous a permis de nous faire rapidement une bonne idée des différentes technologies, de les comparer et de mettre enoeuvre prestement celle qui nous convenait le mieux.
Par ailleurs, il est amusant de voir à quel rythme les adaptations logicielles que nous réalisons, ou dont nous ressentons le besoin, sont très rapidement intégrées dans les nouvelles versions des logiciels ou du noyau de Linux.
A ce rythme, on va finir par s'ennuyer à installer des logiciels standards qui savent déjà tout faire.
La solidarité Linux ou comment se faire des amis
Au cours du développement de Voilà, nous avons fréquemment été en relation avec des partenaires qui utilisent aussi Linux. Il est alors assez agréable de remarquer l'enthousiasme qui émane de ces collaborations. Il s'installe alors souvent entre les différents collaborateurs un rapport presque amical lorsqu'ils partagent leurs expériences fructueuses ainsi que leurs déboires. Un point commun tacite, une passion commune nous offre des rapports privilégiés avec ces derniers.
Ici on parle le C++, C, Perl et PHP
L'ensemble de Voila est développé en GNU C++/C pour les grosses parties logicielles et Perl / PHP pour les services moins gourmands en performance. La base de donnée la plus utilisée est Mysql. Pour le moteur de recherche, c'est fait main pour des raisons de performance.
Une fois un bon environnement de développement défini, permettant à chaque corps de métier de trouver ses marques, le travail est particulièrement efficace.
Cet environnement a pour fondations :
- une organisation des répertoires de travail méticuleuse (fichiers partagés, communs, groupes de services.) ;
- un paramétrage des serveurs Web optimal (modules) ;
- des librairies communes et réutilisables ;
- des outils de gestion de cet environnement (tests, passage en pré-production, passage en production).
Nous exploitons les particularités des langages, du serveur Web et de l'environnement au maximum.
- Perl pour le traitement d'informations et les CGI complexes ;
- PHP pour les pages dynamiques simples ;
- MySQL, DBM et disque dur pour le stockage d'informations
des fichiers de configuration globaux.
Côté réseau, c'est Linux, Apache, Squid
L'accès à nos serveurs Web est géré par des firewalls Linux (IpChains), une balance de charge / proxy squid et des serveurs Web Apache. L'ensemble de ces outils nous donne une entière satisfaction.
Les lacunes de Linux
Le deux domaines où nous reconnaissons certaines lacunes à Linux sont la supervision globale d'un réseau de serveurs et le backup.
Actuellement, nous utilisons plusieurs outils : Big Brother, MRTG et de nombreux scripts faits maison. Nous déplorons l'absence d'outils plus performants, notamment pour l'exploitation des données SNMP (Simple Network Management Protocol) et fichiers log, aussi bien au niveau des serveurs que des éléments de réseau. Ces outils existent dans le marché mais sont coûteux et ne fonctionnement pas sous Linux à ma connaissance.
Côté sauvegarde, nous utilisons Amanda qui comporte des limitations gênantes (backup d'un ensemble de données ne pouvant dépasser 2 Go, ce qui impose une configuration complexe, manque de fiabilité et de reporting).
Quelques trucs & astuces
Accélérer les temps de réponse d'un serveur Web et gérer la répartition de charge
Squid permet de gérer ces deux problématiques de façon très souple. En se positionnant entre les scripts CGI et l'utilisateur final, il assure la retransmission des données produites par les CGI, même à petite vitesse, jusqu'à l'utilisateur : c'est une solution classique adoptée dans de nombreux cas. Il libère ainsi les scripts CGI plus vite et améliore les performances des serveurs. Etant donné qu'il sous-traite la répartition de charge à un script Perl, il est possible de paramétrer très finement ce comportement, de le lier à la charge des serveurs et d'éviter un serveur défaillant.
Faire des scripts CGI en Perl rapides comme l'éclair
Avec le module Perl, le serveur Web (Apache) est capable d'exécuter des scripts très rapidement. Il faut toutefois dédier ce serveur uniquement aux scripts et faire travailler un autre serveur Web pour la livraison des pages HTML et des images. En effet, un serveur agrémenté de mod_perl est très rapide mais aussi très gourmand en mémoire.
Et si c'était à refaire
Sans hésitation nous le referions ! Avec le recul, Linux continue à s'imposer pour nos besoins et de plus en plus de logiciels sont disponibles dans cet environnement. Les limites telles que la gestion de multi-processeurs disparaissent, les performances sont toujours au rendez-vous, la question ne se pose donc même plus.
Bien sûr, les limitations que nous avons rapidement citées nous handicapent, mais nous sommes persuadés qu'elles se lèveront les unes après les autres.
Pour conclure
Le succès de Voila et la qualité de ses équipes techniques sont très liés à l'essor de Linux. Nous faisons partie de la génération Linux, nés et élevés aux céréales Linux.
Mais pour en tirer le meilleur parti, il est nécessaire de disposer de solides compétences et de ne pas avoir peur de mettre les mains dans le moteur.
Il est aussi important de suivre de près l'effervescence de la communauté Linux pour être au courant des améliorations, des implications de tel ou tel changement du noyau ou d'un logiciel. Tout n'est pas forcément simple, mais le résultat en vaut la chandelle.
Linux est pour nous plus qu'une technologie, c'est une véritable philosophie.
...le fil rouge sur le fil rouge, le fil vert sur le fil vert....
Christophe Ruelle (CTO ECHO)
Rémi Poulet (CTO Voila)