Planification de l’évolutivité de bout en bout avec Appian

Lorsqu’il est question d’évolutivité et de performance, n’hésitez pas à défier vos fournisseurs. Il est possible qu’ils ne vous disent pas toute la vérité.

Introduction

Dans un contexte logiciel, que signifie l’évolutivité ? En apparence simple, cette question a souffert de la désinformation, d’une mauvaise utilisation et de stratégies marketing floues, ce qui a créé la confusion autour d’un sujet d’une importance capitale. J’aimerais contribuer à dissiper une partie de cette confusion en analysant l’évolutivité de manière réfléchie.

Ce qu’est et n’est pas l’évolutivité

Il faut en premier lieu comprendre ce que nous voulons dire lorsque nous qualifions un logiciel d’évolutif.

Ce qu’est l’évolutivité

Les définitions de l’évolutivité sont très variables. Par exemple, la page anglaise de Wikipédia indique que « L’évolutivité est la capacité d’un système à gérer un volume de travail croissant en ajoutant des ressources au système ». Gartner définit l’évolutivité comme « [l]a mesure de la capacité d’un système à augmenter ou à diminuer ses performances et ses coûts en fonction de l’évolution des exigences en matière de traitement des applications et du système ». Et il en existe beaucoup d’autres.

Même s’il y a de nombreuses façons de définir l’évolutivité, certains éléments sont communs à toutes les définitions. Par exemple, l’évolutivité se concentre sur deux aspects d’un système : le matériel et le logiciel.

Toute plate-forme possède des limites de performances différentes en fonction du matériel sur lequel elle est exécutée. Et toute machine ou tout réseau de machines fonctionne avec une quantité limitée de CPU, de mémoire RAM, d’espace disque, etc. Pour le matériel, l’évolutivité correspond à une mesure du nombre de ressources dont vous disposez.

Avec le logiciel, l’évolutivité concerne les bibliothèques et le code nécessaires pour mener à bien ses tâches. Chaque logiciel nécessite une certaine quantité de ressources serveur pour fonctionner correctement. L’évolutivité logicielle correspond à une mesure des coûts d’exécution.

De plus, l’évolutivité dépend de la manière dont un système répond aux exigences actuelles et futures. Plusieurs scénarios se rapportent à cette caractéristique, mais de nombreuses organisations veulent s’assurer que ce qu’elles construisent aujourd’hui continuera à fonctionner en respectant les exigences de demain.

Ce que n’est pas l’évolutivité

En quelques mots, tout ce qui n’est pas lié à la capacité d’un système à traiter des demandes en fonction d’une quantité définie de ressources n’a pas trait à l’évolutivité. En cherchant sur Internet, j’ai trouvé certaines des informations erronées concernant l’évolutivité. Les voici :

  • L’évolutivité comprend la sécurité. Même si la sécurité est absolument essentielle à toute solution, vous devez respecter des politiques et des pratiques de sécurité appropriées, indépendamment du reste de la mise en œuvre. Par conséquent, vous pouvez ignorer les considérations de sécurité pour tout calcul concernant l’évolutivité.
  • Une haute disponibilité influe sur l’évolutivité. Cela ne pourrait pas être plus éloigné de la vérité. Une haute disponibilité reflète la fiabilité de votre plate-forme, non la façon dont elle exécute des charges de travail particulières.
  • La mise à l’échelle automatique entraîne l’évolutivité. Cette déclaration est problématique. Le fait de pouvoir exécuter des mises à l’échelle automatiques est bénéfique, mais cela ne créé pas forcément l’efficacité. En réalité, une architecture dotée de la mise à l’échelle automatique peut fonctionner sans que vous ayez à se soucier de son efficacité.
  • L’évolutivité concerne les fonctionnalités de votre plate-forme. Vous ne devez évaluer que les caractéristiques de votre plate-forme par rapport aux autres, ce qui signifie que vous ne devez pas prendre en compte les fonctionnalités de cette plate-forme dans vos calculs d’évolutivité. Même chaque ensemble de fonctionnalités a une influence sur les performances, il n’en a pas sur les performances globales du système.

Chaque fois que vous entendez ce genre de discours, mettez en doute la parole du fournisseur concerné. Recherchez des fournisseurs disposés à vous aider à comprendre l’évolution qui attend votre propre solution.

Considérations relatives à la définition de l’évolutivité

