Apakah Django berskala? [Tutup]

1136

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

  • Saya ingin bekerja dengan alat gratis / sumber terbuka.
  • Saya suka Python dan merasa itu adalah bahasa jangka panjang , sedangkan mengenai Ruby saya tidak yakin, dan PHP sepertinya 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 depan.
  • Saya mendengar Django "baik".

Sekarang saya semakin dekat dengan berpikir tentang menerbitkan karya saya, saya mulai khawatir tentang skala. Satu-satunya informasi yang saya temukan tentang kemampuan penskalaan Django disediakan oleh tim Django (saya tidak mengatakan apa-apa untuk mengabaikannya, tetapi ini jelas bukan informasi obyektif ...).

Pertanyaan saya:

  • Apa situs "terbesar" yang dibangun di Django hari ini? (Saya mengukur ukuran sebagian besar berdasarkan lalu lintas pengguna)
  • Bisakah Django berurusan dengan 100.000 pengguna setiap hari , masing-masing mengunjungi situs selama beberapa jam?
  • Bisakah situs seperti Stack Overflow berjalan di Django?
Roee Adler
sumber
2
Jika Anda belum melakukannya, saya sarankan membaca bagian tentang penskalaan dalam The Django Book: djangobook.com/en/1.0/chapter20 Atau versi yang lebih baru: djangobook.com/en/2.0/chapter12
monkut
15
Mungkin ingin memperbaiki "kecepatan adalah faktor utama" untuk mengklarifikasi jika Anda berbicara tentang kecepatan eksekusi atau upaya pengembangan. Kedengarannya seperti upaya pengembangan, yang masuk akal.
S.Lott
6
Akan menarik untuk membandingkan ini dengan RoR.
Kozyarchuk
6
@ ajkumar25, AFAIK disqus menggunakan django blog.disqus.com/post/62187806135/… .
alxs
6
pertanyaannya seharusnyawhat's the cost of scaling in the Django?
Sławomir Lenart

Jawaban:

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

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

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

    Ya, lihat di atas.

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

    Perasaan saya adalah ya tetapi, ketika orang lain menjawab 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 andal. Bagaimanapun, ini bukan hanya sesuatu yang akan terjadi dengan menyatukan banyak model Django :)

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


Posting blog tentang Menggunakan Django untuk membangun situs dengan lalu lintas tinggi yang disebut michaelmoore.com sebagai 10.000 situs web teratas . Statistik Quantcast dan statistik Compet.com .


(*) Penulis hasil edit, termasuk referensi tersebut, digunakan untuk bekerja sebagai pengembang outsourcing dalam proyek itu.

Van Gale
sumber
267

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

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

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

Karena kinerjanya hampir sama untuk 20 atau 200 pengguna secara bersamaan, kita tidak perlu menghabiskan banyak waktu untuk "mengutak-atik". Sebagai gantinya, kami hanya perlu menjaga kinerja dasar kami melalui peningkatan kinerja SSL biasa, desain dan implementasi basis data biasa (pengindeksan, dll.), Peningkatan kinerja firewall biasa, dll.

Apa yang kami ukur adalah laptop uji beban kami yang berjuang di bawah beban kerja gila dari 15 proses yang menjalankan 16 utas permintaan secara bersamaan.

S.Lott
sumber
3
Juga ingin tahu: apakah DB Anda berjalan pada mesin yang sama, atau server yang terpisah?
Jarret Hardie
16
Satu VM dengan Apache, Django dan MySQL. mod_wsgi. RHEL.
S.Lott
4
Adakah pembaruan tentang metrik kinerja?
SexyBeast
1
Anda membuat poin yang bagus - jika Anda menganggap lalu lintas situs web Anda sebagai antrian, lalu berapa banyak respons yang dapat Anda layani per jam? Jika waktu respons Anda singkat, Anda dapat melakukan lebih banyak, dan karenanya memiliki 'skalabilitas lebih besar' - tidak masalah jika Anda menggunakan Django, Twisted, Rails, atau teknologi dari planet Zod.
Ralph Bolton
2
Saya sudah bekerja dengan Django selama bertahun-tahun, dan saya belum pernah melihat kinerja semacam ini selain aplikasi mainan yang kebanyakan hanya baca-saja. Apa sifat aplikasi Anda? Apa pun dengan templat atau middleware atau sesi atau konektivitas basis data tidak akan pernah mendukung 120 klik per detik tanpa sejumlah besar caching untuk mem-bypass semua itu.
Cerin
107

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

