Pertanyaan Apakah skala Django? [Tutup]


Saya sedang membangun aplikasi web dengan Django. Alasan saya memilih Django adalah:

  • Saya ingin bekerja dengan alat gratis / open-source.
  • Saya suka Python dan merasa itu adalah bahasa "jangka panjang", sedangkan mengenai Ruby saya tidak yakin, dan PHP sepertinya sangat sulit untuk dipelajari.
  • Saya sedang membangun prototipe untuk sebuah ide dan tidak terlalu memikirkan masa depan. Kecepatan pengembangan adalah faktor utama, dan saya sudah tahu Python.
  • Saya tahu migrasi ke Google App Engine akan lebih mudah jika saya memilih untuk melakukannya di masa mendatang.
  • Saya mendengar Django "baik".

Sekarang saya semakin dekat untuk memikirkan tentang penerbitan karya saya, saya mulai khawatir tentang skala. Satu-satunya informasi yang saya temukan tentang kemampuan scaling dari Django disediakan oleh tim Django (saya tidak mengatakan apa pun untuk mengabaikannya, tetapi ini jelas bukan informasi yang obyektif ...).

Pertanyaan saya:

  • Apa situs "terbesar" yang dibangun di Django hari ini? (Saya mengukur ukuran sebagian besar oleh lalu lintas pengguna)
  • Bisakah Django menangani 100.000 pengguna setiap hari, masing-masing mengunjungi situs selama beberapa jam?
  • Mungkinkah situs seperti Stack Overflow berjalan di Django?

904
2018-05-20 05:07


asal


Jawaban:


  1. "Apa situs terbesar yang dibangun di Django hari ini?"

    Tidak ada satu pun tempat yang mengumpulkan informasi tentang lalu lintas di situs-situs yang dibuat Django, jadi saya harus menikamnya menggunakan data dari berbagai lokasi. Pertama, kami memiliki daftar situs Django di halaman depan halaman proyek Django utama dan kemudian daftar situs yang dibuat Django di djangosites.org. Melalui daftar dan memilih beberapa yang saya tahu memiliki lalu lintas yang layak kita lihat:

  2. "Bisakah Django menangani 100.000 pengguna setiap hari, masing-masing mengunjungi situs itu selama beberapa jam?"

    Ya, lihat di atas.

  3. "Mungkinkah situs seperti Stack Overflow berjalan di Django?"

    Perasaan saya adalah ya tapi, seperti yang orang lain jawab dan Mike Malone menyebutkan dalam presentasinya, desain database sangat penting. Bukti kuat juga dapat ditemukan di www.cnprog.com jika kami dapat menemukan statistik lalu lintas yang dapat diandalkan. Bagaimanapun, itu bukan hanya sesuatu yang akan terjadi dengan melemparkan bersama sekelompok model Django :)

Tentu saja ada banyak situs dan blogger yang menarik, tetapi saya harus berhenti di suatu tempat!


Posting blog tentang Menggunakan Django untuk membangun situs trafik tinggi michaelmoore.com digambarkan sebagai 10.000 situs web teratas. Statistik Quantcast dan statistik competition.com.


(*) Penulis suntingan, termasuk referensi tersebut, digunakan untuk bekerja sebagai pengembang yang di-outsource dalam proyek itu.


709
2018-05-20 07:41



Kami sedang melakukan pengujian beban sekarang. Kami pikir kami dapat mendukung 240 permintaan bersamaan (tingkat berkelanjutan 120 hit per detik 24x7) tanpa degradasi signifikan dalam kinerja server. Itu akan menjadi 432.000 hit per jam. Waktu respons tidak kecil (transaksi kami besar) tetapi tidak ada degradasi dari kinerja dasar kami saat beban meningkat.

Kami menggunakan Apache front-end Django dan MySQL. OS adalah Red Hat Enterprise Linux (RHEL). 64-bit. Kami menggunakan mod_wsgi dalam mode daemon untuk Django. Kami tidak melakukan pengoptimalan cache atau database selain untuk menerima default.

Kita semua dalam satu VM pada Dell 64-bit dengan (saya pikir) RAM 32GB.

Karena kinerja hampir sama untuk 20 atau 200 pengguna bersamaan, kita tidak perlu menghabiskan banyak waktu "tweaking". Sebaliknya kita hanya perlu menjaga kinerja dasar kita melalui peningkatan kinerja SSL biasa, desain dan implementasi database biasa (pengindeksan, dll.), Peningkatan kinerja firewall biasa, dll.

