{"id":13176,"date":"2017-05-24T06:21:26","date_gmt":"2017-05-24T04:21:26","guid":{"rendered":"\/blog\/?p=13176"},"modified":"2023-05-12T16:37:07","modified_gmt":"2023-05-12T14:37:07","slug":"comment-estimer-le-cout-dune-souscription-exo-enterprise-plus","status":"publish","type":"post","link":"https:\/\/www.exoplatform.com\/blog\/fr\/comment-estimer-le-cout-dune-souscription-exo-enterprise-plus\/","title":{"rendered":"Comment bien dimensionner votre souscription Enterprise Plus ?"},"content":{"rendered":"<p>Nous faisons r\u00e9guli\u00e8rement \u00e9voluer nos offres pour essayer de les rendre plus lisibles et les adapter aux besoins de nos clients. Malgr\u00e9 cela, notre offre phare, <strong><a href=\"https:\/\/www.exoplatform.com\/fr\/offre-produits\/\">Enterprise Plus<\/a> <\/strong>continue de faire l\u2019objet de questionnements de la part de nos clients qui, apr\u00e8s nous avoir s\u00e9lectionn\u00e9s souhaitent s\u2019assurer que les logiciels qu\u2019ils s\u2019appr\u00eatent \u00e0 commander ainsi que les services associ\u00e9s r\u00e9pondront convenablement \u00e0 la fois \u00e0 leurs contraintes de service et \u00e0 leurs contraintes budg\u00e9taires.<\/p>\n<p><!--more--><\/p>\n<p>Ceux qui sont habitu\u00e9s aux solutions SaaS peuvent supposer que le co\u00fbt du service peut \u00eatre calcul\u00e9 simplement en multipliant le nombre total d&#8217;utilisateurs par le prix unitaire. Mais cela fonctionne diff\u00e9remment pour la <strong>souscription eXo Enterprise Plus<\/strong>.<\/p>\n<p>Comme on le voit souvent pour les solutions logicielles d&#8217;entreprise on premise, le prix est fonction du nombre de coeurs CPU utilis\u00e9s dans l&#8217;infrastructure plut\u00f4t que du nombre d&#8217;utilisateurs.<\/p>\n<p>Cette notion n&#8217;est pas toujours \u00e9vidente pour les non-informaticiens, donc elle m\u00e9rite que l\u2019on s\u2019y attarde.<\/p>\n<h2>A propos des coeurs CPU<\/h2>\n<p>Un coeur CPU est une caract\u00e9ristique technique de la machine qui h\u00e9berge votre instance eXo Platform. Chaque serveur est \u00e9quip\u00e9 de un ou plusieurs microprocesseurs (CPU), eux-m\u00eame divis\u00e9s en coeurs.<\/p>\n<p>Le nombre de coeurs CPU mis en oeuvre dans un syst\u00e8me serveur d\u00e9termine largement la quantit\u00e9 de requ\u00eates (on parle de charge) qu\u2019il est capable de traiter simultan\u00e9ment.<\/p>\n<p>Ainsi, \u00e0 chaque fois que vous rechargez une page de votre intranet depuis votre navigateur, plusieurs requ\u00eates sont envoy\u00e9s au serveur eXo Platform qui doit les traiter avant de renvoyer \u00e0 votre navigateur le contenu demand\u00e9 pour qu\u2019il l\u2019affiche.<\/p>\n<p>Plus il y a d\u2019utilisateurs connect\u00e9s au syst\u00e8me en m\u00eame temps, plus il a de requ\u00eates \u00e0 traiter. Si le syst\u00e8me ne dispose pas de suffisamment de coeurs CPUs pour traiter toutes les requ\u00eates qu\u2019il re\u00e7oit, les pages sont plus lentes \u00e0 charger car les requ\u00eates sont mises en attentes jusqu\u2019\u00e0 ce qu\u2019un coeur CPU soit lib\u00e9r\u00e9.<\/p>\n<p>Par cons\u00e9quent, pour avoir une bonne rapidit\u00e9 d\u2019affichage pour tout le monde, il est n\u00e9cessaire (mais pas suffisant!) que l\u2019infrastructure du syst\u00e8me dispose d\u2019un nombre de coeurs CPU permettant de g\u00e9rer la charge utilisateur.<\/p>\n<p>Chaque serveur, ayant g\u00e9n\u00e9ralement un nombre limit\u00e9 de coeurs CPU, votre \u00e9quipe d\u2019infrastructure devra donc allouer suffisamment de serveurs pour que vos utilisateurs puissent jouir d\u2019une qualit\u00e9 de service optimale.<\/p>\n<h2>Estimer la charge utilisateur<\/h2>\n<p>En r\u00e9sum\u00e9, plus vous aurez d\u2019utilisateurs \u00e0 servir et plus vos exigences de qualit\u00e9 de service seront \u00e9lev\u00e9es, plus il vous faudra de serveurs.<\/p>\n<p>Par cons\u00e9quent, un bon dimensionnement ne va pas seulement aider \u00e0 obtenir une bonne performance, il va \u00e9galement d\u00e9terminer votre budget r\u00e9current pour op\u00e9rer le service.<\/p>\n<p>Quand on se lance avec un produit qu\u2019on ne conna\u00eet pas, et qui va d\u00e9finir de nouveaux usages, comment conna\u00eetre a priori la capacit\u00e9 serveur n\u00e9cessaire ?<\/p>\n<p>La charge effective que pourront supporter les serveurs d\u00e9pend de nombreux facteurs techniques que peuvent g\u00e9n\u00e9ralement plus ou moins ma\u00eetriser les \u00e9quipes d\u2019infrastructure telles que la bande passante r\u00e9seau ou la m\u00e9moire serveur allou\u00e9e.<\/p>\n<p>Mais en r\u00e9alit\u00e9 le facteur le plus d\u00e9terminant pour la charge, est aussi le moins facile \u00e0 anticiper. Il s\u2019agit des utilisateurs. Que vont-ils faire ? Vont-ils adopter massivement l\u2019outil ? Ou bien progressivement ? Se serviront-ils de toutes les applications collaboratives mises \u00e0 disposition ?<\/p>\n<p>Disons le clairement, il est impossible de le pr\u00e9voir avec pr\u00e9cision. Il faut donc se livrer \u00e0 un exercice estimatif de la charge \u00e0 partir duquel, vous pourrez d\u00e9river le nombre de coeurs CPU n\u00e9cessaire.<\/p>\n<p>Nous proposons ci-dessous une m\u00e9thode estimative simple se basant sur le nombre d\u2019utilisateurs concurrents.<\/p>\n<h2>Analyser les statistiques d\u2019un syst\u00e8me existant<\/h2>\n<p>Si vous remplacez un syst\u00e8me existant, comme un ancien intranet par exemple, vous disposez probablement d\u2019un atout pour r\u00e9aliser votre estimation de charge : des statistiques d\u2019utilisation.<\/p>\n<p>Qu\u2019il s\u2019agisse de statistiques g\u00e9n\u00e9r\u00e9es par Google Analytics ou AWStats, vous devriez \u00eatre capable de retrouver dans l\u2019historique le nombre de visites moyennes par jour que l\u2019ancien syst\u00e8me recevait. Ramenez cette valeur \u00e0 l\u2019heure, cela vous donnera la charge normale que devra supporter le syst\u00e8me \u00e0 tout instant.<\/p>\n<p>Vous remarquerez certainement des pics de connexion p\u00e9riodiques plus \u00e9lev\u00e9s que la moyenne. Ils surviennent g\u00e9n\u00e9ralement r\u00e9guli\u00e8rement \u00e0 des plages horaires pr\u00e9cises qui correspondent \u00e0 un surcro\u00eet d\u2019activit\u00e9 dans l\u2019entreprise.<\/p>\n<p>Souvent il s\u2019agit des heures d\u2019embauches du matin ou les retours de pause d\u00e9jeuner. Mais il peut \u00e9galement s\u2019agir de pics saisonniers dus \u00e0 votre activit\u00e9 comme par exemple des campagnes de promotion.<\/p>\n<p>En plus de la charge moyenne et des pics, int\u00e9ressez-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\u00e9dire la charge moyenne ou les pics dans 6 mois ou 1 an ?<\/p>\n<p>En g\u00e9n\u00e9ral, nous recommandons de conserver la valeur la plus haute et de la majorer de 15% pour estimer la charge attendue par votre nouveau syst\u00e8me.<\/p>\n<p>Cela vous donnera une marge suffisante pour notamment pour absorber le pic d\u2019int\u00e9r\u00eat exceptionnel que g\u00e9n\u00e8re immanquablement le lancement d\u2019un nouveau service.<\/p>\n<p>Donc par exemple, si votre syst\u00e8me pr\u00e9c\u00e9dent devait g\u00e9rer une charge normale de 800 utilisateurs avec des pics quotidiens \u00e0 3 000, pr\u00e9voyez une charge normale de 920 utilisateurs (800 + 15%) et des pics \u00e0 3 450 (3 000 + 15%).<\/p>\n<h2>Estimer \u00e0 partir du nombre d&#8217;utilisateurs<\/h2>\n<p>Lorsque vous n\u2019avez pas de r\u00e9f\u00e9rence pass\u00e9e, vous pouvez partir du nombre total d\u2019utilisateurs qui auront acc\u00e8s au service.<\/p>\n<p>S\u2019il s\u2019agit de votre intranet, partez du nombre de salari\u00e9s et prenez en compte les taux de rotation du travail.<\/p>\n<p>S\u2019il s\u2019agit d\u2019un extranet client, rapprochez-vous du service commercial pour conna\u00eetre la taille de la base client et sa progression.<\/p>\n<p>S\u2019il s\u2019agit d\u2019un site \u00e0 audience publique, rapprochez-vous de votre service marketing digital pour \u00e9valuer les cibles de trafic pour ce nouveau site.<\/p>\n<p>Projetez-vous \u00e0 un an et retenez ce chiffre. Il s\u2019agira de votre base d\u2019utilisateurs th\u00e9orique.<\/p>\n<p>A partir de l\u00e0 vous devrez extrapoler combien d\u2019entre eux vont se connecter \u00e0 tout moment.<\/p>\n<p>Si vous n\u2019en avez aucune id\u00e9e, fiez vous \u00e0 nous. D\u2019apr\u00e8s nos propres observations sur des usages collaboratifs en entreprise, \u00e0 un instant donn\u00e9, environ 10% du nombre total d\u2019utilisateurs actifs est connect\u00e9 simultan\u00e9ment. Lors des pics de charge, ce taux de connexions peut monter jusqu\u2019\u00e0 60%.<\/p>\n<p>Ainsi, si vous avez une base d\u2019utilisateurs th\u00e9orique de 10 000, comptez une charge de 1 000 utilisateurs concurrents comme votre minimum et 6 000 comme le maximum.<\/p>\n<h2>Calculer vos besoins en coeurs CPU pour la production<\/h2>\n<p>Equip\u00e9 de votre estimation de charge utilisateurs, nous allons maintenant calculer sur le nombre de coeurs CPU n\u00e9cessit\u00e9s par une instance eXo Platform.<\/p>\n<p>Pour rendre les chose simples, nous avons \u00e9tabli un abaque qui vous donne une estimation du nombre de CPU-core pour une charge utilisateur sur un syst\u00e8me eXo Platform.<\/p>\n<p>Il se base sur un benchmark th\u00e9orique que nous effectuons dans nos labs \u00e0 chaque nouvelle version de eXo Platform. Concr\u00e8tement, nous simulons une activit\u00e9 typique de collaboration de nombreux utilisateurs fictifs.<\/p>\n<p>Diff\u00e9rents sc\u00e9narios d\u2019usage classiques sont r\u00e9alis\u00e9s simultan\u00e9ment par ces utilisateurs virtuels. Ces sc\u00e9narios exploitent l\u2019ensemble des fonctionnalit\u00e9s collaboratives d\u2019eXo Platform et se r\u00e9partissent \u00e0 90% en op\u00e9rations en lecture seule (ex. consulter un article) et 10% en op\u00e9rations en \u00e9criture (ex. poster un message).<\/p>\n<p>Lors de notre benchmark de performance, nous mesurons les temps de r\u00e9ponse de chaque requ\u00eate. Ainsi, nous avons pu \u00e9tablir qu\u2019un syst\u00e8me \u00e9quip\u00e9 de 8 coeurs CPU permet d\u2019obtenir des temps de r\u00e9ponse moyens raisonnables (inf\u00e9rieurs \u00e0 la seconde), jusqu\u2019\u00e0 1 000 utilisateurs. Au del\u00e0, les temps de r\u00e9ponse augmentent.<\/p>\n<p>Attention, il faut bien \u00eatre conscient que le chiffre de ce benchmark est une valeur brute th\u00e9orique qui repr\u00e9sente un usage lin\u00e9aire des fonctionnalit\u00e9s principales d\u2019eXo Platform. En pratique vos utilisateurs auront un usage bien plus erratique.<\/p>\n<p>Mais en prenant quelques marges de s\u00e9curit\u00e9 raisonnables vous ne devriez pas trop sous-estimer (ni surestimer) vos besoins.<\/p>\n<p>C\u2019est pourquoi, nous recommandons de <strong>compter au minimum un coeur par tranche de 1 000 utilisateurs dans la base<\/strong>.<\/p>\n<p>Donc reprenant l\u2019exemple ci-dessus, 10 coeurs CPU seraient suffisants pour soutenir la charge normale g\u00e9n\u00e9r\u00e9e par vos 10 000 utilisateurs. Mais pour des temps de r\u00e9ponse optimums lors des pics charge \u00e0 6 000 utilisateurs concurrents, il faudrait pr\u00e9voir 60 coeurs CPU.<\/p>\n<p>Avec cet abaque et en consid\u00e9rant vos propres exigences de performance, vous pouvez facilement partir de votre nombre d\u2019utilisateurs et en d\u00e9duire le nombre de coeurs CPU n\u00e9cessaires pour votre syst\u00e8me en production.<\/p>\n<h2>Compter les environnements suppl\u00e9mentaires<\/h2>\n<p>Vous connaissez d\u00e9sormais le nombre de coeurs n\u00e9cessaires pour supporter la charge g\u00e9n\u00e9r\u00e9e par vos utilisateurs sur le syst\u00e8me de production. Mais cela ne suffira probablement pas pour faire toute votre planification budg\u00e9taire car d\u2019autres environnements viendront certainement s\u2019ajouter.<\/p>\n<p>Tout d\u2019abord, il faudra tenir compte de vos exigences de service. Par exemple, avez-vous besoin d\u2019assurer un disponibilit\u00e9 24\/7 ? En g\u00e9n\u00e9ral, cela n\u00e9cessite de redonder (doubler) l\u2019environnement de production.<\/p>\n<p>De m\u00eame, les plans de reprise d\u2019activit\u00e9 en cas de catastrophe, exigent g\u00e9n\u00e9ralement qu\u2019une infrastructure identique \u00e0 celle de la production soit maintenue dans un lieu g\u00e9ographique s\u00e9par\u00e9. Dans ces cas, il faudra doubler votre d\u00e9compte de coeurs CPU.<\/p>\n<p>De plus, la plupart des \u00e9quipes en charge des syst\u00e8mes de production ont en g\u00e9n\u00e9ral besoin d\u2019un environnement de pr\u00e9-production pour valider le bon fonctionnement de tout nouveau d\u00e9ploiement comme par exemple une mise \u00e0 jour ou un changement des param\u00e8tres syst\u00e8me.<\/p>\n<p>Si comme la plupart de nos clients Enterprise Plus, vous faites appel \u00e0 une \u00e9quipe de d\u00e9veloppement pour r\u00e9aliser des personnalisations dans votre instance d\u2019eXo Platform ou une int\u00e9gration \u00e0 votre syst\u00e8me d\u2019information, vous aurez certainement besoin d\u2019autres environnements pour des activit\u00e9s comme la recette ou le d\u00e9veloppement.<\/p>\n<p>Enfin certaines int\u00e9grations de vos applications m\u00e9tier au sein de la plateforme pourront elles-m\u00eames induire une charge suppl\u00e9mentaire qu\u2019il faudra \u00e9galement consid\u00e9rer.<\/p>\n<p>Les prix de nos souscriptions Enterprise Plus s\u2019\u00e9valuent sur le nombre total de coeurs CPU mis en oeuvre. Nous ne faisons pas de distinction quant \u00e0 leur utilisation.<\/p>\n<p>Qu\u2019il s\u2019agisse d\u2019un serveur de production ou non, qu\u2019il soit actif ou en standby, vous \u00eates libre d\u2019attribuer les coeurs de votre souscription comme vous le souhaitez.<\/p>\n<p>Le seule exception est celle des postes des d\u00e9veloppeurs qui ne comptent toujours qu\u2019un coeur par poste ind\u00e9pendamment du nombre r\u00e9el contenu dans la machine.<\/p>\n<h2>Confirmer ses hypoth\u00e8ses<\/h2>\n<p>La m\u00e9thode d\u00e9crite dans cet article, devrait vous permettre simplement de dimensionner le nombre de coeurs CPU avant de passer commande. N\u2019h\u00e9sitez-pas \u00e0 nous contacter pour des estimations plus fines.<\/p>\n<p>Nous l\u2019utilisons depuis de nombreuses ann\u00e9es et nous savons qu\u2019elle fonctionne bien. Elle permet de tr\u00e8s rapidement avoir une id\u00e9e de l\u2019enveloppe budg\u00e9taire \u00e0 pr\u00e9voir.<\/p>\n<p>En revanche, ne faites pas l\u2019erreur de croire qu\u2019elle vaut comme une assurance que la performance de votre syst\u00e8me sera optimale.<\/p>\n<p>Bien que s\u2019appuyant sur des mesures r\u00e9elles, il s\u2019agit plus d\u2019une m\u00e9thode d\u2019estimation budg\u00e9taire a priori, mais pas d\u2019une m\u00e9thode de pr\u00e9vision de la performance r\u00e9elle de votre future syst\u00e8me.<\/p>\n<p>Elle ne prend en compte qu\u2019un seul des nombreux param\u00e8tres qui influent sur la performance globale d\u2019un syst\u00e8me.<\/p>\n<p>Ainsi, une fois votre syst\u00e8me install\u00e9, il sera imp\u00e9ratif de r\u00e9aliser vos propres tests de charge pour v\u00e9rifier le bon fonctionnement et lever toutes les contentions qui pourraient interf\u00e9rer.<\/p>\n<p>Nos consultants ont une longue exp\u00e9rience pour lancer des tests de charge, analyser les r\u00e9sultats et vous aider \u00e0 optimiser la performance jusqu\u2019\u00e0 atteindre vos objectifs.<\/p>\n<p>Apr\u00e8s le lancement, pr\u00e9voyez \u00e9galement de faire des mesures de performance sur l\u2019activit\u00e9 r\u00e9elle de vos utilisateurs pour v\u00e9rifier vos hypoth\u00e8ses.<\/p>\n<p>A tout instant, s\u2019il appara\u00eet que le nombre de coeurs CPU de votre souscription n\u2019est plus en ad\u00e9quation avec vos besoins, vous pouvez nous contacter pour la faire \u00e9voluer.<\/p>\n<h2>Pour ne rien oublier<\/h2>\n<p>En r\u00e9sum\u00e9, pour bien dimensionner votre souscription Enterprise Plus vous devrez conna\u00eetre le nombre d\u2019utilisateurs de votre syst\u00e8me ainsi que vos contraintes de service. Voici une checklist pour ne rien oublier :<\/p>\n<ol>\n<li>Estimez la charge utilisateur n\u00e9cessaire \u00e0 l\u2019aide de :<\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\">Nombre total d\u2019utilisateur<\/li>\n<li style=\"font-weight: 400;\">Charge normale d\u2019utilisateurs simultan\u00e9s<\/li>\n<li style=\"font-weight: 400;\">Pics de charge<\/li>\n<\/ul>\n<ol start=\"2\">\n<li>Calculez le nombre de coeurs CPU :<\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\">Nb coeurs CPU production min = Nb utilisateurs concurrents \/ 1 000<\/li>\n<li style=\"font-weight: 400;\">Environnements de production secondaires ?<\/li>\n<li style=\"font-weight: 400;\">Environnements de pr\u00e9-production ?<\/li>\n<li style=\"font-weight: 400;\">Environnements de recette ?<\/li>\n<li style=\"font-weight: 400;\">Environnements de d\u00e9veloppement ?<\/li>\n<li style=\"font-weight: 400;\">Int\u00e9grations d\u2019applications m\u00e9tier?<\/li>\n<li style=\"font-weight: 400;\">Postes de d\u00e9veloppement ?<\/li>\n<\/ul>\n<ol start=\"3\">\n<li>V\u00e9rifiez vos hypoth\u00e8ses<\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\">Tests de charge avant lancement<\/li>\n<li style=\"font-weight: 400;\">Mesure de l\u2019activit\u00e9 r\u00e9elle dans la dur\u00e9e<\/li>\n<li style=\"font-weight: 400;\">Ajustements p\u00e9riodiques<\/li>\n<\/ul>\n<p><strong><a href=\"https:\/\/www.exoplatform.com\/fr\/\" target=\"_blank\" rel=\"noopener\">D\u00e9couvrez comment eXo Platform peut vous aider \u00e0 transformer votre entreprise!<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"Nous faisons r\u00e9guli\u00e8rement \u00e9voluer nos offres pour essayer de les rendre plus lisibles et les adapter aux besoins de nos clients. Malgr\u00e9 cela, notre offre phare, Enterprise Plus continue de faire l\u2019objet de questionnements de la part de nos clients qui, apr\u00e8s nous avoir s\u00e9lectionn\u00e9s souhaitent s\u2019assurer que les logiciels qu\u2019ils s\u2019appr\u00eatent \u00e0 commander ainsi [&hellip;]","protected":false},"author":25,"featured_media":13177,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":[],"categories":[411],"tags":[608,1126],"lang":"fr","translations":{"fr":13176},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/13176"}],"collection":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/comments?post=13176"}],"version-history":[{"count":0,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/13176\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/media\/13177"}],"wp:attachment":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/media?parent=13176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/categories?post=13176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/tags?post=13176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}