Di AS, itu adalah Mahalo . Saya diberitahu bahwa mereka menangani sekitar 10 juta unik per bulan. Sekarang, pada 2019, Mahalo ditenagai oleh Ruby on Rails.

Di luar negeri, jaringan Globo (jaringan situs berita, olahraga, dan hiburan di Brasil); Alexa menempatkan mereka di peringkat 100 teratas secara global (sekitar 80 saat ini).

Pengguna Django terkenal lainnya termasuk PBS, National Geographic, Discovery, NASA (sebenarnya sejumlah divisi 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 telah menulis aplikasi dengan benar, dan jika Anda memiliki cukup perangkat keras. Django bukan peluru ajaib.

Bisakah situs seperti StackOverflow berjalan di Django?

Ya (tapi lihat di atas).

Dari segi teknologi, mudah: lihat soclone untuk satu upaya. Dari segi lalu lintas, bersaing pasak StackOverflow di bawah 1 juta unik per bulan. Saya dapat menyebutkan setidaknya selusin situs Django dengan lebih banyak lalu lintas daripada SO.

jacobian
sumber
2
Bisakah Anda perkirakan perkiraan harga untuk 5000 hit per detik, dengan asumsi seperti linkedin, menggunakan Django. Asumsikan programmer rata-rata telah membangun situs dan ofcourse menambahkan caching. Asumsikan bahwa algoritma dll (untuk mempercepat) tidak digunakan karena saya belum menggunakannya.
user2349115
5
@ user2349115 pada saat aplikasi Anda mendapat 5000 'hits per detik' Anda akan memiliki pengetahuan latar belakang yang cukup untuk memahami mengapa itu pertanyaan yang salah untuk ditanyakan.
Kye R
Ninja saya (ekstensi browser wrappalyzer) mengatakan bahwa mahalo adalah ruby ​​pada rel didukung sekarang pada Maret 2019.
Miles Davis
87

Scaling aplikasi Web bukan tentang kerangka kerja web atau bahasa, ini tentang arsitektur Anda. Ini tentang bagaimana Anda menangani cache browser Anda, cache database Anda, bagaimana Anda menggunakan penyedia kegigihan non-standar (seperti CouchDB ), bagaimana menyesuaikan database Anda dan banyak hal lainnya ...

razenha
sumber
Kerangka kerja web memang penting! Lihat seberapa cepat tornado dibandingkan dengan webfram python lainnya: tornadoweb.org/documentation#performance
Joshua Partogi
Saya tidak mengundurkan diri, tetapi saya kira Anda sedikit keluar dari topik ketika mereka membahas manfaat Django dan Anda tidak dapat menggunakan setiap basis data, menyetel basis data Anda dan menggunakan couchdb secara maksimal dalam setiap kerangka kerja yang diberikan. Kecuali Anda tidak, tentu saja, menulis ulang potongan besar itu.
ZJR
8
@ZLR saya tidak percaya saya keluar topik. Dia bertanya apakah Django dapat meningkatkan skala, saya menjawab ya, karena hampir semua kerangka kerja web modern, apa pun bahasanya, dapat meningkatkan skala jika Anda menggunakan pendekatan arsitektur yang tepat
razenha
Ya, memblokir vs nonblocking IO itu penting, seperti contoh Tornado. Meskipun mengatakan itu, Tornado bukan kerangka kerja web, tetapi aplikasi Anda harus ditulis dengan cara yang memanfaatkan nonblocking IO.
Rob Grant
Dengan Tornado sangat mudah untuk menulis pemblokiran kode IO. Dan itu tidak memberikan konkurensi tinggi. Kerangka sebenarnya tidak masalah.
Shiplu Mokaddim
80

Bermain sebagai penasihat iblis sedikit:

Anda harus memeriksa Keynote DjangoCon 2008 , yang disampaikan oleh Cal Henderson , berjudul "Mengapa saya membenci Django" di mana ia cukup banyak membahas semua yang hilang yang mungkin ingin dilakukan Django di situs web dengan lalu lintas tinggi. Pada akhir hari Anda harus mengambil semua ini dengan pikiran terbuka karena ini sangat mungkin untuk menulis Django apps skala itu, tapi saya pikir itu adalah presentasi yang baik dan relevan dengan pertanyaan Anda.

Paolo Bergantino
sumber
3
Juga, Flickr tidak dibangun dalam sehari.
Deniz Dogan
34
Tampaknya beberapa masalah yang dihinggapi Cal saat ini adalah fitur standar: docs.djangoproject.com/en/dev/topics/db/multi-db
Dolph
51

Situs django terbesar yang saya tahu adalah Washington Post , yang tentunya akan menunjukkan bahwa ia dapat berkembang dengan baik.

Keputusan desain yang baik mungkin memiliki dampak kinerja yang lebih besar daripada yang lain. Twitter sering disebut sebagai situs yang mewujudkan masalah kinerja dengan kerangka kerja web berbasis bahasa yang ditafsirkan dinamis lainnya, Ruby on Rails - namun insinyur Twitter telah menyatakan bahwa kerangka tersebut tidak sebanyak masalah seperti beberapa pilihan desain database yang mereka buat sejak 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 hasilkan pada kawat hampir lebih penting daripada backend Anda pada 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.

Bayard Randel
sumber
1
Bukankah hanya sebagian dari washingtonpost.com yang berjalan di Django? Halaman depan Django tampaknya menunjukkan itu hanya projects.washingtonpost.com/congress
Xiong Chiamiov
3
Anda mungkin membingungkan Washington Post dengan Washington Times. Saya percaya Times semua ada di Django, tapi itu kertas yang jauh lebih kecil.
Eli
32

Saya berada di konferensi EuroDjangoCon minggu lalu, dan ini adalah subjek dari beberapa pembicaraan - termasuk dari para pendiri apa yang merupakan situs berbasis Django terbesar, Pownce (slide dari satu pembicaraan di sini ). Pesan utama adalah bahwa itu bukan Django yang harus Anda khawatirkan, tetapi hal-hal seperti caching yang tepat, load balancing, optimasi database, dll.

Django sebenarnya memiliki kait untuk sebagian besar dari hal-hal itu - terutama caching dibuat sangat mudah.

Daniel Roseman
sumber
24

Saya yakin Anda sedang mencari jawaban yang lebih solid, tetapi validasi objektif paling jelas yang dapat saya pikirkan adalah bahwa Google mendorong Django untuk digunakan dengan kerangka kerja App Engine-nya . Jika ada yang tahu tentang dan berurusan dengan skalabilitas secara teratur, itu Google. Dari apa yang saya baca, faktor yang paling membatasi tampaknya adalah back-end database, itulah sebabnya Google menggunakan ...

jess
sumber
Mempromosikan Django / Python mungkin lebih terkait dengan kebijakan Google mempromosikan Python sebagai pilihan bahasa 'Lainnya' setelah C ++?
GuruM
Ketika saya harus menggunakan GAE, itu cukup dekat dengan sesuatu seperti Tornado ...
Luis Masuelli
18

Sebagaimana dinyatakan dalam Buku Django Kinerja Tinggi dan Ikuti ini Cal Henderson ini

Lihat detail lebih lanjut seperti yang disebutkan di bawah ini:

Bukan hal yang aneh untuk mendengar orang mengatakan "Django tidak berskala" . Bergantung pada bagaimana Anda melihatnya, pernyataan itu sepenuhnya benar atau salah. Django, sendiri, tidak berskala.

Hal yang sama dapat dikatakan tentang Ruby on Rails, Flask, PHP, atau bahasa lain apa pun yang digunakan oleh situs web dinamis berbasis database.

Namun, kabar baiknya adalah bahwa Django berinteraksi dengan indah dengan serangkaian alat caching dan load balancing yang akan memungkinkannya untuk meningkatkan lalu lintas sebanyak yang Anda bisa lakukan.

Berlawanan dengan apa yang mungkin Anda baca online, ia dapat melakukannya tanpa mengganti komponen inti yang sering berlabel "terlalu lambat" seperti ORM basis data atau lapisan templat.

Disqus melayani lebih dari 8 miliar tampilan halaman per bulan. Itu adalah sejumlah besar.

Tim-tim ini telah membuktikan Django pasti skala. Pengalaman kami di sini di Lincoln Loop mendukungnya.

Kami telah membangun situs Django besar yang dapat menghabiskan hari di beranda Reddit tanpa berkeringat.

Kisah sukses penskalaan Django hampir terlalu banyak untuk disebutkan pada saat ini.

Ini mendukung Disqus, Instagram, dan Pinterest. Ingin lebih banyak bukti? Instagram mampu mempertahankan lebih dari 30 juta pengguna di Django dengan hanya 3 insinyur (2 di antaranya tidak memiliki pengembangan back-end)

Mushahid Khan
sumber
17

Hari ini kami menggunakan banyak aplikasi dan situs web untuk kebutuhan kami. Kebanyakan dari mereka sangat bermanfaat. Saya akan menunjukkan kepada Anda beberapa dari mereka yang digunakan oleh python atau Django.

Washington Post

Situs web The Washington Post adalah sumber berita online yang sangat populer untuk menemani koran harian mereka. Sejumlah besar tampilan dan lalu lintas dapat dengan mudah ditangani oleh kerangka kerja Django. Washington Post - 52.2 million unique visitors (March, 2015)

NASA

Situs web resmi Badan Penerbangan dan Antariksa Nasional adalah tempat untuk menemukan berita, gambar, dan video tentang penjelajahan ruang angkasa yang sedang berlangsung. Situs web Django ini dapat dengan mudah menangani sejumlah besar tampilan dan lalu lintas. 2 million visitors monthly

Penjaga

The Guardian adalah situs berita dan media Inggris yang dimiliki oleh Guardian Media Group. Ini berisi hampir semua isi surat kabar The Guardian dan The Observer. Data besar ini ditangani oleh Django. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

Youtube

Kita semua tahu YouTube sebagai tempat untuk mengunggah video kucing dan gagal. Sebagai salah satu situs web paling populer yang ada, ia memberi kita jam hiburan video yang tak ada habisnya. Bahasa pemrograman Python mendukungnya dan fitur yang kami sukai.

DropBox

DropBox memulai revolusi penyimpanan dokumen online yang telah menjadi bagian dari kehidupan sehari-hari. Kami sekarang menyimpan hampir semua yang ada di cloud. Dropbox memungkinkan kita untuk menyimpan, menyinkronkan, dan berbagi hampir semua hal menggunakan kekuatan Python.

Survey Monkey

Survey Monkey adalah perusahaan survei online terbesar. Mereka dapat menangani lebih dari satu juta tanggapan setiap hari di situs web Python yang ditulis ulang.

Quora

Quora adalah tempat nomor satu online untuk mengajukan pertanyaan dan menerima jawaban dari komunitas individu. Di situs web Python mereka, hasil yang relevan dijawab, diedit, dan diorganisir oleh anggota komunitas ini.

Sedikit

Mayoritas kode untuk layanan pemendek dan analitik Bitly URL semuanya dibangun dengan Python. Layanan mereka dapat menangani ratusan juta acara per hari.

Reddit

Reddit dikenal sebagai halaman depan internet. Ini adalah tempat online untuk mencari informasi atau hiburan berdasarkan ribuan kategori berbeda. Posting dan tautan dibuat oleh pengguna dan dipromosikan ke atas melalui suara. Banyak kemampuan Reddit yang mengandalkan Python untuk fungsionalitasnya.

Hipmunk

Hipmunk adalah situs perjalanan konsumen online yang membandingkan situs perjalanan teratas untuk menemukan penawaran terbaik untuk Anda. Alat situs web Python ini memungkinkan Anda menemukan hotel dan penerbangan termurah untuk tujuan Anda.

Klik di sini untuk lebih: 25-of-the-terpopuler-python-and-django-websites , Apa-ada-beberapa-situs-terkenal-berjalan-di-Django

Simplans
sumber
15

Saya pikir kita mungkin juga menambahkan Aplikasi Apple tahun 2011, Instagram , ke daftar yang menggunakan Django secara intensif.

Milind
sumber
12

Ya bisa. Itu bisa Django dengan Python atau Ruby on Rails. Itu masih skala.

Ada beberapa teknik berbeda. Pertama, caching bukan scaling. Anda dapat memiliki beberapa server aplikasi yang seimbang dengan nginx sebagai bagian depan selain perangkat keras penyeimbang. Untuk skala di sisi database Anda bisa pergi jauh dengan membaca slave di MySQL / PostgreSQL jika Anda menggunakan cara RDBMS.

Beberapa contoh situs web lalu lintas berat di Django dapat berupa:

  • Pownce ketika mereka masih di sana.
  • Diskus (pengelola komentar bersama umum)
  • Semua situs web surat kabar terkait: Washington Post dan lainnya.

Anda bisa merasa aman.

coulix
sumber
2
Katakan saja ... jaringan sosial mati membuat contoh skalabilitas yang buruk :)
ZJR
3
Saya tidak berpikir kematian Pownce terkait dengan masalah skalabilitas.
Kedare
9

