¿Django escala? [cerrado]

1136

Estoy creando una aplicación web con Django. Las razones por las que elegí Django fueron:

  • Quería trabajar con herramientas gratuitas / de código abierto.
  • Me gusta Python y siento que es un lenguaje a largo plazo , mientras que con respecto a Ruby no estaba seguro, y PHP parecía una gran molestia para aprender.
  • Estoy construyendo un prototipo para una idea y no estaba pensando demasiado en el futuro. La velocidad de desarrollo fue el factor principal, y ya conocía Python.
  • Sabía que la migración a Google App Engine sería más fácil si decidiera hacerlo en el futuro.
  • Escuché que Django fue "agradable".

Ahora que me estoy acercando a pensar en publicar mi trabajo, empiezo a preocuparme por la escala. La única información que encontré sobre las capacidades de escalado de Django es proporcionada por el equipo de Django (no estoy diciendo nada para ignorarlos, pero esta claramente no es información objetiva ...).

Mis preguntas:

  • ¿Cuál es el sitio "más grande" que se basa en Django hoy? (Mido el tamaño principalmente por el tráfico de usuarios)
  • ¿Puede Django tratar con 100,000 usuarios diariamente , cada uno visitando el sitio por un par de horas?
  • ¿Podría un sitio como Stack Overflow ejecutarse en Django?
Roee Adler
fuente
2
Si aún no lo ha hecho, le recomiendo leer la sección sobre escalado en The Django Book: djangobook.com/en/1.0/chapter20 O la versión más reciente: djangobook.com/en/2.0/chapter12
monkut
15
Es posible que desee corregir "la velocidad fue el factor principal" para aclarar si está hablando de la velocidad de ejecución o el esfuerzo de desarrollo. Parece un esfuerzo de desarrollo, lo cual tiene sentido.
S.Lott
66
Sería interesante comparar esto con RoR.
Kozyarchuk
66
@ ajkumar25, AFAIK disqus utiliza django blog.disqus.com/post/62187806135/… .
alxs
66
la pregunta debería serwhat's the cost of scaling in the Django?
Sławomir Lenart el

Respuestas:

933
  1. "¿Cuáles son los sitios más grandes construidos en Django hoy?"

    No hay un solo lugar que recopile información sobre el tráfico en los sitios construidos de Django, por lo que tendré que probarlo utilizando datos de varias ubicaciones. Primero, tenemos una lista de sitios de Django en la página principal de la página principal del proyecto de Django y luego una lista de sitios creados por Django en djangosites.org . Revisando las listas y seleccionando algunas que sé que tienen un tráfico decente que vemos:

  2. "¿Puede Django tratar con 100,000 usuarios diariamente, cada uno visitando el sitio por un par de horas?"

    Sí, ver arriba.

  3. "¿Podría un sitio como Stack Overflow ejecutarse en Django?"

    Mi instinto es sí, pero, como respondieron otros y Mike Malone menciona en su presentación, el diseño de la base de datos es fundamental. También podemos encontrar pruebas sólidas en www.cnprog.com si podemos encontrar estadísticas de tráfico confiables. De todos modos, no es solo algo que sucederá al reunir un montón de modelos de Django :)

Por supuesto, hay muchos más sitios y bloggers de interés, ¡pero tengo que parar en algún lado!


Publicación de blog sobre el uso de Django para construir el sitio de alto tráfico michaelmoore.com descrito como uno de los principales 10,000 sitios web . Estadísticas de Quantcast y estadísticas de compet.com .


(*) El autor de la edición, incluida dicha referencia, solía trabajar como desarrollador subcontratado en ese proyecto.

Van Gale
fuente
267

Estamos haciendo pruebas de carga ahora. Creemos que podemos admitir 240 solicitudes simultáneas (una tasa sostenida de 120 visitas por segundo 24x7) sin ninguna degradación significativa en el rendimiento del servidor. Eso sería 432,000 visitas por hora. Los tiempos de respuesta no son pequeños (nuestras transacciones son grandes) pero no hay degradación de nuestro rendimiento de referencia a medida que aumenta la carga.

Estamos utilizando Apache front-end Django y MySQL. El sistema operativo es Red Hat Enterprise Linux (RHEL). 64 bits Usamos mod_wsgi en modo demonio para Django. No hemos realizado ninguna optimización de la caché o la base de datos que no sea aceptar los valores predeterminados.

