python - 폴더 - 파이썬 템플릿




장고가 확장 할 수 있습니까? (20)

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

미국에서는, Mahalo . 한 달에 약 1,000 만 개의 유니크를 처리한다고 들었습니다.

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

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

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

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

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

예 (위 참조).

기술면에서 손쉽게, 한 번의 시도로 soclone 을보십시오. 교통량이 많을 때, 한 달에 100 만 개가 넘는 스택 오버 플로우가 발생합니다. 나는 적어도 12 개의 Django 사이트에 SO보다 더 많은 트래픽을 할당 할 수 있습니다.

Django 로 웹 애플리케이션을 만들고있다. Django 를 선택한 이유는 다음과 같습니다.

  • 무료 / 오픈 소스 도구로 작업하고 싶었습니다.
  • 저는 Python 을 좋아하고 장기 언어라고 느낍니다. Ruby 에 대해서는 확실하지 않았기 때문에 PHP 는 배우기가 번거롭지 않게 보였습니다.
  • 저는 아이디어를위한 프로토 타입을 만들고 미래에 대해 너무 많이 생각하지 않았습니다. 개발 속도가 가장 중요한 요소 였고, 이미 Python 알고있었습니다.
  • 앞으로 Google App Engine 이전하는 것이 더 쉽다는 것을 알았습니다.
  • 나는 Django 가 "좋다"라고 들었다.

이제는 저의 작품을 발표하는 것에 대해 생각해보기에 가까워졌습니다. 규모에 대해 걱정하기 시작합니다. Django 의 확장 기능에 대해 알아 Django 유일한 정보는 Django 팀에서 제공 한 것입니다. (나는 무시할 것이 없지만 이것은 객관적인 정보가 아닙니다 ...).

내 질문 :

  • 오늘 Django 구축 된 "가장 큰"사이트는 무엇입니까? (나는 주로 사용자 트래픽으로 크기를 측정합니다)
  • Django 매일 두 사람의 사이트를 방문하는 100,000 명의 사용자를 처리 할 수 ​​있습니까?
  • StackOverflow 와 같은 사이트가 Django에서 실행될 수 있습니까?

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

    Django 사이트에서 트래픽에 대한 정보를 수집하는 단일 장소가 없으므로 다양한 위치의 데이터를 사용하여 사이트를 찌를 것입니다. 먼저 장고 프로젝트 페이지 의 첫 페이지에 장고 사이트 목록이 있고 djangosites.org 에 장고 내장 사이트 목록이 있습니다. 목록을 살펴보고 내가 아는 일부를 선택하면 알만한 트래픽이 발생합니다.

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

    예, 위를 참조하십시오.

  3. "와 같은 사이트가 장고에서 실행될 수 있습니까?"

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

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

Django를 사용하여 트래픽이 많은 사이트 michaelmoore.com을 구축하는 블로그 게시물은 상위 10,000 개의 웹 사이트 로 설명됩니다. Quantcast 통계Compete.com 통계 .

(*) 해당 프로젝트에서 아웃소싱 한 개발자로 일하는 데 사용 된 참조를 포함하여 편집자.


High-performance Django Book에 언급 된 바와 같이 Cal Henderson

아래에 언급 된 자세한 내용을 참조하십시오.

사람들이 "장고가 확장되지 않는다"는 말을 듣는 것은 드문 일 이 아닙니다 . 당신이 어떻게 보느냐에 따라 진술은 완전히 사실이거나 명백하게 거짓이다. 장고는 자체적으로 확장되지 않습니다.

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

그러나 좋은 소식은 Django가 캐싱 및로드 균형 조정 도구 모음과 훌륭하게 상호 작용하여 사용자가 최대한 많은 트래픽을 처리 할 수 ​​있도록합니다.

온라인에서 읽은 것과는 달리 데이터베이스 ORM이나 템플릿 레이어와 같이 "너무 느리다"라는 레이블이 붙은 핵심 구성 요소를 대체하지 않고도 그렇게 할 수 있습니다.

Disqus는 한 달에 80 억 페이지 뷰를 처리합니다. 그것들은 거대한 숫자입니다.

이 팀들은 장고가 가장 확실한 규모를 가지고 있음을 입증했습니다. Lincoln Loop에서의 우리의 경험은 그것을 뒷받침합니다.

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