Lors de la définition de l’évolutivité d’une plate-forme logicielle, vous devez prendre en compte quatre variables :

  • Le nombre d’utilisateurs simultanés : Combien d’utilisateurs auront besoin d’accéder au système en même temps ? Assurez-vous d’inclure les transactions demandées par les comptes de service ou d’autres moyens automatisés.
  • Le nombre moyen de demandes par utilisateur : cela inclut des éléments tels que le nombre d’appels vers un service particulier ou la communication interne entre les services de la plate-forme.
  • La taille moyenne de chaque demande : Quelle est l’importance de la demande en question ? Les demandes sont rarement similaires. Une estimation incorrecte de la taille réelle des besoins peut fausser considérablement les estimations d’évolutivité.
  • La taille de la machine sur laquelle la plate-forme est exécutée : les configurations matérielles différentes ne fonctionnent pas de la même façon. Testez un système qui ressemble de près à celui que vous utiliserez. Réfléchissez au nombre de processeurs, au volume de mémoire RAM et à l’espace disque. Il est important de choisir la bonne taille, qu’il s’agisse de redimensionner vers le haut ou vers le bas.

Ces variables vous permettent d’évaluer l’évolutivité d’un système. Supposons par exemple que 10 utilisateurs simultanés exécutent 100 opérations par jour et que chaque opération représente en moyenne 1 Mo de données. Supposons également que cette quantité de service consomme 10 % des ressources matérielles. Si j’ajoute 10 utilisateurs supplémentaires, la consommation de ressources système augmente-t-elle uniquement de 10 % ? Si oui, cette plate-forme est évolutive de manière linéaire.

Les logiciels peuvent aller au-delà de l’évolutivité linéaire grâce à la parallélisation, mais nous n’aborderons pas ce sujet aujourd’hui. Il est également important de noter que ce n’est pas parce qu’une solution est linéaire à un moment donné qu’elle le sera toujours. Il y a une limite à la linéarité, et lorsque cette limite est atteinte, l’ajout de ressources supplémentaires ne produit plus qu’un rendement moindre.

Tout est une question de coûts

La raison pour laquelle nous vérifions l’évolutivité d’une plate-forme est simple : l’argent.  Quelle quantité de travail pouvez-vous accomplir le plus efficacement possible ? Même si une solution offre de bonnes performances, elle doit le faire de façon rentable.

J’ai récemment examiné les chiffres d’évolutivité publiés par un autre fournisseur. Ce fournisseur affichait des chiffres vraiment impressionnants, mais il effectuait ses tests sur un ordinateur central d’une valeur de 26 millions de dollars. Réfléchissez à ceci : vous pouvez obtenir une solution Cloud haut de gamme sur Amazon pour environ 4,50 dollars/heure, et vous devriez exploiter celle-ci pendant 660 ans pour que l’ordinateur central de 26 millions de dollars devienne rentable en comparaison. Pour vos besoins, il importe peu que le système du fournisseur puisse héberger 10 000 ou 100 000 utilisateurs. Cela reste pour vous une mauvaise affaire.

Un autre « piège » vous menace lorsque vous travaillez avec des fournisseurs qui créent des problèmes d’évolutivité fictifs. Ils présentent cela sous forme de frais par transaction ou de frais par unité de solutions. Les options avec ce type de tarification peuvent vous paraître utiles pour commencer, mais en tant que client, vous serez « contraint » de prendre de mauvaises décisions de conception.

Imaginons que vous soyez facturé pour tout appel d’API. N’essayeriez-vous pas d’augmenter la taille de la charge utile de chaque appel pour optimiser votre efficacité ? D’accord, mais que se passerait-il si votre cas d’usage nécessitait de nombreux appels sur une longue période ? Vous devez maintenant décider si vous souhaitez créer une solution trop lourde, car elle doit contenir une seule charge utile volumineuse, ou payer les frais supplémentaires nécessaires à la mise en place de votre solution.

Le scénario est similaire pour les frais basés sur les objets. Si vous devez payer pour chaque objet, vous allez essayer de condenser votre conception en un minimum d’étapes. Cela revient à créer un besoin artificiel de « sur-concevoir » les éléments de votre solution, ce qui peut vous empêcher de réaliser des performances optimales.