Todos estamos en una VM en un Dell de 64 bits con (creo) 32Gb RAM.

Dado que el rendimiento es casi el mismo para 20 o 200 usuarios simultáneos, no necesitamos pasar grandes cantidades de tiempo "retocando". En su lugar, simplemente necesitamos mantener nuestro rendimiento base a través de mejoras de rendimiento de SSL ordinarias, diseño e implementación de bases de datos ordinarias (indexación, etc.), mejoras de rendimiento de firewall normales, etc.

Lo que medimos es que nuestras computadoras portátiles de prueba de carga luchan bajo la increíble carga de trabajo de 15 procesos que ejecutan 16 subprocesos concurrentes de solicitudes.

S.Lott
fuente
3
También es curioso: ¿su base de datos se ejecuta en la misma máquina o en un servidor separado?
Jarret Hardie
16
Una VM con Apache, Django y MySQL. mod_wsgi. RHEL
S.Lott
44
¿Alguna actualización sobre las métricas de rendimiento?
SexyBeast
1
Haces un buen punto: si piensas en el tráfico de tu sitio web como una cola, ¿cuántas respuestas puedes servir por hora? Si mantiene el tiempo de respuesta corto, puede servir más y, por lo tanto, tener una 'mayor escalabilidad': realmente no importa si usa Django, Twisted, Rails o tecnología del planeta Zod.
Ralph Bolton
2
He trabajado con Django durante años, y nunca he visto este tipo de rendimiento en otra cosa que no sea una aplicación de juguete que es principalmente de solo lectura. ¿Cuál es la naturaleza de su aplicación? Cualquier cosa con plantillas o middleware o sesiones o conectividad de base de datos nunca admitirá 120 visitas por segundo sin una gran cantidad de almacenamiento en caché para evitar todo eso.
Cerin
176

No estoy seguro sobre la cantidad de visitas diarias, pero aquí hay algunos ejemplos de grandes sitios de Django:

Aquí hay un enlace a la lista de sitios de Django de alto tráfico en Quora .

Neil
fuente
107

¿Cuál es el sitio "más grande" que se basa en Django hoy? (Mido el tamaño principalmente por el tráfico de usuarios)

En los Estados Unidos, fue Mahalo . Me dijeron que manejan aproximadamente 10 millones de productos únicos al mes. Ahora, en 2019, Mahalo es impulsado por Ruby on Rails.

En el exterior, el red Globo (una red de sitios de noticias, deportes y entretenimiento en Brasil); Alexa los clasifica entre los 100 mejores a nivel mundial (alrededor de 80 en la actualidad).

Otros usuarios notables de Django incluyen PBS, National Geographic, Discovery, NASA (en realidad, varias divisiones diferentes dentro de la NASA) y la Biblioteca del Congreso.

¿Puede Django tratar con 100k usuarios diariamente, cada uno visitando el sitio por un par de horas?

Sí, pero solo si ha escrito su solicitud correctamente y si tiene suficiente hardware. Django no es una bala mágica.

¿Podría un sitio como StackOverflow ejecutarse en Django?

Sí (pero ver arriba).

En cuanto a la tecnología, fácilmente: vea Soclone para un intento. Tráfico inteligente, competir clavijas StackOverflow en menos de 1 millón de únicos por mes. Puedo nombrar al menos una docena de sitios de Django con más tráfico que SO.

jacobian
fuente
2
¿Puede estimar un precio aproximado de 5000 visitas por segundo, suponiendo que sea un linkedin similar, usando Django? Suponga que un programador promedio ha creado el sitio y, por supuesto, ha agregado el almacenamiento en caché. Suponga que los algoritmos, etc. (para hacer las cosas más rápidas) no se usan ya que todavía no los uso.
user2349115
55
@ user2349115 en el momento en que su aplicación obtenga 5000 'hits por segundo', tendrá suficientes conocimientos previos para comprender por qué esa es la pregunta incorrecta.
Kye R
Mis ninjas (extensión del navegador wrappalyzer) dicen que mahalo es ruby ​​on rails alimentado ahora en marzo de 2019.
Miles Davis el
87

El escalado de aplicaciones web no se trata de marcos web o idiomas, se trata de su arquitectura. Se trata de cómo maneja la caché de su navegador, la caché de su base de datos, cómo usa proveedores de persistencia no estándar (como CouchDB ), qué tan ajustada está su base de datos y muchas otras cosas ...