Django의 규모 확장 성공 사례는 현재 너무 많아 목록에 올 수 없습니다.

그것은 Disqus, Instagram 및 Pinterest를 백업합니다. 좀 더 증거가 필요해? Instagram은 3 명의 엔지니어만으로 장고에서 3 천만 사용자를 유지할 수있었습니다 (2 개는 백엔드 개발이 없었습니다)


나는 다른 주에 EuroDjangoCon 컨퍼런스에 참석했으며, 이것은 가장 큰 Django 기반 사이트 인 Pownce (한 장에서 슬라이드 한 슬라이드) 창립자를 포함하여 몇 가지 회담의 주제였습니다. 주요 메시지는 걱정해야 할 장고가 아니라 적절한 캐싱,로드 밸런싱, 데이터베이스 최적화 등과 같은 것들입니다.

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


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

정말 당신이 당신의 아키텍처를 들여다 보면 확장 요구에 도움이 될 것입니다. 당신이 잘못하면 장고가 얼마나 잘 수행되는지에 대한 요점은 없습니다. 성능! = 비율. 당신은 놀랄만 한 성능을 가지고 있지만 확장되지 않은 시스템을 가질 수 있으며 그 반대도 가능합니다.

애플리케이션 데이터베이스가 바운드입니까? 그렇다면 규모 문제도 거기에 있습니다. Django에서 데이터베이스와 어떻게 상호 작용할 계획입니까? 데이터베이스가 장고가 허용하는 것보다 빨리 요청을 처리 할 수 ​​없을 때 어떻게됩니까? 데이터가 하나의 실제 시스템을 초과하면 어떻게됩니까? 이러한 상황을 어떻게 처리할지 계획을 세워야합니다.

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

짧은 언어에서 규모를 결정하는 것이 아니라 언어에 따라 성능이 달라집니다 (언어에 따라 언어가 다르게 적용됩니다). 스케일링을 현실화하는 것은 디자인과 아키텍처입니다.

도움이 되었기를 바랍니다. 궁금한 점이 있으시면 언제든지 도와 드리겠습니다.


다음은 장고에 구축 된 상대적으로 유명한 프로파일의 목록입니다 :

  1. Guardian의 " MP 비용 조사 "앱

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

  3. NY Times ' Represent

  4. EveryBlock

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

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

  7. Onion의 AV Club은 최근에 (나는 Drupal을 장고로) 옮겼습니다.

나는이 사이트들의 숫자가 아마 하루에 100k + 히트 이상이 될 것이라고 상상한다. 장고는 하루에 100k 히트 이상을 할 수 있습니다. 그러나 YMMV는 귀하가 구축하고있는 사이트에 따라 귀하의 특정 사이트를 제공합니다.

Django 레벨에는 캐싱 옵션이 있습니다 (예 : 캐싱 쿼리 세트 및 memcached 캔슬 뷰가 경이로움) 그리고 그 이상 ( Squid 와 같은 업스트림 캐시). 데이터베이스 서버 사양은 또한 사용자가 조정 한대로 요소 (일반적으로 과장되는 곳)가됩니다. 예를 들어 장고가 제대로 색인을 설정한다고 가정하지 마십시오. 기본 PostgreSQL 또는 MySQL 구성이 PostgreSQL 생각하지 마십시오.

또한 느린 지점에서 소프트웨어 또는 하드웨어로드 밸런서를 앞에두고 여러 응용 프로그램 서버에서 장고를 실행하도록 선택할 수 있습니다.

마지막으로 Django와 같은 서버에서 정적 컨텐츠를 제공하고 있습니까? 아파치 나 nginxlighttpd 같은 것을 사용하고 있습니까? 정적 컨텐츠에 CDN 을 사용할 여력이 있습니까? 이것들은 생각할 것이지만 모두 매우 추측입니다. 100k 히트 / 일만이 유일한 변수는 아닙니다. 얼마나 지출하고 싶습니까? 이 모든 구성 요소를 얼마나 전문적으로 관리하고 있습니까? 얼마나 많은 시간을 함께 가져 가야합니까?


문제는 장고가 확장 할 수 있는지 여부를 알 수 없다는 것입니다.