Apa yang kami lakukan adalah tes beban laptop yang berjuang di bawah beban kerja gila dari 15 proses yang menjalankan 16 rangkaian permintaan bersamaan.


233
2018-05-20 11:16



Tidak yakin tentang jumlah kunjungan harian tetapi ini adalah beberapa contoh situs Django besar:

Screencast tentang cara menyebarkan Django dengan skala dalam pikiran http://ontwik.com/python/django-deployment-workshop-by-jacob-kaplan-moss/

Berikut ini tautan ke daftar lalu lintas tinggi situs Django di Quora.


154
2017-11-16 04:00



Apa situs "terbesar" yang dibangun di Django hari ini? (Saya mengukur ukuran sebagian besar oleh lalu lintas pengguna)

Di Amerika, Mahalo. Saya diberitahu bahwa mereka menangani sekitar 10 juta uniques per bulan.

Luar negeri, yang Globo jaringan (jaringan situs berita, olahraga, dan hiburan di Brasil); Alexa menempatkan mereka di atas 100 secara global (sekitar 80 saat ini).

Pengguna Django terkenal lainnya termasuk PBS, National Geographic, Discovery, NASA (sebenarnya sejumlah divisi yang berbeda dalam NASA), dan Library of Congress.

Bisakah Django menangani 100 ribu pengguna setiap hari, masing-masing mengunjungi situs selama beberapa jam?

Ya - tetapi hanya jika Anda sudah menulis aplikasi Anda dengan benar, dan jika Anda punya cukup perangkat keras. Django bukan peluru ajaib.

Mungkinkah situs seperti StackOverflow berjalan di Django?

Ya (tapi lihat di atas).

Teknologi-bijaksana, mudah: lihat soclon untuk satu percobaan. Lalu lintas-bijaksana, bersaing pasak StackOverflow di bawah 1 juta unik per bulan. Saya dapat menyebutkan setidaknya puluhan situs Django dengan lebih banyak lalu lintas daripada SO.


93
2018-05-20 06:33



Bermain advokat iblis sedikit:

Anda harus memeriksa DjangoCon 2008 Keynote, dikirim oleh Cal Henderson, berjudul "Why I hate Django" di mana dia cukup banyak mengerjakan segala sesuatu yang hilang Django yang mungkin ingin Anda lakukan di situs web lalu lintas tinggi. Pada akhirnya, Anda harus mengambil semua ini dengan pikiran terbuka karena itu aku s sangat mungkin untuk menulis aplikasi Django yang skala, tapi saya pikir itu adalah presentasi yang baik dan relevan dengan pertanyaan Anda.


73
2018-05-21 01:36



Penskalaan aplikasi Web bukan tentang kerangka kerja web atau bahasa, adalah tentang arsitektur Anda. Ini tentang bagaimana Anda menangani cache browser, cache basis data Anda, bagaimana Anda menggunakan penyedia persistensi non-standar (seperti CouchDB), bagaimana tuned adalah database Anda dan banyak hal lainnya ...


57
2018-05-20 05:22



Situs Django terbesar yang saya tahu adalah Washington Post, yang tentu saja menunjukkan itu bisa skala baik.

Keputusan desain yang bagus mungkin memiliki dampak kinerja yang lebih besar daripada yang lain. Twitter sering dikutip sebagai situs yang mewujudkan masalah kinerja dengan kerangka kerja web lain yang diinterpretasikan bahasa dinamis, Ruby on Rails - namun para insinyur Twitter telah menyatakan bahwa kerangka kerja ini tidak terlalu menjadi masalah karena beberapa pilihan desain database yang mereka buat lebih awal. di.

Django bekerja sangat baik dengan memcached dan menyediakan beberapa kelas untuk mengelola cache, yang mana Anda akan menyelesaikan sebagian besar masalah kinerja Anda. Apa yang Anda sampaikan pada kabel hampir lebih penting daripada backend Anda dalam kenyataannya - menggunakan alat seperti yslow sangat penting untuk aplikasi web berkinerja tinggi. Anda selalu dapat membuang lebih banyak perangkat keras di backend Anda, tetapi Anda tidak dapat mengubah bandwidth pengguna Anda.


45
2018-05-20 06:27