razenha
fuente
¡El marco web sí importa! Mire qué tan rápido es un tornado en comparación con otros trabajos web de Python: tornadoweb.org/documentation#performance
Joshua Partogi el
No voté en contra, pero supongo que te saliste un poco del tema ya que discutían los méritos de django y no puedes usar todas las bases de datos, ajustar tu base de datos y usar couchdb al máximo en cada marco dado. A menos que no lo haga, por supuesto, reescriba grandes porciones de él.
ZJR
8
@ZLR, no creo que haya salido del tema. Me preguntó si Django puede escalar, le dije que sí, porque casi todos los frameworks web modernos, independientemente del idioma, pueden escalar si se usa el enfoque arquitectónico correcto
razenha
Sí, el bloqueo frente a no bloqueo de E / S importa, según el ejemplo de Tornado. Aunque dicho esto, Tornado no es un marco web, pero su aplicación deberá escribirse de una manera que aproveche IO sin bloqueo.
Rob Grant
Con Tornado es muy fácil escribir código IO de bloqueo. Y eso no da gran concurrencia. El marco en realidad no importa.
Shiplu Mokaddim
80

Jugando al abogado del diablo un poco:

Debería consultar la Keynote de DjangoCon 2008 , entregada por Cal Henderson , titulada "Por qué odio a Django", donde repasa casi todo lo que le falta a Django que quiera hacer en un sitio web de alto tráfico. Al final del día, debe tomar todo esto con la mente abierta porque es perfectamente posible escribir aplicaciones de Django que escalen, pero pensé que era una buena presentación y relevante para su pregunta.

Paolo Bergantino
fuente
3
Además, Flickr no fue construido en un día.
Deniz Dogan
34
Parece que varios de los problemas que Cal insistió ahora son características estándar: docs.djangoproject.com/en/dev/topics/db/multi-db
Dolph
51

El sitio más grande de Django que conozco es el Washington Post , lo que sin duda indicaría que puede escalar bien.

Las buenas decisiones de diseño probablemente tengan un mayor impacto en el rendimiento que cualquier otra cosa. A menudo se cita a Twitter como un sitio que encarna los problemas de rendimiento con otro marco web dinámico basado en lenguaje interpretado, Ruby on Rails; sin embargo, los ingenieros de Twitter han declarado que el marco no es tanto un problema como algunas de las elecciones de diseño de base de datos que tomaron antes. en.

Django funciona muy bien con memcached y proporciona algunas clases para administrar el caché, que es donde resolvería la mayoría de sus problemas de rendimiento. Lo que entrega en el cable es casi más importante que su backend en realidad: usar una herramienta como yslow es fundamental para una aplicación web de alto rendimiento. Siempre puede lanzar más hardware en su back-end, pero no puede cambiar el ancho de banda de sus usuarios.

Bayard Randel
fuente
1
¿No se ejecuta solo parte de washingtonpost.com en Django? La portada de Django parece indicar que solo son proyectos.washingtonpost.com/congress
Xiong Chiamiov
3
Quizás esté confundiendo al Washington Post con el Washington Times. Creo que el Times está en Django, pero es un periódico mucho más pequeño.
Eli
32

Estuve en la conferencia EuroDjangoCon la otra semana, y este fue el tema de un par de conversaciones, incluso de los fundadores de lo que fue el sitio más grande con sede en Django, Pownce (diapositivas de una charla aquí ). El mensaje principal es que no tiene que preocuparse por Django, sino por cosas como el almacenamiento en caché adecuado, el equilibrio de carga, la optimización de la base de datos, etc.

Django en realidad tiene ganchos para la mayoría de esas cosas: el almacenamiento en caché, en particular, se hace muy fácil.

Daniel Roseman
fuente
24

Estoy seguro de que está buscando una respuesta más sólida, pero la validación objetiva más obvia en la que puedo pensar es que Google empuja a Django para usarlo con su marco de App Engine . Si alguien conoce y trata la escalabilidad de forma regular, es Google. Por lo que he leído, el factor más limitante parece ser el back-end de la base de datos, por lo que Google usa su propio ...

encadenar
fuente
¿Promover Django / Python puede estar más relacionado con la política de Google de promover Python como su elección de lenguaje 'Otro' después de C ++?
GuruM
Cuando tuve que usar GAE, estaba bastante cerca de algo como Tornado ...
Luis Masuelli
18

