장고는 확장합니까? [닫은]


1135

Django로 웹 응용 프로그램을 작성 중입니다. 내가 Django를 선택한 이유는 다음과 같습니다.

  • 무료 / 오픈 소스 도구로 작업하고 싶었습니다.
  • 나는 파이썬을 좋아하고 그것이 장기 언어라고 생각하지만, 루비에 관해서는 확실하지 않았으며 PHP는 배우는 데 번거로운 것처럼 보였습니다.
  • 아이디어를위한 프로토 타입을 제작하고 있으며 미래에 대해 너무 많이 생각하지 않았습니다. 개발 속도가 주요 요소였으며 이미 Python을 알고있었습니다.
  • 향후에 선택하면 Google App Engine으로의 마이그레이션이 더 쉬울 것이라는 것을 알았습니다.
  • 장고가 "좋다"고 들었습니다.

이제 나는 출판물에 대한 생각이 점점 가까워지면서 규모에 대해 걱정하기 시작했다. Django의 확장 기능에 대해 내가 찾은 유일한 정보는 Django 팀에서 제공합니다 (나는 무시할 말이 없지만 분명히 객관적인 정보는 아닙니다 ...).

내 질문 :

  • 오늘날 Django에 구축 된 "가장 큰"사이트는 무엇입니까? (주로 사용자 트래픽으로 크기를 측정)
  • Django는 매일 2 시간 동안 사이트를 방문하는 100,000 명의 사용자를 처리 할 수 ​​있습니까 ?
  • Django에서 Stack Overflow와 같은 사이트를 실행할 수 있습니까?

2
아직 Django Book에서 확장에 대한 섹션을 읽어 보는 것이 좋습니다 : djangobook.com/en/1.0/chapter20 또는 최신 버전 : djangobook.com/en/2.0/chapter12
monkut

15
실행 속도 나 개발 노력에 대해 말하고 있는지 명확하게하기 위해 "속도가 주요 요소"를 수정하고 싶을 수도 있습니다. 개발 노력처럼 들리 겠지만 말이됩니다.
S.Lott

6
이것을 RoR과 비교하면 흥미로울 것입니다.
Kozyarchuk

6
@ ajkumar25, AFAIK disqus는 django blog.disqus.com/post/62187806135/…를 사용합니다 .
alxs

6
질문은what's the cost of scaling in the Django?
Sławomir Lenart

답변:


932
  1. "현재 Django에 구축 된 가장 큰 사이트는 무엇입니까?"

    Django 내장 사이트의 트래픽에 대한 정보를 수집하는 단일 장소가 없으므로 다양한 위치의 데이터를 사용하여 정보를 훔쳐 야합니다. 먼저 Django 메인 페이지의 첫 페이지에 Django 사이트 목록이 있고 djangosites.org 에 Django 빌드 사이트 목록이 있습니다 . 목록을 살펴보고 적절한 트래픽이있는 것을 선택하십시오.

  2. "Django는 매일 2 시간 동안 사이트를 방문하는 10 만 명의 사용자를 처리 할 수 ​​있습니까?"

    예, 위를 참조하십시오.

  3. "스택 오버플로와 같은 사이트가 Django에서 실행될 수 있습니까?"

    내 직감은 맞지만 다른 사람들이 대답하고 Mike Malone이 프레젠테이션에서 언급 한 것처럼 데이터베이스 디자인은 중요합니다. 신뢰할 수있는 트래픽 통계를 찾을 수있는 경우 www.cnprog.com에서도 강력한 증거를 찾을 수 있습니다. 어쨌든, 그것은 장고 모델을 함께 던져서 일어날 일이 아닙니다 :)

물론 더 많은 사이트와 관심있는 블로거가 있지만, 나는 어딘가에서 멈춰야합니다!


Django를 사용하여 트래픽이 많은 사이트 michaelmoore.com을 구축하는 방법 에 대한 블로그 게시물은 최고 10,000 개의 웹 사이트 로 설명됩니다 . Quantcast 통계compete.com 통계 .


(*) 참조를 포함한 편집 작성자는 해당 프로젝트에서 아웃소싱 개발자로 일했습니다.


267