Berikut adalah daftar beberapa hal yang relatif tinggi yang dibangun di Django:

  1. The Guardian " Selidiki biaya MP Anda " app

  2. Politifact.com (di sini adalah posting Blog yang berbicara tentang pengalaman (positif). Situs memenangkan Pulitzer.

  3. NY Times Aplikasi Represent

  4. EveryBlock

  5. Peter Harkins, salah satu programmer di WaPo, mendaftar semua hal yang mereka buat dengan Django di blognya

  6. Ini agak tua, tetapi seseorang dari LA Times memberikan gambaran dasar mengapa mereka pergi dengan Django.

  7. AV Club Onion baru-baru ini dipindahkan dari (saya pikir Drupal) ke Django.

Saya membayangkan beberapa situs ini mungkin mendapatkan lebih dari 100 ribu + hit per hari. Django pasti dapat melakukan 100 ribu hit / hari dan banyak lagi. Tapi YMMV dalam mendapatkan situs khusus Anda di sana tergantung pada apa yang Anda buat.

Ada opsi caching di tingkat Django (misalnya kueri caching dan tampilan dalam memcached dapat bekerja dengan sangat baik) dan lebih jauh lagi (cache upstream seperti Squid ). Spesifikasi Server Database juga akan menjadi faktor (dan biasanya tempat untuk berbelanja secara Royal), seperti seberapa baik Anda menyetelnya. Jangan berasumsi, misalnya, bahwa Django akan mengatur indeks dengan benar. Jangan berasumsi bahwa konfigurasi PostgreSQL atau MySQL default adalah yang benar.

Selain itu, Anda selalu memiliki opsi untuk memiliki beberapa server aplikasi yang menjalankan Django jika itu adalah titik lambat, dengan penyeimbang beban perangkat lunak atau perangkat keras di depannya.

Akhirnya, apakah Anda menyajikan konten statis di server yang sama dengan Django? Apakah Anda menggunakan Apache atau sesuatu seperti nginx atau lighttpd ? Bisakah Anda menggunakan CDN untuk konten statis? Ini adalah hal-hal yang perlu dipikirkan, tetapi semuanya sangat spekulatif. 100rb hit / hari bukan satu-satunya variabel: berapa banyak yang ingin Anda belanjakan? Seberapa banyak keahlian yang Anda miliki dalam mengelola semua komponen ini? Berapa banyak waktu yang Anda miliki untuk menyatukan semuanya?

labirin
sumber
9

Pendukung pengembang untuk YouTube memberikan ceramah tentang penskalaan Python di PyCon 2012 , yang juga relevan dengan penskalaan Django.

YouTube memiliki lebih dari satu miliar pengguna , dan YouTube dibangun di atas Python.

orokusaki
sumber
3
Tapi youtube tidak dibangun dengan Django. Python mungkin cepat, tetapi tidak demikian untuk Django.
Joshua Partogi
4
Ya, tapi intinya adalah ketika Django tumbuh, ia duduk di atas landasan yang baik untuk anjak piutang dengan cepat dan dengan Google di luar sana mengerjakan proyek-proyek seperti Unladen Swallow, itu hanya akan menjadi lebih baik.
orokusaki
7

Saya telah menggunakan Django selama lebih dari setahun sekarang, dan saya sangat terkesan dengan bagaimana ia berhasil menggabungkan modularitas, skalabilitas, dan kecepatan pengembangan. Seperti halnya teknologi apa pun, ia dilengkapi dengan kurva belajar. Namun, kurva pembelajaran ini dibuat tidak terlalu curam dengan dokumentasi yang sangat baik dari komunitas Django. Django telah mampu menangani semua yang saya lemparkan dengan sangat baik. Sepertinya itu akan dapat berkembang dengan baik ke masa depan.

BidRodeo Penny Auctions adalah situs web bertenaga Django berukuran sedang. Ini adalah situs web yang sangat dinamis dan menangani jumlah tampilan halaman yang baik setiap hari.

Krystian Cybulski
sumber
6

Perhatikan bahwa jika Anda mengharapkan pengguna 100K per hari, yang aktif selama berjam-jam (artinya maks. 20K + pengguna bersamaan), Anda akan membutuhkan BANYAK server. SO memiliki ~ 15.000 pengguna terdaftar, dan kebanyakan dari mereka mungkin tidak aktif setiap hari. Sementara sebagian besar lalu lintas berasal dari pengguna yang tidak terdaftar, saya menduga sangat sedikit dari mereka yang tinggal di situs lebih dari beberapa menit (yaitu mereka mengikuti hasil pencarian google lalu pergi).

Untuk volume itu, perkirakan setidaknya 30 server ... yang masih merupakan 1.000 pengguna bersamaan yang agak berat per server.

Bip bip
sumber
2
Tampak dari podcast bahwa SO hanya menggunakan 3 server. Tapi SO dibangun menggunakan C #, bukan Python, jadi sobek.
S.Lott
1
Jelas pertanyaannya adalah: Berapa banyak server yang kuat?
mamcx
6

Apa situs "terbesar" yang dibangun di Django hari ini? (Saya mengukur ukuran sebagian besar berdasarkan lalu lintas pengguna) Pinterest
disqus.com
Lebih lanjut di sini: https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

Bisakah Django berurusan dengan 100.000 pengguna setiap hari, masing-masing mengunjungi situs selama beberapa jam?
Ya tetapi gunakan arsitektur yang tepat, desain basis data, penggunaan cache, gunakan saldo beban dan beberapa server atau node

Bisakah situs seperti Stack Overflow berjalan di Django?
Ya, hanya perlu mengikuti jawaban yang disebutkan dalam pertanyaan ke-2

Ranju R
sumber
5

Contoh lain adalah rasp.yandex.ru, layanan jadwal transportasi Rusia. Kehadirannya memenuhi kebutuhan Anda.

Glader
sumber
5

Jika Anda memiliki situs dengan beberapa konten statis, menempatkan server Varnish di depan akan secara dramatis meningkatkan kinerja Anda. Bahkan satu kotak kemudian dapat dengan mudah memuntahkan 100 Mbit / s lalu lintas.

Perhatikan bahwa dengan konten dinamis, menggunakan sesuatu seperti Varnish menjadi jauh lebih rumit.

Anders Rune Jensen
sumber
1
Masalahnya di sini adalah pernis akan secara dramatis meningkatkan kinerja segalanya. Dan kerangka kerja yang lebih cepat masih akan lebih cepat.
ZJR
5

Pengalaman saya dengan Django sangat minim tapi saya ingat di The Django Book mereka memiliki bab di mana mereka mewawancarai orang yang menjalankan beberapa aplikasi Django yang lebih besar. Berikut ini tautannya. Saya kira itu bisa memberikan beberapa wawasan.

Dikatakan curse.com adalah salah satu aplikasi Django terbesar dengan sekitar 60-90 juta tampilan halaman dalam sebulan.

tomeedee
sumber
1
curse.com url sekarang diakhiri dengan .aspx ... (tidak tahu apakah mereka membuatnya)
ZJR
5

Saya mengembangkan situs lalu lintas tinggi menggunakan Django untuk penyiar nasional di Irlandia. Ini bekerja dengan baik untuk kita. Mengembangkan situs berkinerja tinggi lebih dari sekadar memilih kerangka kerja. Kerangka kerja hanya akan menjadi satu bagian dari sistem yang sekuat tautan terlemahnya. Menggunakan kerangka kerja terbaru 'X' tidak akan menyelesaikan masalah kinerja Anda jika masalahnya adalah permintaan basis data yang lambat atau server atau jaringan yang tidak dikonfigurasi dengan benar.

ikan kakap merah
sumber
4

Meskipun-ada banyak jawaban yang bagus di sini, saya hanya ingin menunjukkan, bahwa tidak ada yang menekankan ..

Tergantung aplikasinya

Jika aplikasi Anda ringan pada penulisan, karena Anda membaca lebih banyak data dari DB daripada yang Anda tulis. Maka penskalaan Django harus cukup sepele, heck, itu datang dengan beberapa output / view cache yang cukup baik langsung dari kotak. Manfaatkan itu, dan katakanlah, redis sebagai penyedia cache, letakkan penyeimbang beban di depannya, putar n-instance dan Anda harus dapat menangani jumlah lalu lintas yang SANGAT besar.

Sekarang, jika Anda harus melakukan ribuan kompleks menulis sebentar? Cerita yang berbeda. Apakah Django akan menjadi pilihan yang buruk? Yah, belum tentu, tergantung pada bagaimana Anda merancang solusi Anda benar-benar, dan juga, apa kebutuhan Anda.

Hanya dua sen saya :-)

