Croissance et économie d’échelle

croissance-serveurLa mise en place d’un service web reste un processus incrémental et la forte montée en charge est parfois incertaine. En effet les certitudes et les tests sur un échantillon de données ne sont pas forcément valables quand les volumétries sont multipliées par 10, 100 ou 1000.

Au delà des problèmes techniques, disposer d’une architecture solide est un véritable avantage concurrentiel. Car les coûts de croissance peuvent exploser si le design de base n’a pas été pensé correctement.

Dessiner les plans et les protocoles de mise à jour des informations demandent, dès la phase de conception, de se projeter vers des architectures distribuées. Le cas des sites web, de type média est aujourd’hui bien connu et il existe un certain nombre de techniques qui permettent de gérer la croissance de manière quasi linéaire.

Mais dans le cas des nouveaux applicatifs web les choses sont différentes car il ne s’agit pas simplement d’afficher une page web. Il s’agit de rendre un service, de manière immédiate et cela indépendamment de la charge de ce service et du nombre d’utilisateurs du service.

Le partitionnement des tâches et des services est ici indispensable. Car il permettra de calculer le coefficient de rendement de votre architecture.

A ce titre je vous conseille d’étudier la loi de Amdahl. Elle permet de prévoir le gain obtenu par l’ajout de ressource dans un système. Elle nous montre aussi que le design de l’application est LE composant le plus important.

Prenons un exemple :

- Premier cas, une application hautement distribuable. Dans ce cas l’ajout d’un nœud (composant ou serveur) est rentable à 100%. Dans ce cas idéal, le coût de la croissance est directement proportionnel au nombre d’utilisateurs du service (courbe en bleu).

- Dans le deuxième cas, l’application possède des points bloquants et des goulots d’étranglements obligatoires qui limitent la distribution des traitements (seulement 10% des ressources sont distribuables, en rose). Les coûts sont exponentiels.

cout-croissance

Le résultat est simple, si 90% de votre traitement n’est pas distribuable, pour multiplier par 10 le nombre d’utilisateurs vous devrez multiplier par 100 vos ressources !!! C’est quasiment impossible, le service va s’arrêter et le projet avec…

Donc si vous souhaitez mettre en place un service et en connaitre les coûts de fonctionnement prévisionnels n’oubliez pas d’auditer votre architecture pour savoir si elle tiendra la charge le moment venu.

Comme d’habitude, si vous avez besoin d’informations sur ces sujets n’hésitez pas à me contacter. Nous pourrons analyser votre problématique ensemble.

Références :

Sur le même thème :

One Response to “Croissance et économie d’échelle”

  1. [...] Voici donc les quelques points importants à mettre en oeuvre pour construire une architecture capable de monter en charge et en nombre d’utilisateur sans être obligé de consommer vos ressources de manière exponentielle. [...]

Leave a Reply