openlsd250-smallOpenLSD
 
High Available HTTP Compression
Accueil OpenLSD and Co Outils BBMAP TriDenT CoLUMBO Divers CV

High Available HTTP Compression

 

Afin de répondre aux contraintes de réseau de la Direction pour laquelle je travaillais, j’ai mis au point un système de compression de réseau pour service web entièrement autonome et performant. Il s’appuie sur différents composants :

  • Un Blade Center disposant a minima de 4 lames (2 lames pour la fonction de répartition et de haute disponibilité et 2 lames pour les fonctions de compression et de cache – optionnel -). Il est possible néanmoins de ne fonctionner qu’avec 2 lames.

  • Apache 2.2.X pour gérer la compression à la volée

  • Apache 2.0.X pour gérer les fonctions de cache (tant que la version 2.2 n’est pas totalement stabilisée)

  • HAProxy et Keepalived pour les fonctions de répartition et de haute disponibilité.

L’usage du Blade Center n’est pas une obligation, il est en effet tout à fait possible de réaliser cette brique avec seulement 2 petits serveurs Intel.

 

Les gains sont les suivants :

  • La bande passante est globalement divisée par deux (compression jusqu’à 90% des éléments textes, les images et autres PDF n’étant pas compressés).

  • Le cache soulage les serveurs web applicatifs en ne redemandant pas le contenu statique. Pour le moment, ce cache est limité à des sous-arborescences (fonctions d’Apache 2). Il serait possible de remplacer cette brique par une autre (tel que Squid).

  • Le temps ressenti par les utilisateurs est de 1 contre 10, c’est-à-dire que sans cette solution, certains de nos utilisateurs (faible débit) avaient une impression de l’ordre de 10 secondes pour voir la page web applicative, contre 1 seconde avec ce dispositif. Ce temps ressenti fut confirmé dans les logs d’accès à nos applications.

  • La haute disponibilité du service est assurée par la présence d’au moins 2 serveurs Intel assurant la compression à la volée. La répartition entre ces deux serveurs s’effectue via un service équivalent à un Altéon (boîtier Nortel de niveau 7). Cette répartition est assurée via le logiciel libre HAProxy.

  • La haute disponibilité de la répartition est assurée via Keeaplived. Il est possible de placer le service Keepalived et HAProxy sur les serveurs hébergeant les services de compression afin de diminuer le nombre de serveurs Intel, même si cela apporte plus de souplesse d’administration en les séparant.

Il est possible d’utiliser un seul composant physique pour gérer de multiples composants applicatifs (nous avions 4 services web distincts qui bénéficiaient du même composant technique de compression à la volée).

 

Le coût de cette solution se limite au matériel (4 serveurs Intel dans un Blade Center pour notre cas soit environ 40 000 euros contre environ 400 000 euros pour 2 boîtiers de type Netscaler qui présentent à la fois la haute disponibilité, la répartition de charge et la compression à la volée).

 

Nous n’avons pas eu de problème de performances et ce malgré les quelques 140 000 utilisateurs potentiels et les quelques 10 millions de pages par jour.