Pregunta

He sido el diseño de un sitio durante los últimos dos días, y ha estado haciendo algunas investigaciones en diferentes aspectos de la ampliación de un sitio horizontalmente. Si las cosas van como estaba previsto, dentro de unos meses (año?) Sé que había necesidad de preocuparse acerca de la expansión del sitio arriba y hacia afuera, ya que los recursos que terminaría consumiendo sería enorme.

Por lo tanto, esto me hizo pensar, ¿cuándo es el mejor momento para empezar a pensar, y el diseño de, escalabilidad? Si se inicia demasiado pronto, fácilmente se podría complicar su diseño, y que sea imposible la construcción de realidad. Además, puede pedir demasiado atrapados en los detalles, la arquitectura, lo que sea, y el viento encima de conseguir nada hecho. También, si lo hace conseguir que funcione, pero el sitio nunca se quita, es posible que haya perdido una buena parte del esfuerzo adicional.

Por otro lado, se podría ahorrar una tonelada de esfuerzo en el camino. Diseñarlo desde cero para ser grande haría mucho más fácil después de dejarlo crecer grande, con muy poco reescribir pasando.

Sé que es lo que estoy trabajando, me he decidido a hacer por lo menos un par de opciones ahora en el lado de la escala, pero no voy a hacer un cambio completo de pensamiento conseguirlo a escala completa . En particular, he rediseñado mi base de datos a partir de un diseño relacional convencional a una similar a lo que se sugiere en el sitio Reddit vinculada a continuación, y yo voy a dar una oportunidad Memcache.

Por lo tanto, la pregunta básica, cuando es un buen tiempo para empezar a pensar o preocuparse por escalamiento, y cuáles son algunos diseños buenos, consejos, etc., para al hacerlo?

Un par de cosas que he estado leyendo, para aquellos que estén interesados:

http: / /www.codinghorror.com/blog/2009/06/scaling-up-vs-scaling-out-hidden-costs.html

http://highscalability.com/blog/2010/5/17/7-lessons-learned-while-building-reddit-to-270-million-page.html

http://developer.yahoo.com/performance/rules.html

¿Fue útil?

Solución

A pesar de que fuera bien, la arquitectura sensata debería permitir aplicar una escala más tarde sin necesidad de excesivos recursos para poner en práctica. Esto debe ser pensado desde el principio del proyecto.

Hoy en día hay muy buenas arquitecturas y patrones de diseño de la empresa se puede extraer de (rieles, MVC, primavera, etc.) que le permiten desarrollar software en una base bien establecida y bien entendido que proporciona los mecanismos necesarios para el escalado arriba.

Otros consejos

En un cierto punto de vista, técnicas de escalamiento son bastante aceptado y consolidado. Así que en lugar de depender de web enlaces / artículos, que había leído libros sobre el tema antes de iniciar el probject.

Sugiero:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top