Question

G'day,

Je lisais l'article Quantifier dans le livre « 97 choses que chaque Architecte logiciel devrait savoir »( aseptisée lien Amazon ) et il m'a fait demander comment à quantifier l'évolutivité.

J'ai conçu deux systèmes pour une société de radiodiffusion britannique majeure qui sont utilisés pour:

  1. détecter le pays d'origine pour les requêtes HTTP entrantes ou
  2. déterminer les formats vidéo adaptés à une géométrie de l'écran du téléphone portable et le type de connexion actuelle.

Les deux modèles ont été nécessaires pour fournir une évolutivité.

Mes modèles pour les systèmes sont évolutifs horizontalement derrière la mise en cache des couches d'équilibrage de charge qui sont utilisés pour traiter les demandes entrantes pour ces deux services et de les distribuer sur plusieurs serveurs qui fournissent en fait le service lui-même. Les premières augmentations de la capacité de service sont faites par l'ajout de serveurs derrière la couche d'équilibrage de charge, d'où le terme d'évolutivité horizontale.

Il y a une limite à l'évolutivité de cette architecture si la couche d'équilibrage de charge commence à avoir des difficultés à faire face au trafic de requête entrante.

Alors, est-il possible de quantifier l'évolutivité? Serait-il une estimation du nombre de serveurs supplémentaires, vous pouvez ajouter à l'échelle horizontalement la solution?

Était-ce utile?

La solution

Je pense qu'il est possible dans certains contextes - par exemple l'évolutivité d'une application Web pourrait être quantifiée en termes de nombre d'utilisateurs, le nombre de requêtes simultanées, moyenne et écart-type de temps de réponse, etc. Vous pouvez également obtenir en général numéros de bande passante et de stockage, les opérations par seconde, et le temps de récupération (pour la sauvegarde et DR).

Vous pouvez aussi donner souvent des numéros dans le domaine d'application - disons que le système prend en charge des commentaires, vous pouvez quantifier ce qui est de l'ordre de grandeur du nombre de commentaires qu'il doit être en mesure de stocker

.

Il est cependant utile de rappeler que tout ce que les choses peuvent être mesurés, et tout ce qui peut être mesuré questions. : -)

Autres conseils

Je pense que cela se résume à ce que l'évolutivité signifie dans un contexte donné et, par conséquent, la réponse serait il dépend .

Je l'ai vu l'évolutivité des besoins pour des choses qui n'existaient pas encore. Par exemple, un nouvel outil de demande de prêt qui spécifiquement appelé besoin de travailler sur l'iPhone et autres appareils mobiles à l'avenir.

J'ai aussi vu l'évolutivité utilisé pour décrire l'expansion potentielle de plus de centres de données et les serveurs Web dans différentes régions du monde pour améliorer les performances.

Les deux exemples ci-dessus peuvent être quantifiables s'il est une cible connue pour l'avenir. Mais l'évolutivité ne peut être quantifiable s'il n'y a vraiment pas de cible connue ou d'un plan qui en fait une cible en mouvement.

La mesure correcte de l'évolutivité (pas la plus simple ;-) est un ensemble de courbes définissant des ressources exigea (unités centrales, la mémoire, le stockage, la bande passante locale, ...), et de la performance (par exemple, la latence) délivrée, comme la charge pousse (par exemple en termes de requêtes par seconde, mais d'autres mesures telles que le débit de données demandé au total peut également convenir à certaines applications). Les décideurs généralement exiger que ces mesures précises, mais complexes se résumer à quelques chiffres clés (points spécifiques sur certains des plusieurs courbes), mais j'essaie toujours de négocier plus précis tenant contre plus simple à comprendre les mesures de ces indicateurs clés -)

Quand je pense à l'évolutivité je pense:

  • performances - la réactivité de l'application doit être pour une charge donnée
  • la taille d'une charge l'application peut se transformer en et à quel coût unitaire (si son serveur par les logiciels, support, etc.)
  • quelle vitesse vous pouvez faire évoluer l'application et la quantité de mémoire tampon que vous voulez sur l'utilisation de la période de pointe (on peut ajouter 50% de bande passante en 2-3 heures et nécessitent un tampon de 30% par rapport à l'utilisation maximale prévue)

La redondance est autre chose, mais devrait également être inclus et pris en compte.

« Le système doit évoluer pour maintenir une relation linéaire de X pour le coût / utilisateur ».

Voici une façon:

« supposer qu'un seul processeur 100 peut traiter des unités de travail par seconde ... »

De http://www.information-management.com/ questions / 19971101 / 972-1.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top