Pregunta

Estoy a punto de comenzar un proyecto que espero que algún día requiera la capacidad de escala. La pregunta clave para mí es: ¿Debería invertir el esfuerzo para diseñar para esta eventualidad ahora, o debo cruzar ese puente cuando llegue allí?

Sé cómo van estas cosas: todos piensan que su proyecto podría escalar, pero la mayoría de los proyectos nunca lo hacen.

¿Existe un conjunto de mejores prácticas que le permitirán escalar más fácilmente en una etapa posterior, mientras que no invierte demasiado en algo que tal vez nunca sea necesario?

Obviamente no tengo experiencia con sitios web escalables. ¡Actualmente me estoy inclinando hacia Scala / Play! / Akka. Por lo que puedo recoger desde el sitio web de Akka, es muy adecuado para este tipo de proyecto (ya que proporciona un conjunto de herramientas que permite el desarrollo en una sola máquina y escalar a un número arbitrario de máquinas).

El proyecto es un sitio web orientado al consumidor que involucra alguna interacción del usuario (comentarios, mensajes, votación, etc.). Sin embargo, el enfoque principal es editorial. No es Facebook :)

Al no tener experiencia en ninguna de estas tecnologías (mi experiencia proviene principalmente de PHP, AS3, Objective-C), probablemente tengo demasiado en mi plato en este momento. Pero entonces no voy a hacerlo de inmediato. ¡Soy consciente de que necesito obtener algo de experiencia usando Scala y Play! primero.

Cualquier consejo es muy apreciado.

¿Fue útil?

Solución

Comience simplemente diseñando su modelo, cree pruebas unitarias para eso y luego establezca su capa de presentación encima. Mientras su modelo sea sensato, será fácil escalar el juego a cualquier cantidad de máquinas. Si vas por el soporte de construcción en JPA, siempre puedes lidiar con la pregunta de qué DB para ir.

Tienes cosas más grandes en tu plato por el momento. Por lo tanto, asegúrese de que su diseño sea consistente y sensato, entonces la escala no será un problema.

Otros consejos

¡Tienes una ventaja al usar un marco web sin estado como Play! Eso no se interpone en el camino cuando necesite escalar. Como dice Exxka, mantenga su modelo limpio y sensato. Esto lo ayudará a mantener la ventaja de la complejidad.

No lo considere una falla cuando necesita refactorizar su código, o incluso reescribir partes importantes de él. Esta es una parte natural de un proyecto en crecimiento, como una serpiente que se desprende de su piel.

Inevitablemente, hay cosas que aprenderá en el proceso de escribir el proyecto, así que no intente anticiparlas todos en este momento.

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