Como se indica en High Performance Django Book and Go through this Cal Henderson

Ver más detalles como se menciona a continuación:

No es raro escuchar a la gente decir "Django no escala" . Dependiendo de cómo lo mire, la declaración es completamente verdadera o evidentemente falsa. Django, por sí solo, no escala.

Lo mismo puede decirse de Ruby on Rails, Flask, PHP o cualquier otro lenguaje utilizado por un sitio web dinámico basado en bases de datos.

Sin embargo, la buena noticia es que Django interactúa maravillosamente con un conjunto de herramientas de almacenamiento en caché y equilibrio de carga que le permitirán escalar a la mayor cantidad de tráfico que pueda lanzar.

Al contrario de lo que puede haber leído en línea, puede hacerlo sin reemplazar los componentes principales a menudo etiquetados como "demasiado lentos", como el ORM de la base de datos o la capa de plantilla.

Disqus ofrece más de 8 mil millones de visitas al mes. Esos son algunos números enormes.

Estos equipos han demostrado que Django ciertamente escala. Nuestra experiencia aquí en Lincoln Loop lo respalda.

Hemos creado grandes sitios de Django capaces de pasar el día en la página de inicio de Reddit sin sudar.

Las historias de éxito de escala de Django son casi demasiado numerosas para enumerarlas en este momento.

Respalda Disqus, Instagram y Pinterest. ¿Quieres más pruebas? Instagram pudo mantener a más de 30 millones de usuarios en Django con solo 3 ingenieros (2 de los cuales no tenían desarrollo de back-end)

Mushahid Khan
fuente
17

Hoy usamos muchas aplicaciones y sitios web para nuestras necesidades. La mayoría de ellos son muy útiles. Te mostraré algunos de ellos utilizados por Python o Django.

El Correo de Washington

El sitio web del Washington Post es una fuente de noticias en línea muy popular para acompañar su periódico diario. El marco web de Django puede manejar fácilmente su gran cantidad de vistas y tráfico. Washington Post - 52.2 million unique visitors (March, 2015)

NASA

El sitio web oficial de la Administración Nacional de Aeronáutica y del Espacio es el lugar para encontrar noticias, fotos y videos sobre su exploración espacial en curso. Este sitio web de Django puede manejar fácilmente grandes cantidades de vistas y tráfico. 2 million visitors monthly

El guardián

The Guardian es un sitio web británico de noticias y medios propiedad de Guardian Media Group. Contiene casi todo el contenido de los periódicos The Guardian y The Observer. Django maneja estos enormes datos. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

Youtube

Todos conocemos YouTube como el lugar para subir videos de gatos y falla. Como uno de los sitios web más populares que existen, nos brinda un sinfín de horas de entretenimiento en video. El lenguaje de programación Python lo potencia y las características que amamos.

DropBox

DropBox comenzó la revolución de almacenamiento de documentos en línea que se ha convertido en parte de la vida diaria. Ahora almacenamos casi todo en la nube. Dropbox nos permite almacenar, sincronizar y compartir casi cualquier cosa usando el poder de Python.

Mono encuesta

Survey Monkey es la mayor compañía de encuestas en línea. Pueden manejar más de un millón de respuestas todos los días en su sitio web reescrito de Python.

Quora

Quora es el lugar número uno en línea para hacer una pregunta y recibir respuestas de una comunidad de individuos. En su sitio web de Python, estos miembros de la comunidad responden, editan y organizan resultados relevantes.

Poco

La mayoría del código para los servicios y análisis de acortamiento de URL Bitly están construidos con Python. Su servicio puede manejar cientos de millones de eventos por día.

Reddit

Reddit es conocida como la página principal de internet. Es el lugar en línea para encontrar información o entretenimiento basado en miles de categorías diferentes. Las publicaciones y los enlaces son generados por el usuario y son promovidos a la cima mediante votos. Muchas de las capacidades de Reddit dependen de Python para su funcionalidad.

Hipmunk

Hipmunk es un sitio de viajes en línea para consumidores que compara los mejores sitios de viajes para encontrar las mejores ofertas. Las herramientas de este sitio web de Python le permiten encontrar los hoteles y vuelos más baratos para su destino.

Haga clic aquí para obtener más información: 25 de los sitios web más populares de python-y-django , Qué-son-algunos-sitios-conocidos-corriendo-en-Django

