¿Qué consideraciones de lenguaje, infraestructura y alojamiento se deben tener en cuenta antes de comenzar el desarrollo de una aplicación web escalable?Planificación del desarrollo de aplicaciones web escalables
Respuesta
La consideración más importante es no sobre-diseñar al punto que se interpone en la forma de construir y lanzar algo. La parálisis del análisis es el mayor inhibidor de la productividad, el progreso y los resultados.
Sí, planeé un poco. Elige un marco. La perfección en un marco será imposible de encontrar porque no existe, en parte porque no sabes lo que necesitas hasta que lo construyas de todos modos. Lo más probable es que, si eliges algo, será mejor que no elegir nada.
Sí, trate de elegir herramientas flexibles e interoperables para ver hacia dónde se dirige.
Sí, busque un buen conjunto de funciones integradas en el que se vea en los próximos 6-18 meses. Tratar de mirar más allá de eso no es realmente realista de todos modos, ya que la mayoría de los proyectos cambian tanto de todos modos hacia la primera versión.
Por lo tanto, elige con qué te sientes cómodo o con qué te resulte familiar. No siga a la multitud, haga lo que le de los mejores resultados, lo más rápido y con frecuencia. Comprenda que es posible que tenga que cambiar en el futuro. Entonces, sea lo que sea que construyas ahora, trata de usar pruebas unitarias para que puedas volver a factorizar si es necesario alguna vez.
Si lo que estás construyendo va a ser un gran éxito, será un gran problema y fácil de trabajar una vez que gane dinero, ya que podrás conseguir otros talentos para ayudarte .
Comparta lo que termina eligiendo y por qué para su situación: ¡también nos ayuda a aprender de usted!
Depende.
empezar por mirar sus requisitos (funcionales o definidos por el usuario) (No funcional - aspectos que describen su sistema deseado link text)
Siguiente Me aclarar lo que significa tener una aplicación web escalable. Defínalo como casos de prueba que se pueden probar con claridad (debe admitir X vistas de página/segundo con un tiempo de respuesta de < Y segundos).
Una vez que tuve esas piezas en su lugar, me gustaría ver qué tipo de habilidades puede apoyar mi equipo de desarrollo (para el proyecto inicial y el mantenimiento continuo). Luego, encuentre algunos estudios de casos de aplicaciones en la naturaleza que usan un lenguaje o marco similar. Si alguien más ha creado una escala de lenguaje/estructura específica, entonces es muy probable que usted también pueda hacerlo.
Por último, salga y busque algunos proveedores de hosting que admitan el idioma, el marco y los requisitos elegidos.
En primer lugar en el lenguaje, en gran medida no importa. PHP, Java y .Net son probablemente los tres más importantes, todos están probados en el sentido de que ejecutan algunos de los sitios más grandes en la Web, así que no escuche a nadie que le diga que uno es más adecuado que cualquiera de los demás.
Algunos también pueden poner a Ruby y Django/Python en esta lista. No tengo nada en contra de ellos, pero no conozco ningún sitio grande (por ejemplo, los mejores 50) que use ninguno de los dos.
consideraciones de alojamiento dependen de qué tan bajo que desea iniciar, pero básicamente el orden es:
- compartido;
- Servidor privado virtual;
- Dedicado.
La escalabilidad será principalmente sobre el diseño de su aplicación que cualquier idioma, marco o proveedor. El esquema de base de datos eficiente, la entrega eficiente y el uso de Javascript/CSS y el almacenamiento en memoria caché en memoria son temas comunes a cualquier lenguaje o marco.
Idioma - Recomendaría algo con buenos marcos y buenas bibliotecas de prueba como Perl o Java.
Marco: depende de lo que planeas hacer. Si comienza con un hosting que no permite FastCGI, es mejor evitar tales frameworks como Catalyst o Rails. Es por eso que amo CGI :: Application (principalmente Perl, pero también para otros idiomas) - puede ejecutarse como CGI, FastCGI o mod_perl. Para el desarrollo, se puede ejecutar desde su propio servidor web.
Alojamiento - nada es mejor que tu propio servidor. Puede ser su propio servidor, servidor alquilado o servidor virtual. Pero puede comenzar con el alojamiento más barato y cuando necesite más, debería poder pagarlo.
Ruby on Rails no requiere FastCGI, por lo que no estoy seguro de por qué el soporte FastCGI es relevante allí. – Chuck
No se case necesariamente con un idioma o marco. Es posible que algunas partes de su sitio funcionen mejor con diferentes idiomas y marcos que otras. Por ejemplo, todos los sitios de 37signals se basan en Ruby on Rails, pero recientemente escribieron una publicación de blog sobre cómo la tecnología subyacente de uno está realmente escrita en Erlang ahora porque es mucho más fácil hacer concurrencia de esa manera.
Obviamente, hay un nivel de complejidad donde las cosas se convierten en una mezcolanza, pero usar la herramienta adecuada para el trabajo, incluso si eso significa diferentes herramientas para diferentes trabajos, puede simplificar las cosas.
- 1. ¿Cómo diseñar aplicaciones escalables?
- 2. buenos libros sobre aplicaciones web escalables (Java/Ajax/REST)?
- 3. Factores clave para diseñar aplicaciones basadas en web escalables
- 4. Proceso de desarrollo de aplicaciones web
- 5. Desarrollo de aplicaciones web en Scala
- 6. Desarrollo de aplicaciones web en la Mac
- 7. Del desarrollo web al desarrollo de Android
- 8. ¿Cómo desarrollo aplicaciones web 2.0 con CGI.pm?
- 9. ¿Cómo debería uno comenzar a aprender desarrollo de aplicaciones web?
- 10. Forma preferida de desarrollo de aplicaciones web con m2eclipse
- 11. Lisp o Haskell para desarrollo de aplicaciones web
- 12. Smalltalk desarrollo de aplicaciones web env desde cero?
- 13. Aplicación de Windows vs Desarrollo de aplicaciones web
- 14. MVC vs HMVC para el desarrollo de aplicaciones web
- 15. Por dónde empezar al ingresar al desarrollo de aplicaciones web
- 16. sproutcore vs javascriptMVC para el desarrollo de aplicaciones web
- 17. ¿Cuándo NO utilizar AJAX en el desarrollo de aplicaciones web?
- 18. Soluciones escalables de geocodificación internacional
- 19. Pasando del desarrollo de escritorio al desarrollo web
- 20. ¿Cómo pasar del desarrollo de software integrado al desarrollo web?
- 21. La importancia de conocer C++ para el desarrollo de aplicaciones web
- 22. Desarrollo de aplicaciones móviles ASP.net
- 23. MVVM para desarrollo web
- 24. Proceso de desarrollo de aplicaciones web: control de versiones, seguimiento de fallas, pruebas unitarias, implementación
- 25. Desarrollo web
- 26. Problemas comunes en el desarrollo de aplicaciones empresariales no basadas en web conscientes del clúster
- 27. Depuración de aplicaciones web
- 28. Monitoreo del Servidor de Aplicaciones Web
- 29. Documentación del flujo/iteración de aplicaciones web
- 30. Planificación de una competencia
Sitios web escritos en Ruby: Twitter, Github, Amazon ... –