우리는 지금 부하 테스트를하고 있습니다. 서버 성능을 크게 저하시키지 않으면 서 240 개의 동시 요청 (초당 24 회 연속 적중률 24x7)을 지원할 수 있다고 생각합니다. 그것은 시간당 432,000의 조회수입니다. 응답 시간은 작지 않지만 (트랜잭션은 크지 만)로드가 증가해도 기본 성능이 저하되지 않습니다.

우리는 Apache 프론트 엔드 Django와 MySQL을 사용하고 있습니다. OS는 RHEL (Red Hat Enterprise Linux)입니다. 64 비트. Django의 데몬 모드에서 mod_wsgi를 사용합니다. 기본값을 수락하는 것 외에는 캐시 또는 데이터베이스 최적화를 수행하지 않았습니다.

우리는 모두 32 비트 RAM을 갖춘 64 비트 Dell에서 하나의 VM에 있습니다.

20 또는 200 명의 동시 사용자에 대한 성능은 거의 동일하므로 "비틀기"에 많은 시간을 소비 할 필요가 없습니다. 대신 일반적인 SSL 성능 개선, 일반적인 데이터베이스 디자인 및 구현 (인덱싱 등), 일반적인 방화벽 성능 개선 등을 통해 기본 성능을 유지하기 만하면됩니다.

우리가 측정하는 것은 16 개의 동시 요청 스레드를 실행하는 15 개 프로세스의 미친 워크로드에서 어려움을 겪고있는로드 테스트 랩톱입니다.


3
궁금한 점은 : DB가 동일한 머신에서 실행됩니까, 아니면 별도의 서버입니까?
Jarret Hardie

16
Apache, Django 및 MySQL이 포함 된 하나의 VM mod_wsgi. RHEL.
S.Lott 2016 년

4
성능 지표에 대한 업데이트가 있습니까?
SexyBeast

1
웹 사이트 트래픽을 대기열로 생각하면 시간당 몇 개의 응답을 제공 할 수 있습니까? 응답 시간을 짧게 유지하면 더 많은 서비스를 제공 할 수 있고 '확장 성'이 향상됩니다. Zod 행성에서 Django, Twisted, Rails 또는 기술을 사용하더라도 실제로 중요하지 않습니다.
랄프 볼튼

2
나는 몇 년 동안 장고와 함께 일해 왔으며 대부분 읽기 전용 장난감 앱 이외의 다른 종류에서는 이런 종류의 성능을 본 적이 없습니다. 응용 프로그램의 특성은 무엇입니까? 템플릿, 미들웨어 또는 세션 또는 데이터베이스 연결 기능이있는 모든 것은이를 무시하기 위해 엄청난 양의 캐싱없이 초당 120 개의 적중을 지원하지 않습니다.
Cerin

176

일일 방문 횟수는 확실하지 않지만 다음은 장고 사이트의 몇 가지 예입니다.

다음은 Quora의 트래픽이 많은 장고 사이트 목록에 대한 링크 입니다.


107

오늘날 Django에 구축 된 "가장 큰"사이트는 무엇입니까? (주로 사용자 트래픽으로 크기를 측정)

미국에서는 Mahalo 였습니다 . 한 달에 약 1 천만 개의 고유 항목을 처리한다고합니다. 이제 2019 년에 Mahalo는 Ruby on Rails로 구동됩니다.

해외, Globo 네트워크 (브라질의 뉴스, 스포츠 및 엔터테인먼트 사이트 네트워크); Alexa는 전 세계에서 약 100 위 안에 들었습니다 (현재 약 80 위).

다른 장고 사용자로는 PBS, 내셔널 지오그래픽, 디스커버리, NASA (실제로는 NASA 내의 여러 부서) 및 의회 도서관이 있습니다.

Django는 매일 2 만 시간 동안 사이트를 방문하는 100 만 명의 사용자를 처리 할 수 ​​있습니까?

예.하지만 애플리케이션을 올바르게 작성하고 하드웨어가 충분한 경우에만 가능합니다. 장고는 마법의 총알이 아닙니다.

Django에서 StackOverflow와 같은 사이트를 실행할 수 있습니까?

예 (위 참조).

기술 측면에서 쉽게 : 한 번의 시도로 클론 을 보십시오 . 트래픽 측면에서 월간 백만 개 미만의 유니크로 페그 스택 오버 플로우를 경쟁하십시오. SO보다 트래픽이 많은 장고 사이트를 적어도 12 개 지정할 수 있습니다.


