2009-09-03 10 views
1

Chez SO, on s'intéresse beaucoup à la conception d'applications Web, mais il semble que quelque chose me manque dans toutes ces discussions. Il semble que tout le monde se concentre sur la conception de son site pour permettre à beaucoup, beaucoup de visiteurs de le visiter, ce qui met une pression énorme sur le serveur. Mais que faire si quelqu'un conçoit un site juste pour les amis et la famille? Ou juste un site interne réservé aux 500 employés d'une entreprise? Bien qu'il s'agisse de la conception Web, il existe encore une énorme différence dans la conception de sites comme Google Search ou StackOverflow et des sites comme www.geocities.com \ alex \ myfamilyhistory.html ou quelque chose de similaire. (Wow, je me souviens de Geocities, je dois être vieux!)Gérer le nombre de visiteurs

Donc, ma question est simple: lors de la conception d'un nouveau site Web, où seraient les différences les plus importantes entre la gestion d'un site pour 50 visiteurs, 5000 visiteurs et 500.000 visiteurs par jour?

(Eh bien, sage matériel, ajoutez simplement d'autres serveurs. Mais je me concentre ici sur la conception de logiciels uniquement!)

+0

Geocities ferme le 26 octobre 2009 – pjp

+0

Oui, ce qui en fait encore un site valide pour le moment. ;-) –

Répondre

2

Il existe de nombreux modèles de conception qui ne seront jamais utilisés dans les applications avec un petit nombre d'utilisateurs ou de demandes, la plupart de ces modèles sont des modèles liés à la répartition de la charge. Par exemple, l'un des modèles de conception pour la répartition de la charge est d'avoir vos données dans des serveurs en cluster (structure arborescente). Chaque demande est dirigée vers un serveur, qui à son tour dit que les données de cet utilisateur sont dans un cluster donné. il n'a pas les données lui-même, il redirige juste les utilisateurs au deuxième niveau de cluster.

Les serveurs du deuxième niveau de cluster (ou premier niveau d'arborescence) peuvent avoir les données (ou une partie de celles-ci) ou rediriger l'utilisateur vers un troisième niveau de cluster. la même chose continue jusqu'à ce que la requête atteigne un serveur qui a déjà les données de l'utilisateur, ainsi la réponse est générée et renvoyée à lui.

Ce modèle de conception (parfois appelé routage) est un exemple de scénario que vous n'utiliserez jamais à moins d'avoir une application avec un nombre important de requêtes. Par exemple, gmail utilise cette conception, et la dernière défaillance de l'interface Web de Gmail était due au fait que les serveurs de routage étaient surchargés de requêtes.

3

Software-sage, vous devriez toujours penser à votre design et l'architecture par le biais de ne pas limiter vous-même avec toute limite de visiteurs abstraits.

Utiliser les meilleures pratiques généralement connues. Évitez les opérations de chaînes coûteuses. Créez un schéma de base de données décent. Placez les index et les index clusterisés le cas échéant. Évitez les hacks rapides basés sur la consolation que personne ne remarquera parce que vous n'avez pas encore autant de visiteurs.

Puis, quand viendra le moment, vous découvrirez que vous avez seulement besoin de plus de matériel au lieu de réécrire complètement votre application.

+2

J'accepte surtout avec ça. Cependant, il y a certaines choses que vous pourriez ne pas faire autant avec une application destinée à des publics plus petits - par exemple, dans une application plus petite, vous pourriez ne pas se soucier de la conception de telle sorte que vous pouvez mettre en cache * parties * de pages – Amber

+0

Eh bien, supposons que je concevais juste une application web pour ma mère afin qu'elle puisse garder son album photo en ligne et partager avec ses proches. Bien que le logiciel puisse être utilisé par des milliers de personnes, chaque application ne devrait traiter qu'avec une douzaine de visiteurs par jour. Mais si je créer un forum comme SO, le nombre de visiteurs sera beaucoup plus élevé mais le nombre d'applications sera beaucoup plus faible. Cela semble être une grande différence dans la conception. (De plus, le SO a besoin de beaucoup plus de matériel. –

+0

Sur l'épisode 27 du podcast Stack Overflow Joel et Jeff interviewent Alexis Ohanian et Steve Huffman, les fondateurs et co-créateurs de Reddit, et discutent des stratégies d'évolutivité. Également sur les podcasts précédents, ils discutaient du développement général de Stack Overflow et vous pouvez obtenir des informations précieuses de leur part. – JuanZe

Questions connexes