Je travaille avec une application web existante développée en Ruby avec un back-end MySQL, mais je pense que la question de la topologie matérielle générique s'appliquera à une grande variété d'architectures de serveurs.
Je suis à la recherche d'un document / d'une ressource Web expliquant et détaillant les meilleures pratiques actuelles relatives à l'organisation du matériel au sein d'une ferme de serveurs pour fournir une application Web avec une base de données en arrière-plan.
L'architecture actuelle est la suivante ;
HTTP Server (Apache)
|
Application Servers x 8 (Unicorn / Ruby-on-Rails)
|
MySQL Back-end (Master)
\
\
MySQL Slave (primarily for performing backups)
L'architecture proposée doit être plus évolutive que celle décrite ci-dessus, avec notamment un équilibreur de charge devant plusieurs serveurs HTTP, une répartition des serveurs d'applications entre les serveurs HTTP, plusieurs esclaves MySQL pour traiter les demandes en lecture seule (qui seront contrôlées par des modifications du logiciel d'application).
L'objectif principal est de disposer d'un système plus résilient, en utilisant les meilleures pratiques actuelles, et c'est ce qui a été suggéré jusqu'à présent.
Mais, si quelqu'un peut suggérer une ressource pour les meilleures pratiques dans ce type d'environnement, ou proposer une architecture qui donnera la résilience, la performance et l'évolutivité que nous recherchons, je vous en serais très reconnaissant :)
Dave