Blogue

La « scalabilité » ou l’art de croître sans peine

Cogeco Peer 1

décembre 17, 2014

Share:    

La façon dont est garantie une réactivité immédiate lors d’un afflux de sollicitations sur un site web commerçant ou ludique est primordiale au moment du choix d’un hébergeur-infogérant.

La « scalability » ou scalabilité en « franglais » exprime la capacité d’une infrastructure matérielle et logicielle à s’adapter rapidement voir instantanément à une augmentation de la demande sans dégradation des fonctionnalités et des performances initiales. Cette capacité à absorber les montées en charge des requêtes des internautes, y compris celles qui ne sont pas planifiées, se prépare à l’avance et doit faire l’objet d’une discussion approfondie lors de la négociation d’un contrat d’hébergement associé à une prestation d’infogérance.

Cette possibilité d’accompagner une augmentation rapide des sollicitations provoquées, par exemple, par le passage d’une annonce publicitaire à la télévision (événement planifié mais temporaire) ou un fait d’actualité (événement non planifié dont la durée est inconnue) fait généralement référence à la capacité d’un système à accroître sa capacité de calcul sous une charge accrue par adjonction de ressources (généralement du matériel). Le problème doit être bien anticipé et étudié à tous les niveaux de l’infrastructure car une brusque augmentation de trafic non assouvie par des réponses appropriées provoquera inéluctablement une latence importante, un découragement des usagers, une impossibilité technique de servir tous les clients et par conséquent une baisse de rentabilité.

 

L’évolutivité côté matériel

La scalabilité d’un système est donc dépendante du potentiel matériel disponible mais pas seulement. Les applications de type base de données, moniteurs de transactions ainsi que les systèmes d’exploitation doivent également suivre le mouvement, notamment pour ce qui concerne l’OS, intermédiaire obligé entre les applications et le matériel. Ce dernier doit non seulement être dimensionné pour soutenir le débit tel qu’il a été estimé au départ mais il doit également être capable d’évoluer rapidement par adjonction de nouveaux composants ou de serveurs complets afin de faire face à une demande accrue. C’est le cas en particulier des processeurs, composant le plus onéreux d’un serveur informatique, dont le nombre est souvent limité soit par l’architecture des machines ou dont les performances sont bridées par la répartition de charge sur plusieurs machines.

Plusieurs approches sont distinguées en matière d’évolutivité matérielle : la démarche horizontale qui consiste à ajouter des ordinateurs pour parer à la hausse d’accès à un service, avec une méthode courante consistant à répartir la charge (load balancing) sur une grappe de serveurs (cluster) ; la démarche verticale consiste au contraire à doter quelques puissantes machines d’une grande quantité de mémoire vive, de processeurs, de cartes mères et de disques durs ; enfin l’évolutivité architecturale consiste à dimensionner une application pour qu’elle puisse tourner sur plusieurs machines sans réécriture, avec un fonctionnement en mode client-serveur qui ajoute de la flexibilité.

 

L’évolutivité côté logiciel

Les performances et fonctionnalités d’un logiciel doivent correspondre aux attentes des utilisateurs. Dans le domaine des bases de données, les applications transactionnelles sont particulièrement concernées. Lorsque la performance se dégrade avec l’augmentation de la demande on peut tenter de corriger le problème en faisant des corrections par des mises au point ou des opérations d’optimisation. Si ces mesures sont inefficaces et que même le remplacement du matériel par des machines plus performantes n’y change rien, il faut remettre en cause l’architecture du système qui ne peut évoluer et donc se trouve considéré comme non extensible.

De nombreuses applications sont conçues pour fonctionner en communication synchrone, avec une partie client qui envoie les requêtes et une partie serveur qui répond dès qu’elle dispose du résultat. Ce mode est facile à mettre en œuvre mais génère de la latence tandis que le mode asynchrone permet d’effectuer des opérations durant l’attente et « multiplexe » le traitement des demandes ce qui le rend plus approprié pour les applications multi-tâches et les services Web notamment. Une prévisionnelle permettant d’anticiper une forte sollicitation sur des logiciels consiste à pré-réserver des ressources pour qu’elles deviennent disponibles en cas de besoin et permettent de « multiplexer » les demandes ce qui permet de raccourcir considérablement les délais de disponibilité. Ces dispositions sont dès lors intégrées dans le contrat d’hébergement/infogérance ce qui permet de parer à toute éventualité.


Contactez-nous

Vous aimeriez savoir comment tirer le maximum de votre infrastructure de données ? Contactez l’un de nos experts en solutions d’infrastructure dès aujourd’hui et découvrez ce qu’Aptum peut faire pour vous !

Obtenir un devis