JustDanyul
sumber
3

Lihatlah agregator berita mikro ini yang disebut EveryBlock .

Semuanya ditulis dalam bahasa Django. Bahkan mereka adalah orang-orang yang mengembangkan kerangka Django itu sendiri.

siddu
sumber
everyblock.com melempar 503
Nishant Nawarkhede
3

Masalahnya adalah tidak tahu apakah Django dapat berkembang atau tidak.

Cara yang benar adalah memahami dan mengetahui pola desain dan alat jaringan mana yang akan ditempatkan di bawah proyek django / symfony / rails Anda untuk skala dengan baik.

Beberapa ide dapat berupa:

  • Multiplexing.
  • Proxy terbalik Contoh: Nginx, Varnish
  • Sesi Memcache. Mis: Redis
  • Klasterisasi pada proyek Anda dan db untuk keseimbangan beban dan toleransi kesalahan: Contoh: Docker
  • Gunakan pihak ketiga untuk menyimpan aset. Mis: Amazon S3

Semoga sedikit membantu. Ini adalah batu kecilku ke gunung.

guier
sumber
3

Jika Anda ingin menggunakan Open source maka ada banyak opsi untuk Anda. Tapi python adalah yang terbaik di antara mereka karena memiliki banyak perpustakaan dan komunitas yang luar biasa. Ini adalah beberapa alasan yang dapat mengubah pikiran Anda:

  • Python sangat bagus tetapi merupakan bahasa yang ditafsirkan yang membuatnya lambat. Tetapi ada banyak layanan akselerator dan caching yang sebagian memecahkan masalah ini.

  • Jika Anda berpikir tentang perkembangan cepat maka Ruby on Rails adalah yang terbaik di antara semuanya. Moto utama kerangka kerja ini (ROR) adalah untuk memberikan pengalaman yang nyaman bagi para pengembang. Jika Anda membandingkan Ruby dan Python, keduanya memiliki sintaks yang hampir sama.

  • Google App Engine adalah layanan yang sangat baik tetapi akan mengikat Anda dalam cakupannya, Anda tidak mendapatkan kesempatan untuk bereksperimen dengan hal-hal baru. Alih-alih, Anda dapat menggunakan awan Digital Ocean yang hanya akan mengambil biaya $ 5 / Bulan untuk tetesan paling sederhana. Heroku adalah layanan gratis lain di mana Anda dapat menggunakan produk Anda.

  • Iya! Iya! Apa yang Anda dengar sepenuhnya benar tetapi berikut adalah beberapa contoh yang menggunakan teknologi lain

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

