Actualmente estoy creando un sitio web para un proyecto social en Suiza.Cómo escalar una aplicación PHP (servidores, mysql, memcache)
Y antes de que haya un desbordamiento de usuario, quiero preparar la aplicación a escala.
He respondido muchas preguntas, pero quedan algunas.
Explico lo que quiero hacer.
Primera
en el beginnning, la aplicación tendrá un solo servidor (tiempo corto) con el DNS, PHP, MySQL, datos y Memcache.
Segunda
continuación, voy a dividir en dos
- DNS, Mysql, Memcache
- de datos, PHP
Tercera
Aquí está el problema, no sé cómo hacerlo exactamente aquí para que la aplicación funcione correctamente.
que podía hacer:
- delantera: equilibrador de carga, Memcache, DNS
- Web 1: PHP, DATOS
- Web 2: PHP, DATOS
- Mysql
Este sería el esquema, todas las sesiones de PHP se mantienen en la base de datos.
PERO, ¿cómo sincronizo los datos? ejecuto un Rsync para mantenerlos actualizados. ¿Los pongo en un disco aparte (disco de red) para estar seguro? pero en este caso, ¿cómo puedo hacer en caso de que el usuario cargue?
y si el sitio web tiene más éxito y tenemos que ir en estructuras más grandes, ¿no creará alguna latencia en las actualizaciones?
o sería una buena idea ir directamente a los servicios web de Amazon?
algunas informaciones Uso codeigniter como Framework. Uso linux como servidor web (distribución no elegida ahora, pero debe ser Debian)
Gracias de antemano por sus respuestas.
http://stackoverflow.com/questions/189903/scaling-solutions-for-mysql-replication-clustering – zaf
http://highscalability.com/ – David
AWS ofrece algunas excelentes herramientas para dividir sus servicios: entrega de contenido y S3 para elementos estáticos, RDS y SimpleDB para bases de datos distribuidas, y EC2 para recursos de servidores escalables. –