Comment bien dimensionner votre souscription Enterprise Plus ?
Nous faisons régulièrement évoluer nos offres pour essayer de les rendre plus lisibles et les adapter aux besoins de nos clients. Malgré cela, notre offre phare, Enterprise Plus continue de faire l’objet de questionnements de la part de nos clients qui, après nous avoir sélectionnés souhaitent s’assurer que les logiciels qu’ils s’apprêtent à commander ainsi que les services associés répondront convenablement à la fois à leurs contraintes de service et à leurs contraintes budgétaires.
Ceux qui sont habitués aux solutions SaaS peuvent supposer que le coût du service peut être calculé simplement en multipliant le nombre total d’utilisateurs par le prix unitaire. Mais cela fonctionne différemment pour la souscription eXo Enterprise Plus.
Comme on le voit souvent pour les solutions logicielles d’entreprise on premise, le prix est fonction du nombre de coeurs CPU utilisés dans l’infrastructure plutôt que du nombre d’utilisateurs.
Cette notion n’est pas toujours évidente pour les non-informaticiens, donc elle mérite que l’on s’y attarde.
A propos des coeurs CPU
Un coeur CPU est une caractéristique technique de la machine qui héberge votre instance eXo Platform. Chaque serveur est équipé de un ou plusieurs microprocesseurs (CPU), eux-même divisés en coeurs.
Le nombre de coeurs CPU mis en oeuvre dans un système serveur détermine largement la quantité de requêtes (on parle de charge) qu’il est capable de traiter simultanément.
Ainsi, à chaque fois que vous rechargez une page de votre intranet depuis votre navigateur, plusieurs requêtes sont envoyés au serveur eXo Platform qui doit les traiter avant de renvoyer à votre navigateur le contenu demandé pour qu’il l’affiche.
Plus il y a d’utilisateurs connectés au système en même temps, plus il a de requêtes à traiter. Si le système ne dispose pas de suffisamment de coeurs CPUs pour traiter toutes les requêtes qu’il reçoit, les pages sont plus lentes à charger car les requêtes sont mises en attentes jusqu’à ce qu’un coeur CPU soit libéré.
Par conséquent, pour avoir une bonne rapidité d’affichage pour tout le monde, il est nécessaire (mais pas suffisant!) que l’infrastructure du système dispose d’un nombre de coeurs CPU permettant de gérer la charge utilisateur.
Chaque serveur, ayant généralement un nombre limité de coeurs CPU, votre équipe d’infrastructure devra donc allouer suffisamment de serveurs pour que vos utilisateurs puissent jouir d’une qualité de service optimale.
Estimer la charge utilisateur
En résumé, plus vous aurez d’utilisateurs à servir et plus vos exigences de qualité de service seront élevées, plus il vous faudra de serveurs.
Par conséquent, un bon dimensionnement ne va pas seulement aider à obtenir une bonne performance, il va également déterminer votre budget récurrent pour opérer le service.
Quand on se lance avec un produit qu’on ne connaît pas, et qui va définir de nouveaux usages, comment connaître a priori la capacité serveur nécessaire ?
La charge effective que pourront supporter les serveurs dépend de nombreux facteurs techniques que peuvent généralement plus ou moins maîtriser les équipes d’infrastructure telles que la bande passante réseau ou la mémoire serveur allouée.
Mais en réalité le facteur le plus déterminant pour la charge, est aussi le moins facile à anticiper. Il s’agit des utilisateurs. Que vont-ils faire ? Vont-ils adopter massivement l’outil ? Ou bien progressivement ? Se serviront-ils de toutes les applications collaboratives mises à disposition ?
Disons le clairement, il est impossible de le prévoir avec précision. Il faut donc se livrer à un exercice estimatif de la charge à partir duquel, vous pourrez dériver le nombre de coeurs CPU nécessaire.
Nous proposons ci-dessous une méthode estimative simple se basant sur le nombre d’utilisateurs concurrents.
Analyser les statistiques d’un système existant
Si vous remplacez un système existant, comme un ancien intranet par exemple, vous disposez probablement d’un atout pour réaliser votre estimation de charge : des statistiques d’utilisation.
Qu’il s’agisse de statistiques générées par Google Analytics ou AWStats, vous devriez être capable de retrouver dans l’historique le nombre de visites moyennes par jour que l’ancien système recevait. Ramenez cette valeur à l’heure, cela vous donnera la charge normale que devra supporter le système à tout instant.
Vous remarquerez certainement des pics de connexion périodiques plus élevés que la moyenne. Ils surviennent généralement régulièrement à des plages horaires précises qui correspondent à un surcroît d’activité dans l’entreprise.
Souvent il s’agit des heures d’embauches du matin ou les retours de pause déjeuner. Mais il peut également s’agir de pics saisonniers dus à votre activité comme par exemple des campagnes de promotion.
En plus de la charge moyenne et des pics, intéressez-vous aux tendances. Est-ce que le nombre de visites est en hausse ou en baisse ? En suivant les courbes de tendances, pouvez-vous prédire la charge moyenne ou les pics dans 6 mois ou 1 an ?
En général, nous recommandons de conserver la valeur la plus haute et de la majorer de 15% pour estimer la charge attendue par votre nouveau système.
Cela vous donnera une marge suffisante pour notamment pour absorber le pic d’intérêt exceptionnel que génère immanquablement le lancement d’un nouveau service.
Donc par exemple, si votre système précédent devait gérer une charge normale de 800 utilisateurs avec des pics quotidiens à 3 000, prévoyez une charge normale de 920 utilisateurs (800 + 15%) et des pics à 3 450 (3 000 + 15%).
Estimer à partir du nombre d’utilisateurs
Lorsque vous n’avez pas de référence passée, vous pouvez partir du nombre total d’utilisateurs qui auront accès au service.
S’il s’agit de votre intranet, partez du nombre de salariés et prenez en compte les taux de rotation du travail.
S’il s’agit d’un extranet client, rapprochez-vous du service commercial pour connaître la taille de la base client et sa progression.
S’il s’agit d’un site à audience publique, rapprochez-vous de votre service marketing digital pour évaluer les cibles de trafic pour ce nouveau site.
Projetez-vous à un an et retenez ce chiffre. Il s’agira de votre base d’utilisateurs théorique.
A partir de là vous devrez extrapoler combien d’entre eux vont se connecter à tout moment.
Si vous n’en avez aucune idée, fiez vous à nous. D’après nos propres observations sur des usages collaboratifs en entreprise, à un instant donné, environ 10% du nombre total d’utilisateurs actifs est connecté simultanément. Lors des pics de charge, ce taux de connexions peut monter jusqu’à 60%.
Ainsi, si vous avez une base d’utilisateurs théorique de 10 000, comptez une charge de 1 000 utilisateurs concurrents comme votre minimum et 6 000 comme le maximum.
Calculer vos besoins en coeurs CPU pour la production
Equipé de votre estimation de charge utilisateurs, nous allons maintenant calculer sur le nombre de coeurs CPU nécessités par une instance eXo Platform.
Pour rendre les chose simples, nous avons établi un abaque qui vous donne une estimation du nombre de CPU-core pour une charge utilisateur sur un système eXo Platform.
Il se base sur un benchmark théorique que nous effectuons dans nos labs à chaque nouvelle version de eXo Platform. Concrètement, nous simulons une activité typique de collaboration de nombreux utilisateurs fictifs.
Différents scénarios d’usage classiques sont réalisés simultanément par ces utilisateurs virtuels. Ces scénarios exploitent l’ensemble des fonctionnalités collaboratives d’eXo Platform et se répartissent à 90% en opérations en lecture seule (ex. consulter un article) et 10% en opérations en écriture (ex. poster un message).
Lors de notre benchmark de performance, nous mesurons les temps de réponse de chaque requête. Ainsi, nous avons pu établir qu’un système équipé de 8 coeurs CPU permet d’obtenir des temps de réponse moyens raisonnables (inférieurs à la seconde), jusqu’à 1 000 utilisateurs. Au delà, les temps de réponse augmentent.
Attention, il faut bien être conscient que le chiffre de ce benchmark est une valeur brute théorique qui représente un usage linéaire des fonctionnalités principales d’eXo Platform. En pratique vos utilisateurs auront un usage bien plus erratique.
Mais en prenant quelques marges de sécurité raisonnables vous ne devriez pas trop sous-estimer (ni surestimer) vos besoins.
C’est pourquoi, nous recommandons de compter au minimum un coeur par tranche de 1 000 utilisateurs dans la base.
Donc reprenant l’exemple ci-dessus, 10 coeurs CPU seraient suffisants pour soutenir la charge normale générée par vos 10 000 utilisateurs. Mais pour des temps de réponse optimums lors des pics charge à 6 000 utilisateurs concurrents, il faudrait prévoir 60 coeurs CPU.
Avec cet abaque et en considérant vos propres exigences de performance, vous pouvez facilement partir de votre nombre d’utilisateurs et en déduire le nombre de coeurs CPU nécessaires pour votre système en production.
Compter les environnements supplémentaires
Vous connaissez désormais le nombre de coeurs nécessaires pour supporter la charge générée par vos utilisateurs sur le système de production. Mais cela ne suffira probablement pas pour faire toute votre planification budgétaire car d’autres environnements viendront certainement s’ajouter.
Tout d’abord, il faudra tenir compte de vos exigences de service. Par exemple, avez-vous besoin d’assurer un disponibilité 24/7 ? En général, cela nécessite de redonder (doubler) l’environnement de production.
De même, les plans de reprise d’activité en cas de catastrophe, exigent généralement qu’une infrastructure identique à celle de la production soit maintenue dans un lieu géographique séparé. Dans ces cas, il faudra doubler votre décompte de coeurs CPU.
De plus, la plupart des équipes en charge des systèmes de production ont en général besoin d’un environnement de pré-production pour valider le bon fonctionnement de tout nouveau déploiement comme par exemple une mise à jour ou un changement des paramètres système.
Si comme la plupart de nos clients Enterprise Plus, vous faites appel à une équipe de développement pour réaliser des personnalisations dans votre instance d’eXo Platform ou une intégration à votre système d’information, vous aurez certainement besoin d’autres environnements pour des activités comme la recette ou le développement.
Enfin certaines intégrations de vos applications métier au sein de la plateforme pourront elles-mêmes induire une charge supplémentaire qu’il faudra également considérer.
Les prix de nos souscriptions Enterprise Plus s’évaluent sur le nombre total de coeurs CPU mis en oeuvre. Nous ne faisons pas de distinction quant à leur utilisation.
Qu’il s’agisse d’un serveur de production ou non, qu’il soit actif ou en standby, vous êtes libre d’attribuer les coeurs de votre souscription comme vous le souhaitez.
Le seule exception est celle des postes des développeurs qui ne comptent toujours qu’un coeur par poste indépendamment du nombre réel contenu dans la machine.
Confirmer ses hypothèses
La méthode décrite dans cet article, devrait vous permettre simplement de dimensionner le nombre de coeurs CPU avant de passer commande. N’hésitez-pas à nous contacter pour des estimations plus fines.
Nous l’utilisons depuis de nombreuses années et nous savons qu’elle fonctionne bien. Elle permet de très rapidement avoir une idée de l’enveloppe budgétaire à prévoir.
En revanche, ne faites pas l’erreur de croire qu’elle vaut comme une assurance que la performance de votre système sera optimale.
Bien que s’appuyant sur des mesures réelles, il s’agit plus d’une méthode d’estimation budgétaire a priori, mais pas d’une méthode de prévision de la performance réelle de votre future système.
Elle ne prend en compte qu’un seul des nombreux paramètres qui influent sur la performance globale d’un système.
Ainsi, une fois votre système installé, il sera impératif de réaliser vos propres tests de charge pour vérifier le bon fonctionnement et lever toutes les contentions qui pourraient interférer.
Nos consultants ont une longue expérience pour lancer des tests de charge, analyser les résultats et vous aider à optimiser la performance jusqu’à atteindre vos objectifs.
Après le lancement, prévoyez également de faire des mesures de performance sur l’activité réelle de vos utilisateurs pour vérifier vos hypothèses.
A tout instant, s’il apparaît que le nombre de coeurs CPU de votre souscription n’est plus en adéquation avec vos besoins, vous pouvez nous contacter pour la faire évoluer.
Pour ne rien oublier
En résumé, pour bien dimensionner votre souscription Enterprise Plus vous devrez connaître le nombre d’utilisateurs de votre système ainsi que vos contraintes de service. Voici une checklist pour ne rien oublier :
- Estimez la charge utilisateur nécessaire à l’aide de :
- Nombre total d’utilisateur
- Charge normale d’utilisateurs simultanés
- Pics de charge
- Calculez le nombre de coeurs CPU :
- Nb coeurs CPU production min = Nb utilisateurs concurrents / 1 000
- Environnements de production secondaires ?
- Environnements de pré-production ?
- Environnements de recette ?
- Environnements de développement ?
- Intégrations d’applications métier?
- Postes de développement ?
- Vérifiez vos hypothèses
- Tests de charge avant lancement
- Mesure de l’activité réelle dans la durée
- Ajustements périodiques
Découvrez comment eXo Platform peut vous aider à transformer votre entreprise!