2
Django를 사용하여 링크 된 링크를 가정하면 초당 5000 개의 히트에 대한 대략적인 가격을 추정 할 수 있습니까? 평범한 프로그래머가 사이트를 구축하고 물론 캐싱을 추가했다고 가정합니다. 알고리즘은 (일을 빨리 만들기 위해) 아직 사용하지 않은 것으로 가정합니다.
user2349115

5
@ user2349115 응용 프로그램이 초당 '히트 당 5000'을 얻을 때까지는 잘못된 질문 인 이유를 이해하기에 충분한 배경 ​​지식이 있습니다.
Kye R

내 닌자 (wrapalyzer 브라우저 확장 프로그램)는 mahalo가 2019
Miles Davis

87

웹 앱 확장은 웹 프레임 워크 또는 언어가 아니라 아키텍처에 관한 것입니다. 브라우저 캐시, 데이터베이스 캐시, CouchDB 와 같은 비표준 지속성 공급자를 사용 하는 방법, 데이터베이스 및 기타 많은 것들을 어떻게 조정하는지에 관한 것입니다.


웹 프레임 워크가 중요합니다! 얼마나 빨리 봐 다른 파이썬 webframework에 비해 토네이도 : tornadoweb.org/documentation#performance
여호수아 Partogi

나는 공감하지는 않았지만 장고의 장점을 논의하면서 모든 데이터베이스를 사용할 수는 없으며 데이터베이스를 조정하고 주어진 프레임 워크에서 최대의 couchdb를 사용할 수 없기 때문에 주제에서 약간 벗어난 것으로 가정합니다. 물론, 큰 덩어리를 다시 쓰지 않는 한.
ZJR

8
@ ZLR 나는 주제를 벗어난 것으로 생각하지 않습니다. 당신이 바로 그 건축 방식 사용하면 거의 모든 현대적인 웹 프레임 워크에 관계없이 언어, 확장 할 수 있기 때문에 장고, 나는 그렇다고 대답, 확장 할 수 있는지 물었다
razenha

네, 토네이도 예제에 따르면 차단 대 비 차단 IO 중요합니다. 토네이도는 웹 프레임 워크는 아니지만 비 차단 IO를 활용하는 방식으로 애플리케이션을 작성해야합니다.
Rob Grant

Tornado를 사용하면 차단 IO 코드를 작성하는 것이 매우 쉽습니다. 그리고 그것은 높은 동시성을 제공하지 않습니다. 프레임 워크는 실제로 중요하지 않습니다.
Shiplu Mokaddim

80

악마의 옹호자를 약간 연주 :

Cal Henderson이 제공 한 "Django를 싫어하는 이유"라는 제목 의 DjangoCon 2008 Keynote를 확인해야합니다 . 하루의 끝에서 당신은 때문에 모든 열린 마음으로이를 취할 필요가 있다 장고 그 규모를 애플 리케이션을 쓸 수 있도록 완벽하게 가능하지만, 나는 귀하의 질문에 좋은 프리젠 테이션 및 관련 생각했다.


3
또한 Flickr는 하루 만에 제작되지 않았습니다.
Deniz Dogan

34
Cal이 겪은
Dolph

51

내가 아는 가장 큰 장고 사이트는이다 워싱턴 포스트 는 것을 확실히를 나타냅니다, 수있는 확장 성.

올바른 디자인 결정은 다른 것보다 성능에 더 큰 영향을 줄 수 있습니다. 트위터는 종종 다른 동적 해석 언어 기반 웹 프레임 워크 인 Ruby on Rails의 성능 문제를 구현하는 사이트로 인용됩니다. 그러나 트위터 엔지니어들은 프레임 워크가 초기에 선택한 일부 데이터베이스 디자인만큼 큰 문제는 아니라고 언급했습니다. 의 위에.

Django는 memcached와 매우 잘 작동하며 대부분의 성능 문제를 해결할 캐시 관리를위한 클래스를 제공합니다. 와이어로 제공하는 것은 실제로 백엔드보다 훨씬 중요합니다. 고성능 웹 애플리케이션에는 yslow와 같은 도구를 사용하는 것이 중요합니다. 백엔드에서 항상 더 많은 하드웨어를 처리 할 수 ​​있지만 사용자 대역폭을 변경할 수는 없습니다.