Parmi les variables décrites ci-dessus, la taille des appels et le nombre de transactions constituent les meilleures options pour brouiller les résultats liés aux performances. Les fournisseurs sont malins. Ils savent qu’en facturant des frais dans ces domaines, ils peuvent efficacement dissimuler les coûts réels d’une solution.

Comment résoudre ce problème

Relions tous ces éléments.  En considérant que les informations ci-dessus sont vraies, voici quelques bonnes pratiques plutôt universelles pour vous aider à évaluer l’évolutivité d’une plate-forme.

Établir une base de référence

Il est essentiel de savoir par où commencer. Pour tout cas d’usage, vous devez connaître le nombre d’utilisateurs et ce que vous avez à faire. À partir de ces informations, vous pouvez faire une estimation des ressources dont chaque utilisateur a besoin. Pour finir, choisissez une configuration matérielle qui, selon vous, convient à l’exécution de cette solution.

Tester, encore et toujours

Testez votre base de référence. Quels résultats permet-elle d’obtenir ? Une fois ce premier test réalisé, modifiez vos variables et recommencez les tests. Comment la solution fonctionne-t-elle avec le double d’utilisateurs ? Avec 10 fois plus d’utilisateurs ? 50 fois plus ? Regardez ce qu’il se passe lorsque vous introduisez une nouvelle opération à tout cela, en augmentant le nombre d’appels et/ou la taille d’un appel. À partir de quel moment la solution matérielle que vous utilisez cesse-t-elle de fonctionner correctement ? Si vous modifiez la taille de votre solution matérielle, que ce soit en l’augmentant ou en la diminuant, que se passe-t-il ?

S’informer sur les coûts cachés

Gardez à l’esprit que l’évolutivité ne se limite pas aux résultats des tests. Un test peut vous confirmer qu’une solution est évolutive, mais pas vous indiquer la rentabilité de celle-ci. Restez attentif aux coûts cachés, tels que les frais de transaction ou les frais supplémentaires par objet ou par unité. Le système est peut-être en mesure de gérer cette charge de travail, mais il peut ne pas en aller de même pour votre chéquier.

Qui s’occupe de garantir l’évolutivité d’une solution ?

Je suis sûr que vous n’avez encore jamais entendu cela de la bouche d’un fournisseur de logiciels : l’évolutivité, c’est votre problème. Que vous créiez vous-même une solution ou que vous payiez un tiers pour ce travail, les conséquences de la conception globale ne concernent que vous.

Toute plate-forme logicielle peut rencontrer des problèmes d’évolutivité. Inversement, si vous disposez d’un budget matériel illimité, vous êtes à même de faire fonctionner n’importe laquelle de ces solutions.

Si un fournisseur vous dit que sa solution permet l’évolutivité et que vous n’avez pas à vous inquiéter, mettez sa parole en doute. Je pense qu’Appian possède l’une des plates-formes les plus performantes du marché. Le cadre sur lequel sont écrits nos services est plus performant que ceux de nos concurrents. De plus, des évaluations Appian peuvent être effectuées en parallèle, ce que d’autres fournisseurs ne prennent pas en charge. Ces avantages sont considérables, mais je ne veux pas vous induire en erreur et vous laisser penser que ce sont les seuls que nous offrons. Au-delà de la puissance back-end de notre plate-forme, nous nous engageons à travailler avec vous pour vous permettre de créer les applications les plus évolutives possible.

Appian peut vous aider

Appian souhaite vous aider à créer la solution la plus évolutive et la plus rentable qui soit. Nous pouvons vous dire que nous sommes les meilleurs, mais nous préférerions vous le prouver.

Si vous souhaitez obtenir des chiffres précis sur les performances d’Appian, consultez notre livre blanc sur l’évolutivité. Vous y découvrirez les excellentes performances de notre plate-forme sur trois instances matérielles différentes.

Une fois que vous aurez lu ce livre blanc, n’hésitez pas à contacter notre équipe de vente. Je pense que vous serez surpris de voir à quel point nous souhaitons gagner votre confiance et devenir un fournisseur de choix pour votre entreprise. Nous sommes plus que disposés à vous faire découvrir notre plate-forme et à vous aider à trouver la manière la plus efficace d’utiliser notre produit.

La mise à l’échelle d’applications sur des systèmes critiques n’est pas une tâche facile. Racontez-nous votre histoire, et nous vous aiderons à comprendre pleinement comment évoluer efficacement avec Appian.

S'ABONNER À APPIAN WEEKLY!