Kesimpulannya adalah kerangka kerja atau bahasa tidak akan melakukan segalanya untuk Anda. Arsitektur, perancangan, dan strategi yang lebih baik akan memberi Anda situs web yang dapat diskalakan. Instagram adalah contoh terbesar, tim kecil ini mengelola data sebesar itu. Berikut ini satu blog tentang arsitekturnya yang harus dibaca.

pulkit
sumber
Perkembangan Django bisa sangat cepat. Django adalah kerangka kerja web untuk perfeksionis dengan tenggat waktu.
les
3

Saya kira masalahnya bukan tentang penskalaan Django.

Saya benar-benar menyarankan Anda melihat ke dalam arsitektur Anda itulah yang akan membantu Anda dengan kebutuhan scaling Anda. Jika Anda salah, tidak ada gunanya seberapa baik kinerja Django. Performa! = Skala. Anda dapat memiliki sistem yang memiliki kinerja luar biasa tetapi tidak skala dan sebaliknya.

Apakah basis data aplikasi Anda terikat? Jika demikian maka masalah skala Anda ada di sana juga. Bagaimana Anda berencana berinteraksi dengan database dari Django? Apa yang terjadi ketika database Anda tidak dapat memproses permintaan secepat Django menerimanya? Apa yang terjadi ketika data Anda melebihi satu mesin fisik. Anda perlu menjelaskan bagaimana Anda berencana menangani keadaan itu.