1
washingtonpost.com의 일부만이 Django에서 운영됩니까? Django 프론트 페이지는 그것이 단지 projects.washingtonpost.com/congress
Xiong Chiamiov

3
워싱턴 포스트를 워싱턴 타임즈와 혼동하고있을 수 있습니다. 나는 타임즈가 모두 장고에 있다고 생각하지만 훨씬 작은 종이입니다.
Eli

32

나는 다른 주에 EuroDjangoCon 회의에 있었고, 이것은 가장 큰 Django 기반 사이트 Pownce의 창립자 ( 여기 에서 한 슬라이드에서 슬라이드)를 포함하여 몇 가지 대화의 주제였습니다 . 주요 메시지는 Django가 걱정할 필요는 없지만 적절한 캐싱,로드 밸런싱, 데이터베이스 최적화 등과 같은 것들입니다.

Django는 실제로 대부분의 것들에 대한 고리를 가지고 있습니다. 특히 캐싱은 매우 쉽습니다.


24

더 확실한 답변을 찾고 있다고 확신하지만, 내가 생각할 수있는 가장 분명한 객관적인 유효성 검사는 Google이 Django를 App Engine 프레임 워크 와 함께 사용하도록 푸시한다는 것입니다 . 확장 성을 알고 정기적으로 알고있는 사람은 누구나 Google입니다. 내가 읽은 것에서 가장 제한적인 요소는 데이터베이스 백엔드 인 것처럼 보이므로 Google이 자체적으로 사용하는 이유는 ...


Django / Python을 홍보하는 것은 C ++ 이후 '기타'언어를 선택하면서 Python을 홍보하는 Google의 정책과 더 관련이 있습니까?
GuruM

내가 GAE를 사용했다하면 ... 아주 가까이 토네이도 같은 것이 었습니다
루이스 Masuelli

18

고성능 장 고서에 언급 된 바와 같이이 Cal Henderson을 살펴보십시오.

아래에 언급 된대로 추가 세부 사항을 참조하십시오.

사람들이 “Django does not scale” 이라고 말하는 것을 듣는 것은 드문 일 이 아닙니다 . 당신이 그것을 보는 방법에 따라, 진술은 완전히 사실이거나 특허 적으로 거짓입니다. 장고는 자체적으로 확장되지 않습니다.

Ruby on Rails, Flask, PHP 또는 데이터베이스 기반 동적 웹 사이트에서 사용하는 다른 언어에 대해서도 마찬가지입니다.

그러나 좋은 소식은 Django가 캐싱 및로드 밸런싱 도구와 아름답게 상호 작용하여 사용자가 던질 수있는 한 많은 트래픽으로 확장 할 수 있다는 것입니다.

온라인에서 읽은 내용과 달리 데이터베이스 ORM 또는 템플릿 계층과 같이 "너무 느리게"표시되는 핵심 구성 요소를 교체하지 않고도 읽을 수 있습니다.

Disqus는 한 달에 80 억 페이지 뷰를 제공합니다. 그것들은 엄청난 숫자입니다.

이 팀은 Django가 가장 확실하게 확장 성을 입증했습니다. Lincoln Loop에서의 경험은이를 뒷받침합니다.

우리는 땀을 흘리지 않고 Reddit 홈페이지에서 하루를 보낼 수있는 큰 장고 사이트를 구축했습니다.

Django의 스케일링 성공 사례는이 시점에서 열거하기에는 거의 너무 많습니다.

Disqus, Instagram 및 Pinterest를 지원합니다. 좀 더 증거를 원하십니까? 인스 타 그램은 단 3 명의 엔지니어 (2 명은 백엔드 개발이 없음)로 장고에서 3 천만 명 이상의 사용자를 유지할 수있었습니다.


17

오늘날 우리는 많은 웹 앱과 사이트를 필요로합니다. 그들 대부분은 매우 유용합니다. 파이썬이나 장고에서 사용하는 것들을 보여 드리겠습니다.

워싱턴 포스트

Washington Post의 웹 사이트는 일일 신문과 함께 제공되는 매우 인기있는 온라인 뉴스 소스입니다. Django 웹 프레임 워크로 방대한 양의 조회수와 트래픽을 쉽게 처리 할 수 ​​있습니다. Washington Post - 52.2 million unique visitors (March, 2015)

NASA

