¿Qué tecnologías debo usar al diseñar para un sitio web social grande (con muchas transacciones, como Twitter)? el uso de soluciones de código abierto - base de datos de servidor web - - osSitio de alto rendimiento
Respuesta
- Twitteruses Ruby-on-rails and Scala
- Facebook utiliza PHP
- StackOverflow utiliza asp.net mvc
Como se puede ver, que doesn' realmente importa lo que elijas; todos estos sitios tienen mucho tráfico, pero se basan en tecnologías muy diferentes.
No importa qué tipo de lenguaje de scripting elija, siempre y cuando utilice en gran medida memcached. Tener la jerarquía correcta de caché es imprescindible.
Pensé que todos estos frameworks (PHP, asp.net ...) ya tenían soporte de caché integrado – Jan
Algunos lo hacen, algunos no (PHP a partir de 5.2/3, pero se puede incluir fácilmente a través de la extensión APC). El caso es que realmente QUIERES tener una JERARQUÍA de almacenamiento en caché. Tener varios niveles (al menos 3, contaré la capa de base de datos persistente) de cachés le permite distribuir los datos de acuerdo con su uso frecuente. – aefxx
Al final del día, esta es una cuestión de preferencia personal. Twitter usa Ruby on Rails. Wikipedia funciona en PHP. Reddit usa una biblioteca de Python llamada web.py, pero inicialmente, estaba escrita en Lisp. Yo diría que escoges las tecnologías con las que estás más familiarizado.
Como Joel says
La gente en todo el mundo están construyendo constantemente aplicaciones web utilizando .NET, utilizando Java, PHP y utilizando todo el tiempo. Ninguno de ellos está fallando debido a la elección de la tecnología.
elegir el que más de la "3 grandes" (.Net, Java o PHP) que mejor sabe - estas tecnologías son conocidos por ser escalable, la verdadera pregunta de si o no su sitio escalará es cómo el sitio está estructurado y la calidad del código, utilizando el marco con el que esté más familiarizado, le brinda la mejor oportunidad de lograrlo.
Cualquier tecnología que se adapte a sus gustos, en su situación creo que los algoritmos son más importantes.
Un buen libro sobre optimización para sitios web de alto rendimiento de los ingenieros de Yahoo es High Performance Web Sites: Essential Knowledge for Front-End Engineers. Es bueno y breve y básicamente una guía con viñetas sobre los pasos a seguir para hacer que los sitios web sean más rápidos al optimizar el front-end menos explorado.
Lo que más importa en los sitios de redes sociales es el backend, ya que la mayor parte del cuello de botella será a partir de ahí. Es posible que desee considerar las bases de datos sin SQL.
Hay algunos otros como:
- Hypertable
- MongoDB, utilizados por Sourceforge.
- CouchDB
En cuanto al lenguaje de programación, como otros han dicho, no importa mucho. Pero si realmente no puede decidir, es posible que desee considerar un servidor web no bloqueante como Tornado.
Buena información sobre bases de datos. Siempre pensé en bases de datos relacionales donde la respuesta a sitios como Twitter y Facebook, pero aparentemente no – Marius
tecnologías, técnicas,
- la investigación lo que otros sitios escalados han utilizado y hecho y cuáles son los problemas que tenían eran menos de lo que éxitos, hay podcasts en iTunes, charlas y entrevistas en Youtube
- mirada en las mejores prácticas de la industria y síguelos hasta un grado
- no tome la palabra de la gente para él, asegúrese de ver el problema o el éxito en comparación con el pr glitz al respecto
- evitar cosas obvias que no escalan verticalmente u horizontal conectividad de base de datos, sesiones - cookies y similares
- mire el almacenamiento nosql como una alternativa sql menos sobrecarga pero menos funcionalidad
- tenga cuidado al mirar el lenguaje/marco. Los frameworks vienen con mucho equipaje que no necesitas, te aceleran inicialmente y te ralentizan eventualmente, es decir, pasas más tiempo pirateando el framework que construyendo el sitio, lo mismo con los idiomas hace lo que quieres en lugar de estar a la moda, cool en etc. programar
Si usted está construyendo algo como Facebook, a continuación, sus opciones son un poco limitado, Facebook hizo su propio PHP en tiempo de ejecución, compruebe HipHop For PHP
- 1. Sitio ASP.NET de alto rendimiento (> 1000 solicitud/segundo)
- 2. Alto Rendimiento Desarrollo
- 3. Mensajería JMS de alto rendimiento
- 4. sitio de alto tráfico de detección móvil
- 5. Calentamiento de aplicaciones Java de alto rendimiento
- 6. inserto de hibernación de alto rendimiento
- 7. Cronómetro de alto rendimiento frente a Cronómetro
- 8. Arrays multidimensionales C++ de alto rendimiento
- 9. registro multiproceso para aplicaciones de alto rendimiento
- 10. gráficos de alto rendimiento wpf 2d
- 11. C# ==> ¿Servidor de alto rendimiento?
- 12. Análisis XML de alto rendimiento en C++
- 13. ¿Qué tan importante es el sprint para el rendimiento en un sitio web de alto tráfico?
- 14. ASP.NET Sitio web Memoria Uso bastante alto
- 15. Alto rendimiento Concurrent MultiMap Java/Scala
- 16. rendimiento de prueba de un sitio web
- 17. Consejos/técnicas de alto rendimiento sockets de servidor de C#
- 18. Mejores prácticas de aplicaciones de red de alto rendimiento
- 19. Gráficos de alto rendimiento con la capa visual de WPF
- 20. búsqueda de cadenas cortas masivas de alto rendimiento en Python
- 21. Expresiones regulares simples de alto rendimiento de Java
- 22. visualizador de PDF de alto rendimiento para web
- 23. ¿Filtro de floración moderno y de alto rendimiento en Python?
- 24. Estructura recomendada para el sitio web de alto tráfico
- 25. DDD - Cómo implementar repositorios de alto rendimiento para buscar
- 26. Mapa hash C/C++ de super alto rendimiento (tabla, diccionario)
- 27. Cómo escribir un Netty Client de alto rendimiento
- 28. uso óptimo de CPLEX Java para alto rendimiento
- 29. Libros sobre sitios web de alto rendimiento y escalabilidad.
- 30. ¿Cómo crear clases .NET de alto rendimiento utilizando la reflexión?
Facebook utiliza realmente una versión compilada a C++ de Php, compruébalo http://developers.facebook.com/news.php?story=358&blog=1 –