Question

On me demande souvent d'effectuer le dimensionnement et la planification des capacités pour nos clients. Lorsque nos clients achètent nos produits (essentiellement des applications Web J2EE), ils demandent souvent ce que le matériel dont ils auront besoin pour exécuter ces produits. Nos recommandations se traduisent souvent par des acquisitions de matériel à coût élevé.

Jusqu'à présent, les meilleurs heuristiques que j'ai développé est de comparer les projections d'utilisation (nombre d'utilisateurs enregistrés et simultanés que l'application devrait assister) avec les données recueillies à nos installations existantes. Quelque chose comme:. Si l'installation A assiste 100 utilisateurs simultanés avec du matériel X, puis l'installation B aura besoin 2 * X matériel pour assister à 200 utilisateurs simultanés

Cette approche, cependant, a un certain nombre de problèmes. Les clients utilisent souvent différentes plates-formes matérielles et logicielles. L'ensemble des produits qu'ils achètent chez nous est généralement jamais les mêmes et généralement parties d'application sont construites sur commande pour le client spécifique. Mettre en compte que les versions de logiciels changent, etc., et il y a tellement de paramètres qui peuvent rendre la tâche de calibrage très difficile.

J'ai étudié quelques livres sur le sujet et certains proposent d'utiliser des modèles mathématiques complexes. Le nombre de paramètres de ces approches nécessitent en entrée (par exemple la classification détaillée des fonctionnalités de l'application) me fait penser ce sont guère utiles. Le matériel est généralement commandé avant même les exigences de base sont définies pour ne pas mentionner que ceux-ci varient au cours du développement des applications et du cycle de vie. Alors, comment allez-vous sur le dimensionnement et la planification des capacités? Des conseils et comment-tos apprécié.

Était-ce utile?

La solution

Si le matériel doit être commandé avant la reqs de base sont définies, bien, sur le mieux que vous pouvez faire est de ballpark la capacité en regardant votre base installée pour un ensemble similaire de projets (comme vous le faites maintenant). Gardez une trace de votre expérience clients existants dans les besoins de mise à l'échelle et de la capacité à mesure qu'ils grandissent leurs installations, et si vous avez une base assez grand, vous pouvez probablement faire la courbe brute de montage en regroupant des projets similaires avec du matériel similaire et en regardant les besoins de capacité. Regardez comment les besoins actuels clients des capacités changement au cours de la croissance et des points de données supplémentaires.

Idéalement, l'achat initial HW / SW est pour une installation pilote, et vous la configuration de référence pilote une fois qu'il est et les spécifications de la réunion. Utilisez ces résultats aux besoins des projets de capacité pour le passage de pilote à la production. Bien sûr, cela exige du temps dans le calendrier pilote à la production de comparer l'application puis commander et prendre livraison de l'équipement. Mais il donnera une estimation des capacités plus précis que de le faire tout avance.

Autres conseils

Il n'y a pas de formule facile ou mathématique pour prédire l'échelle dans la description que vous avez donné, si vous (ou votre entreprise) êtes sérieux à ce sujet alors la meilleure façon est de construire un environnement de test de performance et d'évolutivité où vous pouvez facilement configurer et à la déchirure bas différentes configurations de client et d'envoyer la charge à eux de voir comment ils vont faire. Parce que vous construisez des composants personnalisés, un index composant manquant ou mal écrit peut tout gâcher, afin d'avoir un environnement comme celui-ci est là que vous pouvez repasser ces choses avant de donner au client. Une fois que vous avez ce type d'environnement, vous pouvez ajouter de la mémoire et cpu aux serveurs d'applications et bases de données pour voir comment vos échelles d'application.

Je suggère un environnement VM où ils peuvent facilement ajouter cpu et mémoire en fonction des besoins de l'application, associée à des tests de charge externe réaliste / échelle en utilisant un service comme WatchMouse ou browsermob.

Si l'application des échelles horizontalement de manière gracefull, une première estimation approximative est ok comme point de départ. Ajout ou suppression de boîtes supplémentaires si nécessaire devrait être facile une fois que l'application fonctionne en production.

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