2009-11-17 13 views
0

Je vais créer un service Web performant. Il doit utiliser une base de données (ou tout autre système de stockage), un langage de traitement (script ou non) et un démon de serveur Web. Le système devrait être distribué à une grande quantité de serveurs afin que le service soit rapide et fiable. Il devrait répliquer les données pour assurer la fiabilité et en même temps fournir des fonctions de calcul réparties pour traiter de grandes quantités de données (principalement, les requêtes sur les grandes bases de données qui ne survivront pas à l'exécution sur un seul serveur avec un niveau de réactivité approprié). Les techniques de cachetage sont hors sujet.(* nix) Solutions Cloud/Cluster pour développer des services Web rapides et évolutifs

Quelles sont les solutions de cluster/cloud que je devrais prendre en considération?

Il existe de nombreux systèmes de fichiers en grappes mono-système (SSI) (pouvant faire partie de la conception), des projets tels que Hadoop, des clones BigTable et bien d'autres. Chacun a ses avantages et ses inconvénients, et la page "à propos" dit toujours que la solution est géniale :) Si vous avez essayé de déployer quelque chose qui aborde le sujet - partagez votre expérience!

UPD: Ce n'est pas un hébergement de fichiers et pas un jeu, mais quelque chose d'assez interactif. Vous pouvez prendre StackOverflow comme exemple de service Web: petites données, contenu semi-statique, opérations de base de données intensives.


Cross-Post on ServerFault

+0

Vous devriez probablement être plus précis avec votre question ou vous pourriez vous retrouver avec pas ou peu de réponses. – jldupont

+0

"Afin de poser une question correctement, il faut connaître au moins la moitié de la réponse" (c), c'est pourquoi la question est plutôt générale :) Je comprends qu'il existe une grande variété de solutions à des fins différentes, et je n'obtiendra pas une réponse correcte. Cependant, comme point de départ, il sera agréable d'entendre un partage d'expérience dans la construction de TOUT service Web sur les clusters. Plus tard, Googling aidera avec plus d'informations :) – kolypto

Répondre

1

Vous avez vraiment besoin d'une meilleure définition de "grand". Est-ce que «Big» est une aspiration, ou avez-vous des chiffres précis que votre département de marketing * estime qu'ils auront à bord?

Si vous pouvez le faire en utilisant des composants simples, faites-le. Les goûts de Cassandra et Hadoop ne sont pas faciles à mettre en place (surtout le plus tardif) ou à développer pour; Les développeurs qui vont être capables de développer une telle application seront très coûteux et difficiles à embaucher. Donc, je dirais, commencez par utiliser votre base de données "traditionnelle" préférée, avec une solution haute disponibilité appropriée, puis attendez que vous soyez proche de la limite (vous pouvez toujours mesurer où la limite est sur votre application réelle , une fois qu'il est construit et que vous avez un système de test de performance). Rappelez-vous que Stack Overflow utilise des composants assez conventionnels, simplement bien accordés avec une petite quantité de matériel de base. C'est bien pour son ampleur, mais ne marcherait jamais pour (par exemple Facebook), mais les développeurs savaient que l'audience de SO n'atteindrait jamais les niveaux de Facebook.

EDIT:

Lorsque des techniques "traditionnelles" commencent à défaut, par exemple vous atteignez la limite de ce qui peut être fait sur une seule instance de base de données, alors vous pouvez envisager de partitionner ou de faire du partitionnement fonctionnel dans plus d'instances (toujours avec votre choix de système HA). La seule fois où vous allez avoir besoin de l'un de ces systèmes (par exemple Cassandra) "nosql", c'est si vous avez un magasin de données homogène avec des besoins d'écriture et de disponibilité très élevés; Même alors, vous pourriez probablement encore le résoudre en partageant les systèmes conventionnels - comme d'autres (même Facebook) l'ont fait parfois.

+0

C'est pourquoi j'ai recommandé Appengine, qui est plus facile à développer et qui évolue beaucoup plus facilement. De plus, le prix évolue très bien aussi! – Martin

1

Il est difficile de formuler des recommandations précises puisque vous avez été un peu vague, mais je recommande Google Appengine pour tout service essentiellement Web. C'est fiable, facile à utiliser, et est construit sur l'architecture google, donc rapide et fiable.

+0

Je devrais imaginer que l'OP voulait l'héberger sur leur propre infrastructure. De même, les éléments nuageux n'ont (typiquement) pas de SLA, et une faible latence et performance en général. – MarkR

+0

Peut-être qu'ils l'ont fait, mais je recommanderais toujours Appengine sur tout type de solution interne. – Martin

+0

Je dirais que ce n'est ni rapide ni fiable. Je ne peux pas discuter avec les "échelles bien" cependant. Je me demande si c'est rentable? Nous n'avons pas vraiment étudié autant. – MarkR

0

Je voudrais recommander stratoscal symphony. c'est un service de cloud privé qui fait tout. tout ce que vous venez de mentionner - ce service fournit parfaitement. leurs produits symphoniques fournissent l'expérience de cloud public dans votre centre de données d'entreprise. Si c'est ce que vous cherchez, je vous suggère de donner un coup de feu