적절한 방법은 네트워크 디자인 패턴과 도구가 귀하의 django / symfony / rails 프로젝트에 잘 적용될 수 있도록 이해하고 파악하는 것입니다.

몇 가지 아이디어가 있습니다 :

  • 멀티플렉싱.
  • 반대 프록시. 예 : Nginx, 바니시
  • Memcache 세션. 예 : Redis
  • 로드 밸런싱 및 내결함성을위한 프로젝트 및 db의 클러스터링 : 예 : Docker
  • 제 3자를 사용하여 자산을 저장하십시오. 예 : Amazon S3

희망이 조금 도움이됩니다. 이것은 산에있는 작은 바위입니다.


비록 여기에 많은 위대한 해답이 있었지만, 나는 아무 것도 강조하지 않았다고 지적했다.

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

당신이 쓰고있는 것보다 DB에서 훨씬 더 많은 데이터를 읽는 것처럼, 당신이 응용 프로그램을 쓰기가 가벼운 경우. 그럼 django를 스케일링은 상당히 사소한해야합니다, 여하튼, 그것은 꽤 괜찮은 출력 /보기 캐싱 상자에서 곧바로 제공됩니다. 이를 이용하여 캐시 공급자로서 redis를하고,로드 밸런서를 앞에두고, n-instance를 시작하면 많은 양의 트래픽을 처리 할 수 ​​있어야합니다.

이제 수천 개의 복잡한 쓰기 작업을 몇 초 동안해야합니까? 다른 이야기. 장고는 나쁜 선택일까요? 귀하의 솔루션을 실제로 설계하는 방법과 요구 사항이 무엇인지에 달려 있습니다.

그냥 내 두 센트 :-)


예, 그럴 수 있습니다. Python이나 Ruby on Rails가있는 Django 일 수 있습니다. 그것은 여전히 ​​확장됩니다.

다른 기술은 거의 없습니다. 첫째, 캐싱은 확장이 아닙니다. 하드웨어 밸런서 외에 nginx와 균형을 이루는 여러 애플리케이션 서버를 전면에 배치 할 수 있습니다. 데이터베이스 측에서 스케일을 조정하려면 RDBMS 방식으로 가면 MySQL / PostgreSQL에서 읽기 슬레이브로 꽤 멀리 갈 수 있습니다.

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

  • 그들이 아직도 거기에 있었을 때의 Pownce .
  • 원반 (일반 공유 코멘트 관리자)
  • 모든 신문 관련 웹 사이트 : 워싱턴 포스트 및 기타.

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


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

워싱턴 포스트

워싱톤 포스트의 웹 사이트는 그들의 매일 신문을 동반하는 거대하게 대중적인 온라인 뉴스 출처이다. Django 웹 프레임 워크는 뷰와 트래픽의 막대한 양을 쉽게 처리 할 수 ​​있습니다. Washington Post - 52.2 million unique visitors (March, 2015)

NASA

미국 항공 우주국의 공식 웹 사이트는 진행중인 우주 탐사에 관한 뉴스, 사진 및 비디오를 찾을 수있는 곳입니다. 이 Django 웹 사이트는 엄청난 양의 조회수와 트래픽을 쉽게 처리 할 수 ​​있습니다. 2 million visitors monthly

수호자

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

YouTube

우리 모두는 YouTube를 고양이 동영상을 업로드 할 장소로 알고 있으며 실패합니다. 존재하는 대중적인 웹 사이트의 한으로, 그것은 영상 오락의 끝없는 시간을 저희에게 제공한다. Python 프로그래밍 언어는이 기능과 우리가 좋아하는 기능을 제공합니다.

DropBox

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

설문 조사 원숭이

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

Quora

Quora는 온라인 커뮤니티에서 질문을하고 개인 커뮤니티에서 답변을받을 수있는 곳입니다. Python 웹 사이트에서 관련 커뮤니티 회원이 관련 결과에 응답하고, 편집하고, 조직합니다.

Bitly

Bitly URL 단축 서비스 및 분석 코드의 대부분은 모두 Python으로 작성되었습니다. 그들의 서비스는 하루에 수억 개의 이벤트를 처리 할 수 ​​있습니다.

Reddit

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

Hipmunk

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