National Aeronautics and Space Administration의 공식 웹 사이트는 진행중인 우주 탐사에 대한 뉴스, 사진 및 비디오를 찾을 수있는 곳입니다. 이 Django 웹 사이트는 많은 양의 조회수 및 트래픽을 쉽게 처리 할 수 ​​있습니다. 2 million visitors monthly

수호자

Guardian은 Guardian Media Group이 소유 한 영국 뉴스 및 미디어 웹 사이트입니다. 여기에는 The Guardian and The Observer 신문의 거의 모든 내용이 들어 있습니다. 이 거대한 데이터는 Django가 처리합니다. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

YouTube

우리는 모두 고양이 동영상을 업로드 할 수있는 곳으로 YouTube를 알고 있으며 실패합니다. 현존하는 가장 인기있는 웹 사이트 중 하나 인이 웹 사이트는 끝없는 비디오 엔터테인먼트를 제공합니다. 파이썬 프로그래밍 언어는 그 기능과 우리가 좋아하는 기능을 강화합니다.

드롭 박스

DropBox는 일상 생활의 일부가 된 온라인 문서 저장 혁명을 시작했습니다. 이제 거의 모든 것을 클라우드에 저장합니다. Dropbox를 사용하면 Python의 강력한 기능을 사용하여 거의 모든 것을 저장, 동기화 및 공유 할 수 있습니다.

측량 원숭이

Survey Monkey는 가장 큰 온라인 설문 조사 회사입니다. 재 작성된 Python 웹 사이트에서 매일 백만 건 이상의 응답을 처리 할 수 ​​있습니다.

쿼라

Quora는 온라인으로 질문을하고 개인 커뮤니티로부터 답변을받는 최고의 장소입니다. Python 웹 사이트에서 관련 커뮤니티 회원이 관련 결과를 답변, 편집 및 구성합니다.

조금

Bitly URL 단축 서비스 및 분석을위한 대부분의 코드는 모두 Python으로 빌드됩니다. 그들의 서비스는 하루에 수억 건의 이벤트를 처리 할 수 ​​있습니다.

레딧

Reddit은 인터넷 첫 페이지로 알려져 있습니다. 수천 개의 다른 카테고리를 기반으로 정보 또는 엔터테인먼트를 찾을 수있는 온라인 장소입니다. 게시물과 링크는 사용자가 생성하며 투표를 통해 최상위로 승격됩니다. Reddit의 많은 기능은 기능을 위해 Python을 사용합니다.

힙 뭉크

Hipmunk은 최고의 여행 사이트를 비교하여 최고의 거래를 찾는 온라인 소비자 여행 사이트입니다. 이 Python 웹 사이트 도구를 사용하면 목적지에 가장 저렴한 호텔과 항공편을 찾을 수 있습니다.

더 많은 정보를 원하시면 여기를 클릭하십시오 : 가장 인기있는 파이썬 및 장고 웹 사이트 , 장고 에서 잘 알려진 사이트


15

django를 집중적으로 사용하는 목록에 Instagram의 2011 년 Apple 앱을 추가 할 수도 있다고 생각 합니다.


12

예, 그럴 수 있습니다. Django with Python 또는 Ruby on Rails 일 수 있습니다. 여전히 확장됩니다.

몇 가지 다른 기술이 있습니다. 먼저 캐싱이 확장되지 않습니다. 하드웨어 밸런서 외에도 nginx와 균형을 이루는 여러 응용 프로그램 서버가있을 수 있습니다. 데이터베이스 측면에서 확장하려면 RDBMS 방식을 사용하는 경우 MySQL / PostgreSQL의 읽기 슬레이브를 사용하여 멀리 갈 수 있습니다.

Django의 트래픽이 많은 웹 사이트의 좋은 예는 다음과 같습니다.

  • 그들이 아직 있었을 때 Pownce .
  • 토론 (일반 공유 의견 관리자)
  • 모든 신문 관련 웹 사이트 : Washington Post 및 기타.

안전하다고 느낄 수 있습니다.


2
그냥
말해

3
Pownce dead가 확장 성 문제와 관련이 있다고 생각하지 않습니다.
Kedare

9