Selain itu, Apa yang terjadi ketika lalu lintas Anda melebihi satu server aplikasi? bagaimana Anda menangani sesi dalam hal ini bisa rumit, lebih sering daripada tidak, Anda mungkin akan memerlukan arsitektur apa-apa bersama. Sekali lagi itu tergantung pada aplikasi Anda.

Dalam bahasa pendek bukan yang menentukan skala, bahasa bertanggung jawab atas kinerja (sekali lagi tergantung pada aplikasi Anda, bahasa yang berbeda melakukan berbeda). Desain dan arsitektur Anda yang membuat penskalaan menjadi kenyataan.

Saya harap ini membantu, akan dengan senang hati membantu lebih lanjut jika Anda memiliki pertanyaan.

Anand Davis
sumber
2

Menyebarkan tugas secara merata, singkatnya, mengoptimalkan setiap aspek termasuk DB, File, Gambar, CSS dll. Dan menyeimbangkan beban dengan beberapa sumber daya lain diperlukan setelah situs / aplikasi Anda mulai tumbuh. ATAU Anda membuat lebih banyak ruang untuk tumbuh. Implementasi teknologi terbaru seperti CDN, Cloud harus dengan situs besar. Hanya mengembangkan dan mengutak-atik aplikasi tidak akan memberikan kepuasan persen Anda, komponen lain juga memainkan peran penting.

Ashwin
sumber