2010-09-15 6 views
6

Nous avons un site Web qui reçoit plus de 1 million de visites par jour.Quelle est la meilleure architecture évolutive moderne pour un site Web à haut volume (Java)

Le site fonctionne à partir d'une ancienne architecture (Struts Tomcat Hibenate MySQl) sans réel potentiel d'évolutivité.

Maintenant que nous sommes en expansion, je suis à la recherche d'une architecture web moderne (pas trop saignant s'il vous plaît). Mes premiers réflexions ont été d'utiliser Google App Engine - mais je ne suis pas sûr que ce soit assez ouvert. Nos développeurs sont tous Java, il devrait donc être quelque chose qu'ils pourraient facilement prendre en charge.

Idéalement, je voudrais courir la même manière que digg, Twitter, Amazon, etc.

Si vous savez comment ils le font - ou une suggestion que je serais très intéressé de savoir.

+1

Quelle est votre définition du «meilleur»? –

+0

En terme de ce que je recherche, le 'meilleur' ​​serait le plus facile à coder, à exécuter et à maintenir - bien sûr à condition qu'il soit également évolutif. – Dan

Répondre

2

À moins d'avoir des goulots d'étranglement importants dans la conception, le matériel est presque toujours le meilleur moyen de faire évoluer la taille.

Par 'meilleur' ​​Je veux dire

  • moins cher
  • plus rapide
  • mieux augmenter les performances
  • résultats garantis

Il semble que votre configuration actuelle est d'avoir des problèmes? Pouvez-vous donner des informations sur le type de problèmes que vous avez? Editer: Pouvez-vous donner des informations sur votre configuration matérielle actuelle? Combien de serveurs Web (exécutant vraisemblablement Apache?), Combien de serveurs d'applications, combien de serveurs DB?

+0

Le système devient lent et il y a des délais d'attente nous avons parfois des problèmes de transaction. – Dan

+0

Nous avons 2 serveurs Web et un serveur DB. – Dan

+0

@Dan Mesurez-vous la dureté de fonctionnement de vos serveurs (CPU, disque et mémoire, par exemple)? – Qwerky

0

J'aurais épuisé toutes les possibilités pour "pas de réelle portée pour l'évolutivité" avant de réécrire mon application. Cela peut simplement signifier que vous ne pouvez évoluer horizontalement qu'en lançant plus de matériel et en regroupant le problème. Google App Engine signifiera JPA au lieu de Hibernate et MySQL, car je crois qu'ils utilisent BigTable à l'arrière.

+0

Appréciez cette pensée - le système est assez compliqué et nous avons vraiment besoin d'une réécriture à ce stade - je veux juste m'assurer que nous allons dans la bonne direction. – Dan

+0

refactor au lieu de réécrire ... –

0

Jetez un oeil si vous pouvez obtenir un clustering à moindre coût avec Terracotta.


Pour une ré-écriture: Jetez un oeil à ce qui est déjà présent dans Java EE 6. Vous trouverez peut-être qu'il s'intègre bien à vos besoins. Glassfish 3.1 prendra en charge le regroupement avant que vous ayez fini de réécrire.

+0

J'ai vu Terracotta mais je cherche une pile web complète. Où cela entrerait-il - voulez-vous dire sous servlets? – Dan

+1

Mise à l'échelle transparente pour davantage de machines. Jetez un oeil ... –

0

Embaucher une équipe ou mieux encore une entreprise qui a une expérience dans la construction de solutions évolutives. Promouvoir les développeurs actuels dans les analystes d'affaires et les faire aider les spécialistes des solutions évolutives avec la logique métier.

+1

Est-ce vraiment nécessaire? Assurément, une équipe de développeurs expérimentés devrait être capable de faire face à cela en supposant qu'ils sont dirigés dans la bonne direction. – Dan

Questions connexes