더 많은 것을 보시려면 여기를 클릭하십시오 : 25-of-the-most-popular-python-and-django-websites , What-are-some-well-known-sites-running-on-Django


우리는 2011 년 Instagram 이라는 애플 앱을 장고를 집중적으로 사용하는 목록에 추가 할 수 있다고 생각한다.


우리는 지금 부하 테스트를하고 있습니다. 우리는 서버 성능을 크게 떨어 뜨리지 않으면 서 240 건의 동시 요청 (24x7 초당 120 건의 지속적인 비율)을 지원할 수 있다고 생각합니다. 시간당 432,000의 히트가 될 것입니다. 응답 시간은 적지 만 (거래가 많음) 부하가 증가함에 따라 기본 성능이 저하되지 않습니다.

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

우리는 32 비트 RAM이 장착 된 64 비트 Dell의 모든 VM에 있습니다.

성능은 20 명 또는 200 명의 동시 사용자가 거의 같기 때문에 엄청난 시간을 "조정"할 필요가 없습니다. 대신 우리는 단순히 일반적인 SSL 성능 향상, 일반적인 데이터베이스 설계 및 구현 (색인 생성 등), 일반적인 방화벽 성능 개선 등을 통해 기본 성능을 유지해야합니다.

우리가 측정 한 것은 부하 테스트 랩톱이 16 개의 동시 요청 스레드를 실행하는 15 개의 프로세스로 구성된 매우 어려운 작업 부하에서 고군분투하고 있다는 것입니다.



장고에 대한 나의 경험은 미미하지만, 장고 북에서 더 큰 장고 응용 프로그램을 실행하는 사람들과 인터뷰하는 장이 있음을 기억합니다. 여기에 링크가 있습니다. 나는 그것이 약간 통찰력을 제공 할 수 있었다고 생각한다.

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


저는 1 년 넘게 Django를 사용 해왔고 모듈성, 확장 성 및 개발 속도를 어떻게 관리하는지 감동했습니다. 어떤 기술과 마찬가지로 학습 곡선이 있습니다. 그러나이 학습 곡선은 Django 커뮤니티의 훌륭한 문서로 인해 훨씬 ​​덜 가파르게 작성됩니다. 장고는 제가 실제로 던진 모든 것을 다룰 수있었습니다. 그것은 미래로 잘 확장 될 수있을 것 같습니다.

BidRodeo Penny Auctions 는 적당한 크기의 Django 구동 웹 사이트입니다. 그것은 매우 역동적 인 웹 사이트이며 하루에도 많은 수의 페이지 뷰를 처리합니다.


정적 컨텐츠가있는 사이트가있는 경우 Varnish 서버를 앞에두면 성능이 크게 향상됩니다. 하나의 상자로도 100 Mbit / s의 트래픽을 쉽게 낼 수 있습니다.

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


좀 더 확실한 답변을 원하지만, 가장 확실한 객관적인 검증은 Google이 Django를 App Engine 프레임 워크와 함께 사용하도록 푸시한다는 것입니다. 누구나 정기적으로 확장 성을 알고 그것에 대해 다룰 경우 Google입니다. 내가 읽은 것부터, 가장 제한적인 요소는 데이터베이스 백엔드 인 것 같습니다. 그래서 Google이 자체적으로 사용하는 이유는 ...


한 번에 한 시간에 한 번씩 최대 20K 명 + 동시 사용자를 의미하는 하루에 100,000 명의 사용자가 필요하다고 생각하면 많은 서버가 필요합니다. SO에는 ~ 15,000 명의 등록 사용자가 있으며 대부분이 매일 활동적이지는 않습니다. 트래픽이 대량으로 등록되지 않은 사용자로부터 오는 동안, 나는 그들 중 아주 소수가 사이트에 몇 분 이상 머문다 고 추측하고있다. (즉 그들은 구글 검색 결과를 남긴다.)

해당 볼륨의 경우 서버 당 최소 30 명의 동시 사용자가 필요합니다.



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

Django는 매일 두 사람의 사이트를 방문하는 100,000 명의 사용자를 처리 할 수 ​​있습니까?
예.하지만 적절한 아키텍처, 데이터베이스 디자인, 캐시 사용,로드 균형 및 여러 서버 / 노드 사용

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





scalability