Django에 내장 된 비교적 유명한 것들의 목록은 다음과 같습니다.

  1. 가디언의 " MP 비용 조사 "앱

  2. Politifact.com ( (긍정적 인) 경험에 대해 이야기 하는 블로그 게시물이 있습니다. 사이트는 퓰리처를 수상했습니다.

  3. 뉴욕 타임즈 대표

  4. EveryBlock

  5. WaPo의 프로그래머 중 한 명인 Peter Harkins 는 자신의 블로그에 Django로 구축 한 모든 것을 나열합니다.

  6. 조금 낡았지만 LA 타임즈의 누군가 가 왜 장고와 함께 갔는지에 대한 기본 개요제공했습니다 .

  7. Onion의 AV 클럽은 최근 Drupal에서 Django로 옮겨졌습니다.

이 사이트들 중 다수가 하루에 100k 회 이상 히트 할 것으로 생각합니다. 장고는 확실히 하루에 100k 명중을 할 수 있습니다. 그러나 YMMV는 건물에 따라 특정 사이트를 제공합니다.

Django 레벨에는 캐싱 옵션이 있습니다 (예를 들어 memcached의 캐싱 쿼리 세트 및 뷰 캐싱 은 놀라운 일이 될 수 있습니다) 및 그 이상 ( 오징어 와 같은 업스트림 캐시 ). 데이터베이스 서버 사양도 조정 한 정도에 따라 중요한 요소가됩니다. 예를 들어 Django가 인덱스를 올바르게 설정한다고 가정하지 마십시오. 기본 PostgreSQL 또는 MySQL 구성이 올바른 것으로 가정하지 마십시오 .

또한 소프트웨어 또는 하드웨어로드 밸런서가 앞에있는 Django를 느리게 실행하는 여러 애플리케이션 서버를 항상 선택할 수 있습니다.

마지막으로 Django와 동일한 서버에서 정적 콘텐츠를 제공하고 있습니까? Apache 또는 nginx 또는 lighttpd 와 같은 것을 사용하고 있습니까? 정적 컨텐츠에 CDN 을 사용할 여유가 있습니까? 이것들은 생각할 것이지만 모두 매우 추측 적입니다. 하루에 100k 조회가 유일한 변수는 아닙니다. 지출하고 싶은 금액은 얼마입니까? 이러한 모든 구성 요소를 관리하는 전문 지식이 어느 정도입니까? 얼마나 많은 시간을 함께 가져야합니까?


9

YouTube 개발자 옹호자 는 PyCon 2012에서 Python 스케일링에 대해 이야기했으며 Django 스케일링과 관련이 있습니다.

YouTube에는 10 억 명 이상의 사용자 가 있으며 YouTube는 Python을 기반으로합니다.


3
그러나 YouTube는 장고로 제작되지 않았습니다. 파이썬은 빠르지 만 장고에게는 빠르지 않습니다.
Joshua Partogi

4
그러나 중요한 것은 장고가 성장함에 따라 속도 리팩토링을위한 좋은 토대에 있으며 Google이 Unladen Swallow와 같은 프로젝트에서 작업하면 더 나아질 것이라는 점입니다.
orokusaki

7

나는 1 년 넘게 Django를 사용해 왔으며, 모듈성, 확장 성 및 개발 속도를 결합하는 방법에 매우 감명 받았습니다. 다른 기술과 마찬가지로 학습 곡선이 함께 제공됩니다. 그러나이 학습 곡선은 Django 커뮤니티의 훌륭한 문서로 인해 훨씬 ​​가파르 지 않습니다. Django는 내가 던진 모든 것을 실제로 잘 처리 할 수있었습니다. 미래에 잘 확장 될 수있을 것 같습니다.

BidRodeo Penny Auctions 는 Django 기반 웹 사이트입니다. 매우 역동적 인 웹 사이트이며 하루에 많은 페이지 뷰를 처리합니다.


6

하루에 10 만 명의 사용자가 한 번에 몇 시간 동안 활동할 것으로 예상한다면 (최대 동시 사용자 20K 이상) 서버가 많이 필요합니다. SO에는 ~ 15,000 명의 등록 된 사용자가 있으며 대부분의 사용자는 매일 활동하지 않을 수 있습니다. 대부분의 트래픽은 등록되지 않은 사용자로부터 발생하지만 몇 분 동안 사이트에 머무르는 사람은 거의 없을 것입니다 (예 : Google 검색 결과를 따른 다음 떠나는 경우).

이 볼륨의 경우 최소 30 대의 서버가 필요합니다. 서버 당 여전히 1,000 명이 넘는 동시 사용자입니다.


2
SO가 3 대의 서버 만 사용하는 것은 팟 캐스트에서 나타납니다. 그러나 SO는 Python이 아닌 C #을 사용하여 빌드되므로 찢어집니다.
S.Lott

1
분명히 질문은 다음과 같습니다. 서버는 얼마나 강력합니까?
mamcx 2016 년

6

오늘날 Django에 구축 된 "가장 큰"사이트는 무엇입니까? (주로 사용자 트래픽으로 크기를 측정) Pinterest
disqus.com
여기 더 : https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

Django는 매일 2 시간 동안 사이트를 방문하는 100,000 명의 사용자를 처리 할 수 ​​있습니까?
예. 그러나 적절한 아키텍처, 데이터베이스 디자인, 캐시 사용,로드 밸런스 및 여러 서버 또는 노드 사용

Django에서 Stack Overflow와 같은 사이트를 실행할 수 있습니까?
예, 두 번째 질문에 언급 된 답변을 따라야합니다.


5

또 다른 예는 러시아 운송 시간표 서비스 인 rasp.yandex.ru입니다. 참석하면 요구 사항을 충족시킵니다.


5

정적 콘텐츠가있는 사이트가있는 경우 니스를 서버를 앞에두면 성능이 크게 향상됩니다. 단일 박스조차도 100 Mbit / s의 트래픽을 쉽게 뱉어 낼 수 있습니다.

동적 콘텐츠에서는 니스와 같은 것을 사용하는 것이 훨씬 까다로워집니다.


1
여기서 문제는 광택이 모든 성능을 크게 향상시킵니다. 더 빠른 프레임 워크는 여전히 더 빠릅니다.
ZJR

5

Django에 대한 나의 경험은 최소한이지만 Django Book에는 더 큰 Django 응용 프로그램을 실행하는 사람들을 인터뷰하는 장이 있다는 것을 기억합니다. 여기 링크가 있습니다. 통찰력을 얻을 수 있다고 생각합니다.

curse.com은 한 달에 약 6 억 ~ 9 천만 페이지 뷰를 가진 가장 큰 Django 애플리케이션 중 하나라고 말합니다.


1
curse.com URL은 이제 .aspx로 끝납니다 ... (
만들면

5

아일랜드 국영 방송사를 위해 Django를 사용하여 교통량이 많은 사이트를 개발합니다. 그것은 우리에게 잘 작동합니다. 고성능 사이트를 개발하는 것은 단순히 프레임 워크를 선택하는 것 이상입니다. 프레임 워크는 가장 약한 링크만큼 강력한 시스템의 일부일뿐입니다. 데이터베이스 쿼리가 느리거나 서버 또는 네트워크가 잘못 구성된 경우 최신 프레임 워크 'X'를 사용해도 성능 문제가 해결되지 않습니다.


4

여기에 많은 훌륭한 답변이 있었음에도 불구하고 아무도 강조하지 않았 음을 지적합니다.

응용 프로그램에 따라 다릅니다

당신이 쓰는 것보다 DB에서 더 많은 데이터를 읽는 것처럼 응용 프로그램이 쓰기에 적다면. 그런 다음 장고 스케일링은 사소한 것이어야합니다. 즉, 상자에서 곧바로 꽤 괜찮은 출력 /보기 캐싱이 제공됩니다. 이를 활용하여 캐시 공급자로 redis를 사용하고로드 밸런서를 앞에 놓고 n 인스턴스를 스핀 업하면 매우 많은 양의 트래픽을 처리 할 수 ​​있어야합니다.

이제 초당 수천 번의 복잡한 쓰기 작업을해야합니까? 다른 이야기. 장고는 나쁜 선택입니까? 반드시 솔루션을 설계하는 방법과 요구 사항에 따라 달라지는 것은 아닙니다.

그냥 내 두 센트 :-)




3

문제는 장고가 확장 가능한지 알 수 없습니다.

올바른 방법은 django / symfony / rails 프로젝트에서 확장 할 네트워크 디자인 패턴과 도구를 이해하고 아는 것입니다.

몇 가지 아이디어는 다음과 같습니다.

  • 멀티플렉싱.
  • 역 프록시. 예 : Nginx, 광택
  • Memcache 세션. 예 : 레디 스
  • 로드 밸런싱 및 내결함성을위한 프로젝트 및 DB 클러스터링 : Ex : Docker
  • 자산을 저장하려면 타사를 사용하십시오. 예 : Amazon S3

조금 도움이되기를 바랍니다. 이것은 산에 내 작은 바위입니다.


3

오픈 소스를 사용하려면 많은 옵션이 있습니다. 그러나 파이썬에는 많은 라이브러리와 매우 멋진 커뮤니티가 있기 때문에 가장 좋습니다. 당신의 마음을 바꿀 수있는 몇 가지 이유가 있습니다 :

  • 파이썬은 매우 좋지만 해석 속도가 느려집니다. 그러나이 문제를 부분적으로 해결하는 많은 가속기 및 캐싱 서비스가 있습니다.

  • 빠른 개발을 생각하고 있다면 Ruby on Rails가 가장 좋습니다. 이 ROR 프레임 워크의 주요 모토는 개발자에게 편안한 경험을 제공하는 것입니다. Ruby와 Python을 비교하면 거의 동일한 구문이 있습니다.

  • Google App Engine은 매우 훌륭한 서비스이지만 범위 내에서 귀하를 구속 할 것이며 새로운 것을 실험 할 기회를 얻지 못합니다. 대신 Digital Ocean 클라우드를 사용할 수 있으며 가장 간단한 액 적에 대해 월 5 달러의 요금 만 청구됩니다. Heroku 는 제품을 배포 할 수있는 또 다른 무료 서비스입니다.

  • 예! 예! 당신이 들었던 것은 완전히 정확하지만 다른 기술을 사용하는 몇 가지 예가 있습니다.

    • 레일 : Github, Twitter (이전), Shopify, Airbnb, Slideshare, Heroku 등
    • PHP : Facebook, Wikipedia, Flickr, Yahoo, Tumbler, Mailchimp 등

결론은 프레임 워크이거나 언어가 모든 것을 수행하지는 않습니다. 더 나은 아키텍처, 디자인 및 전략은 확장 가능한 웹 사이트를 제공합니다. Instagram이 가장 큰 예입니다.이 소규모 팀은 이러한 거대한 데이터를 관리하고 있습니다. 다음은 아키텍처에 대한 블로그 중 하나 입니다.


장고 개발은 매우 빠릅니다. Django는 마감일이있는 완벽 주의자를위한 웹 프레임 워크입니다.
les

3

나는 그것이 장고 스케일링에 관한 문제라고 생각하지 않습니다.

스케일링 요구 사항에 도움이 될 아키텍처를 살펴볼 것을 제안합니다. 성능! = 스케일. 놀라운 성능을 발휘하지만 확장 할 수 없으며 그 반대의 시스템도 사용할 수 있습니다.

응용 프로그램 데이터베이스가 바인딩되어 있습니까? 그렇다면 규모 문제도 있습니다. Django의 데이터베이스와 어떻게 상호 작용할 계획입니까? Django가 요청을 수락하는 한 데이터베이스가 요청을 처리 할 수 ​​없을 때 어떻게됩니까? 데이터가 하나의 물리적 시스템을 능가 할 때 발생하는 상황 그러한 상황을 다루는 방법을 설명해야합니다.

또한 트래픽이 하나의 앱 서버를 초과하면 어떻게됩니까? 이 경우 세션을 처리하는 방법은 까다로울 수 있습니다. 공유 공유 아키텍처가 필요할 수도 있습니다. 다시 한 번 응용 프로그램에 따라 다릅니다.

짧은 언어 는 규모를 결정하는 것이 아니며, 언어는 성능을 담당합니다 (애플리케이션에 따라 다른 언어가 다르게 수행됨). 스케일링을 현실로 만드는 것은 귀하의 설계 및 아키텍처입니다.

도움이 되길 바랍니다. 궁금한 점이 있으면 더 도움을 드리겠습니다.


2

사이트 / 애플리케이션이 성장하기 시작하면 DB, 파일, 이미지, CSS 등을 포함한 모든 측면을 짧게 최적화하고로드를 다른 여러 리소스와 밸런싱해야합니다. 또는 성장할 공간을 더 확보하십시오. CDN, Cloud와 같은 최신 기술을 구현하려면 거대한 사이트가 있어야합니다. 응용 프로그램을 개발하고 조정 만해도 만족스러운 결과를 얻을 수 없으며 다른 구성 요소도 중요한 역할을합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.