Question Est-ce que Django évolue? [fermé]


Je construis une application web avec Django. Les raisons pour lesquelles j'ai choisi Django étaient:

  • Je voulais travailler avec des outils libres / open-source.
  • J'aime Python et je pense que c'est un langage "à long terme", alors que par rapport à Ruby, je n'étais pas sûr, et PHP semblait être un gros problème à apprendre.
  • Je construis un prototype pour une idée et je ne pensais pas trop à l'avenir. La vitesse de développement était le facteur principal, et je connaissais déjà Python.
  • Je savais que la migration vers Google App Engine serait plus facile si je décidais de le faire à l'avenir.
  • J'ai entendu que Django était "gentil".

Maintenant que je me rapproche de la publication de mon travail, je commence à m'inquiéter de l'échelle. La seule information que j'ai trouvée sur les capacités de mise à l'échelle de Django est fournie par l'équipe Django (je ne dis rien pour les ignorer, mais ce n'est clairement pas une information objective ...).

Mes questions:

  • Quel est le "plus grand" site construit sur Django aujourd'hui? (Je mesure la taille principalement par le trafic des utilisateurs)
  • Django peut-il traiter quotidiennement avec 100 000 utilisateurs, chacun visitant le site pendant quelques heures?
  • Un site comme Stack Overflow pourrait-il fonctionner sur Django?

904
2018-05-20 05:07


origine


Réponses:


  1. "Quels sont les plus grands sites construits sur Django aujourd'hui?"

    Il n'y a pas un seul endroit qui recueille des informations sur le trafic sur les sites construits Django, donc je vais devoir y aller en utilisant des données provenant de différents endroits. Tout d'abord, nous avons une liste de sites Django sur la première page de la page principale du projet Django puis une liste de sites construits Django à djangosites.org. En parcourant les listes et en en sélectionnant quelques-unes que je connais, nous avons un bon trafic:

  2. "Django peut-il traiter quotidiennement avec 100 000 utilisateurs, chacun visitant le site pendant quelques heures?"

    Oui, voir ci-dessus.

  3. "Un site comme Stack Overflow pourrait-il fonctionner sur Django?"

    Mon intuition est oui mais, comme d'autres ont répondu et Mike Malone mentionne dans sa présentation, la conception de la base de données est essentielle. Une preuve solide pourrait également être trouvée sur www.cnprog.com si nous pouvons trouver des statistiques de trafic fiables. Quoi qu'il en soit, ce n'est pas seulement quelque chose qui arrivera en jetant ensemble un tas de modèles Django :)

Il y a, bien sûr, beaucoup plus de sites et de blogueurs intéressants, mais je dois m'arrêter quelque part!


Article de blog à propos de Utiliser Django pour construire un site à fort trafic michaelmoore.com décrit comme un top 10 000 site web. Statistiques de Quantcast et stats de competition.com.


(*) L'auteur de l'édition, y compris une telle référence, travaillait en tant que développeur sous-traité dans ce projet.


709
2018-05-20 07:41



Nous faisons des tests de charge maintenant. Nous pensons pouvoir supporter 240 requêtes simultanées (un taux soutenu de 120 hits par seconde 24x7) sans dégradation significative des performances du serveur. Ce serait 432 000 visites par heure. Les temps de réponse ne sont pas petits (nos transactions sont importantes), mais notre performance de base ne subit aucune dégradation à mesure que la charge augmente.

Nous utilisons Django et MySQL Apache frontal. Le système d'exploitation est Red Hat Enterprise Linux (RHEL). 64 bits. Nous utilisons mod_wsgi en mode démon pour Django. Nous n'avons fait aucune optimisation de cache ou de base de données autre que pour accepter les valeurs par défaut.

Nous sommes tous dans une VM sur un Dell 64 bits avec (je pense) 32 Go de RAM.