Simplans
fuente
15

Creo que también podríamos agregar la aplicación del año de Apple para 2011, Instagram , a la lista que usa django de forma intensiva.

Milind
fuente
12

Sí puede. Podría ser Django con Python o Ruby on Rails. Todavía escalará.

Hay pocas técnicas diferentes. Primero, el almacenamiento en caché no está escalando. Podría tener varios servidores de aplicaciones equilibrados con nginx como frontal además de los equilibradores de hardware. Para escalar en el lado de la base de datos, puede ir bastante lejos con el esclavo de lectura en MySQL / PostgreSQL si sigue el camino RDBMS.

Algunos buenos ejemplos de sitios web de tráfico pesado en Django podrían ser:

  • Pownce cuando todavía estaban allí.
  • Discus (gerente de comentarios compartidos genéricos)
  • Todos los sitios web relacionados con periódicos: Washington Post y otros.

Puedes sentirte seguro.

coulix
fuente
2
Solo digo ... las redes sociales muertas son un mal ejemplo de escalabilidad :)
ZJR
3
No creo que el Pownce dead esté relacionado con un problema de escalabilidad.
Kedare
9

Aquí hay una lista de algunas cosas relativamente de alto perfil creadas en Django:

  1. "The Guardian Investigar los gastos de su MP " aplicación

  2. Politifact.com (aquí hay una publicación de blog que habla sobre la experiencia (positiva). El sitio ganó un Pulitzer.

  3. The New York Times' Representar aplicación

  4. EveryBlock

  5. Peter Harkins, uno de los programadores de WaPo, enumera todas las cosas que han creado con Django en su blog.

  6. Es un poco viejo, pero alguien del LA Times dio una descripción básica de por qué fueron con Django.

  7. The Onion's AV Club se mudó recientemente (creo que Drupal) a Django.

Me imagino que algunos de estos sitios probablemente reciban más de 100k visitas por día. Django ciertamente puede hacer 100k visitas / día y más. Pero YMMV consigue que su sitio en particular dependa de lo que esté construyendo.

Hay opciones de almacenamiento en caché en el nivel de Django (por ejemplo, el almacenamiento en caché de conjuntos de consultas y vistas en Memcached puede hacer maravillas) y más allá (cachés aguas arriba como Squid ). Las especificaciones del servidor de base de datos también serán un factor (y generalmente el lugar para derrochar), al igual que lo bien que lo ha ajustado. No asuma, por ejemplo, que Django configurará los índices correctamente. No asuma que el PostgreSQL predeterminado o MySQL es la correcta.

Además, siempre tiene la opción de tener varios servidores de aplicaciones que ejecutan Django si ese es el punto lento, con un equilibrador de carga de software o hardware al frente.

Finalmente, ¿está sirviendo contenido estático en el mismo servidor que Django? ¿Estás usando Apache o algo así como nginx o lighttpd ? ¿Puedes permitirte usar una CDN para contenido estático? Estas son cosas en las que pensar, pero todo es muy especulativo. 100k visitas / día no es la única variable: ¿cuánto quieres gastar? ¿Cuánta experiencia tiene en la gestión de todos estos componentes? ¿Cuánto tiempo tienes para poner todo junto?

mazelife
fuente
9

El defensor del desarrollador de YouTube dio una charla sobre escalar Python en PyCon 2012 , que también es relevante para escalar Django.

YouTube tiene más de mil millones de usuarios , y YouTube está construido en Python.

orokusaki
fuente
3
Pero youtube no está construido con django. Python puede ser rápido, pero no así para django.
Joshua Partogi el
44
Sí, pero el punto era que a medida que Django crezca, se está sentando sobre una buena base para la factorización de velocidad y con Google trabajando en proyectos como Unladen Swallow, mejorará.
orokusaki
7

He estado usando Django durante más de un año y estoy muy impresionado con la forma en que logra combinar modularidad, escalabilidad y velocidad de desarrollo. Al igual que con cualquier tecnología, viene con una curva de aprendizaje. Sin embargo, esta curva de aprendizaje se hace mucho menos pronunciada por la excelente documentación de la comunidad de Django. Django ha podido manejar todo lo que le he arrojado realmente bien. Parece que podrá escalar bien en el futuro.

BidRodeo Penny Auctions es un sitio web de Django de tamaño moderado. Es un sitio web muy dinámico y maneja una buena cantidad de visitas al día.

Krystian Cybulski
fuente
6

Tenga en cuenta que si espera 100K usuarios por día, que están activos durante horas a la vez (lo que significa un máximo de 20K + usuarios simultáneos), necesitará MUCHOS servidores. SO tiene ~ 15,000 usuarios registrados, y la mayoría de ellos probablemente no estén activos diariamente. Si bien la mayor parte del tráfico proviene de usuarios no registrados, supongo que muy pocos de ellos permanecen en el sitio más de un par de minutos (es decir, siguen los resultados de búsqueda de Google y luego se van).

Para ese volumen, espere al menos 30 servidores ... que todavía son 1,000 usuarios concurrentes por servidor.

Bip bip
fuente
2
Del podcast parece que SO usa solo 3 servidores. Pero SO se construye usando C #, no Python, por lo que se rompe.
S.Lott
1
Obviamente la pregunta será: ¿Cuánto servidores potentes son?
mamcx
6

¿Cuál es el sitio "más grande" que se basa en Django hoy? ( Mido el tamaño principalmente por el tráfico de usuarios) Pinterest
disqus.com
Más aquí: https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

¿Puede Django tratar con 100,000 usuarios diariamente, cada uno visitando el sitio por un par de horas?
Sí, pero use la arquitectura adecuada, el diseño de la base de datos, el uso de caché, el uso de equilibrios de carga y múltiples servidores o nodos

¿Podría un sitio como Stack Overflow ejecutarse en Django?
Sí, solo necesito seguir la respuesta mencionada en la segunda pregunta

Ranju R
fuente
5

Otro ejemplo es rasp.yandex.ru, servicio de horarios de transporte ruso. Su asistencia satisface sus requerimientos.

Glader
fuente
5

Si tiene un sitio con algún contenido estático, colocar un servidor Varnish al frente aumentará drásticamente su rendimiento. Incluso una sola caja puede escupir fácilmente 100 Mbit / s de tráfico.

Tenga en cuenta que con contenido dinámico, usar algo como Varnish se vuelve mucho más complicado.

Anders Rune Jensen
fuente
1
El problema aquí es que el barniz aumentará drásticamente el rendimiento de todo. Y los marcos más rápidos seguirán siendo más rápidos.
ZJR
5

Mi experiencia con Django es mínima, pero recuerdo que en The Django Book tienen un capítulo donde entrevistan a personas que ejecutan algunas de las aplicaciones más grandes de Django. Aquí hay un enlace. Supongo que podría proporcionar algunas ideas.

Dice que curse.com es una de las aplicaciones de Django más grandes con alrededor de 60-90 millones de visitas en un mes.

tomeedee
fuente
1
Las URL de curse.com ahora terminan en .aspx ... (no sé si las
crean
5

Desarrollo sitios de alto tráfico utilizando Django para la emisora ​​nacional en Irlanda. Funciona bien para nosotros. Desarrollar un sitio de alto rendimiento es más que solo elegir un marco. Un marco solo será una parte de un sistema que es tan fuerte como su eslabón más débil. El uso del último marco 'X' no resolverá sus problemas de rendimiento si el problema son consultas lentas de la base de datos o un servidor o red mal configurados.

pargo
fuente
4

A pesar de que ha habido muchas respuestas excelentes aquí, solo quiero señalar que nadie ha puesto énfasis en ...

Depende de la aplicación

Si su aplicación tiene poca escritura, ya que está leyendo muchos más datos de la base de datos de los que está escribiendo. Luego, escalar django debería ser bastante trivial, diablos, viene con un almacenamiento en caché de salida / vista bastante decente directamente desde la caja. Haga uso de eso y, digamos, redis como proveedor de caché, coloque un equilibrador de carga frente a él, active n-instancias y debería poder manejar una MUY gran cantidad de tráfico.

Ahora, si tienes que hacer miles de escrituras complejas por segundo? Historia diferente. ¿Django va a ser una mala elección? Bueno, no necesariamente, depende de cómo diseñe realmente su solución y también de cuáles son sus requisitos.

Solo mis dos centavos :-)

JustDanyul
fuente
3

Echa un vistazo a este micro agregador de noticias llamado EveryBlock .

Está completamente escrito en Django. De hecho, son las personas que desarrollaron el marco Django.

siddu
fuente
everyblock.com lanzando 503
Nishant Nawarkhede
3

El problema es no saber si django puede escalar o no.

La forma correcta es comprender y saber cuáles son los patrones de diseño de red y las herramientas para poner bajo su proyecto django / symfony / rails para escalar bien.

Algunas ideas pueden ser:

  • Multiplexación
  • Proxy invertido. Ej: Nginx, Barniz
  • Sesión Memcache. Ej: Redis
  • Clusterización en su proyecto y db para equilibrio de carga y tolerancia a fallas: Ej: Docker
  • Utilice a terceros para almacenar activos. Ej: Amazon S3

Espero que ayude un poco. Esta es mi pequeña roca a la montaña.

gmourier
fuente
3

Si desea utilizar el código abierto, hay muchas opciones para usted. Pero Python es el mejor entre ellos, ya que tiene muchas bibliotecas y una comunidad súper increíble. Estas son algunas razones que pueden hacerle cambiar de opinión:

  • Python es muy bueno, pero es un lenguaje interpretado que lo hace lento. Pero existen muchos servicios de aceleración y almacenamiento en caché que resuelven en parte este problema.

  • Si está pensando en un desarrollo rápido, entonces Ruby on Rails es el mejor de todos. El lema principal de este marco (ROR) es brindar una experiencia cómoda a los desarrolladores. Si compara Ruby y Python, ambos tienen casi la misma sintaxis.

  • Google App Engine es un servicio muy bueno, pero te vinculará en su alcance, no tienes oportunidad de experimentar cosas nuevas. En su lugar, puede usar la nube Digital Ocean, que solo tendrá un cargo de $ 5 / mes por su gota más simple. Heroku es otro servicio gratuito donde puede implementar su producto.

  • ¡Si! ¡Si! Lo que escuchó es totalmente correcto, pero aquí hay algunos ejemplos que utilizan otras tecnologías.

    • Rails: Github, Twitter (anteriormente), Shopify, Airbnb, Slideshare, Heroku, etc.
    • PHP: Facebook, Wikipedia, Flickr, Yahoo, Tumbler, Mailchimp, etc.

La conclusión es que un marco o lenguaje no lo hará todo por usted. Una mejor arquitectura, diseño y estrategia le dará un sitio web escalable. Instagram es el mayor ejemplo, este pequeño equipo está administrando datos tan grandes. Aquí hay un blog sobre su arquitectura que debe leerlo.

pulkit
fuente
El desarrollo de Django puede ser muy rápido. Django es el marco web para perfeccionistas con plazos.
les
3

No creo que el problema sea realmente sobre el escalado de Django.

Realmente te sugiero que busques en tu arquitectura, eso es lo que te ayudará con tus necesidades de escalado. Si te equivocas, no tiene sentido qué tan bien funcione Django. Rendimiento! = Escala. Puede tener un sistema que tenga un rendimiento sorprendente pero que no se ajuste y viceversa.

¿Está vinculada la base de datos de su aplicación? Si es así, sus problemas de escala también están allí. ¿Cómo planea interactuar con la base de datos de Django? ¿Qué sucede cuando su base de datos no puede procesar solicitudes tan rápido como Django las acepta? Qué sucede cuando sus datos superan una máquina física. Debe tener en cuenta cómo planea lidiar con esas circunstancias.

Además, ¿qué sucede cuando su tráfico supera un servidor de aplicaciones? cómo maneja las sesiones en este caso puede ser complicado, la mayoría de las veces probablemente requeriría una arquitectura de nada compartido. De nuevo, eso depende de su aplicación.

En idiomas cortos no es lo que determina la escala, un idioma es responsable del rendimiento (nuevamente, dependiendo de sus aplicaciones, los diferentes idiomas funcionan de manera diferente). Es su diseño y arquitectura lo que hace que la escala sea una realidad.

Espero que ayude, estaría encantado de ayudarlo más si tiene preguntas.

Anand Davis
fuente
2

Difundir las tareas de manera uniforme, en resumen, optimizar todos y cada uno de los aspectos, incluidos los DB, archivos, imágenes, CSS, etc. y equilibrar la carga con varios otros recursos es necesario una vez que su sitio / aplicación comience a crecer. O haces más espacio para que crezca. La implementación de las últimas tecnologías como CDN, Cloud se debe con sitios enormes. Solo desarrollar y ajustar una aplicación no le dará la satisfacción del ciento por ciento, otros componentes también juegan un papel importante.

Ashwin
fuente