ActivNetworks Ultimate Web Accelerators          Contact

Diviser pour mieux charger

Partitionner les applications

Imaginons une plateforme applicative, une application web composite. Comme toutes ces applications, elle comporte des parties statiques et des parties dynamiques. Entendons par cela du contenu qui n'est pas construit et stocké à l'avance mais qui au contraire est généré en temps réel par le serveur. Voici donc déjà une séparation simple de l'application : mettre d'un coté, c'est-à-dire sur un serveur, la partie statique et d'un autre côté la partie dynamique. Notons qu'il existe de nombreuses manières de générer du contenu dynamique : des servlets en Java, des scripts en PHP, ASP, Perl, etc., des programmes écrit en C et intégrés au moyen de l'interface CGI., etc.

On imagine sans peine que toutes ces implémentations très diverses nécessitent des systèmes différents ou du moins configurés, "tunés" différemment. Une bonne solution consiste effectivement à partitionner l'application, c'est-à-dire à installer chaque partie de l'application sur un serveur dédié avec un système adapté et configuré en fonction des composants applicatifs qu'il supporte.

Routage applicatif

Cela étant fait, il faut que la plateforme continue d'apparaître comme un seul serveur tout en distribuant les requêtes aux différents serveurs de la plateforme. La solution consiste à déployer un reverse proxy qui apparaît comme étant l'unique serveur et qui accueille toutes les requêtes. Ce reverse proxy répartit, route les requêtes vers les serveurs. Cette opération est appelée routage applicatif ou load-balancing by URL. Ces deux appellations sont légitimes : le reverse proxy répartit les requêtes en fonction de leur nature, ce qui est bien une forme de routage. D'autre part cette distribution a bien pour effet de répartir la charge sur les différents serveurs de la plateforme.

Le faire avec BoostEdge

Implémenter le partitionnement d'applications avec BoostEdge est extrêmement simple et peut être configuré en quelques minutes, entièrement à partir de l'interface graphique. Par exemple, pour diriger les requêtes vers le serveur qui supporte les scripts ASP, il faut d'abord créer un Query Handler, appelons le asp, la selection du Query Handler se fait sur le path de la requête, plus particulièrement sur l'extension .asp. On indique ensuite l'adresse ou le nom du serveur dédiés aux scripts ASP. Enfin on place ce handler en tête de la liste des handlers. On réitère ensuite cette opération pour les scripts PHP, puis pour servlets Java. Finalement un handler dit de "fond de panier"aiguille toutes les autres requêtes vers le serveur dédié aux composants statiques.

   

No plugin