Puisque la performance est presque la même pour 20 ou 200 utilisateurs simultanés, nous n'avons pas besoin de passer beaucoup de temps à peaufiner. Au lieu de cela, nous avons simplement besoin de maintenir nos performances de base grâce à des améliorations de performances SSL ordinaires, à la conception et à la mise en œuvre de bases de données ordinaires (indexation, etc.), aux améliorations de performances du pare-feu ordinaire, etc.

Ce que nous mesurons, c'est que nos ordinateurs portables de test de charge se débattent sous la charge de travail insensée de 15 processus exécutant 16 threads simultanés de demandes.


233
2018-05-20 11:16



Pas sûr du nombre de visites quotidiennes mais voici quelques exemples de grands sites Django:

Screencast sur la façon de déployer django avec la mise à l'échelle en tête http://ontwik.com/python/django-deployment-workshop-by-jacob-kaplan-moss/

Voici un lien vers la liste des sites Django à fort trafic sur Quora.


154
2017-11-16 04:00



Quel est le "plus grand" site construit sur Django aujourd'hui? (Je mesure la taille principalement par le trafic des utilisateurs)

Aux Etats-Unis, Mahalo. On me dit qu'ils traitent environ 10 millions d'uniques par mois.

À l'étranger, le Globo réseau (un réseau de sites de nouvelles, de sports et de divertissement au Brésil); Alexa les classe dans le top 100 mondial (environ 80ème actuellement).

D'autres utilisateurs notables de Django comprennent PBS, National Geographic, Discovery, NASA (en fait un certain nombre de divisions différentes au sein de la NASA), et la Bibliothèque du Congrès.

Django peut-il traiter quotidiennement avec 100 000 utilisateurs, chacun visitant le site pendant quelques heures?

Oui - mais seulement si vous avez bien écrit votre application, et si vous avez assez de matériel. Django n'est pas une balle magique.

Un site comme StackOverflow pourrait-il fonctionner sur Django?

Oui (mais voir ci-dessus).

Technologiquement, facilement: voir soclone pour une tentative. Du point de vue du trafic, StackOverflow concurrence moins de 1 million de visiteurs uniques par mois. Je peux nommer au moins une douzaine de sites Django avec plus de trafic que SO.


93
2018-05-20 06:33



Jouer l'avocat du diable un peu:

Vous devriez vérifier DjangoCon 2008 Keynote, livré par Cal Henderson, intitulé "Pourquoi je déteste Django" où il passe en revue tout ce qui manque à Django que vous pourriez vouloir faire dans un site à fort trafic. À la fin de la journée, vous devez prendre tout cela avec un esprit ouvert, car il est parfaitement possible d'écrire des applications Django à l'échelle, mais je pensais que c'était une bonne présentation et pertinente à votre question.


73
2018-05-21 01:36



La mise à l'échelle des applications Web ne concerne pas les cadres Web ou les langues, mais votre architecture. Il s'agit de savoir comment vous gérez le cache de votre navigateur, le cache de votre base de données, comment vous utilisez les fournisseurs de persistance non standard (comme CouchDB), quelle est votre base de données et beaucoup d'autres choses ...


57
2018-05-20 05:22



Le plus grand site de django que je connaisse est le Washington Post, ce qui indiquerait certainement qu'il pouvez bien mettre à l'échelle.

De bonnes décisions en matière de conception ont probablement un plus grand impact sur les performances qu'autre chose. Twitter est souvent cité comme un site qui incarne les problèmes de performance avec un autre framework Web basé sur un langage interprété dynamique, Ruby on Rails - mais les ingénieurs de Twitter ont déclaré que le framework ne pose pas autant de problèmes sur.

Django fonctionne très bien avec memcached et fournit des classes pour gérer le cache, ce qui vous permet de résoudre la majorité de vos problèmes de performances. Ce que vous fournissez sur le fil est presque plus important que votre backend dans la réalité - l'utilisation d'un outil comme yslow est essentielle pour une application web haute performance. Vous pouvez toujours ajouter plus de matériel à votre backend, mais vous ne pouvez pas changer la bande passante de vos utilisateurs.


45
2018-05-20 06:27