O Django é escalável? [fechadas]

1135

Estou construindo um aplicativo da web com o Django. As razões pelas quais escolhi o Django foram:

  • Eu queria trabalhar com ferramentas gratuitas / de código aberto.
  • Eu gosto de Python e sinto que é uma linguagem de longo prazo , enquanto em relação a Ruby eu não tinha certeza, e o PHP parecia um grande aborrecimento para aprender.
  • Estou construindo um protótipo para uma ideia e não estava pensando muito no futuro. A velocidade de desenvolvimento foi o principal fator, e eu já conhecia Python.
  • Eu sabia que a migração para o Google App Engine seria mais fácil, caso eu faça isso no futuro.
  • Ouvi dizer que o Django era "legal".

Agora que estou mais perto de pensar em publicar meu trabalho, começo a me preocupar com escala. As únicas informações que encontrei sobre os recursos de dimensionamento do Django são fornecidas pela equipe do Django (não estou dizendo nada para desconsiderá-las, mas essas claramente não são informações objetivas ...).

Minhas perguntas:

  • Qual é o "maior" site criado no Django hoje? (Eu meço o tamanho principalmente pelo tráfego do usuário)
  • O Django pode lidar com 100.000 usuários diariamente , cada um visitando o site por algumas horas?
  • Um site como o Stack Overflow poderia ser executado no Django?
Roee Adler
fonte
2
Se você não tiver, eu recomendo a leitura do capítulo sobre a escala em O Django Livro: djangobook.com/en/1.0/chapter20 Ou a versão mais recente: djangobook.com/en/2.0/chapter12
monkut
15
Talvez você queira consertar "a velocidade foi o principal fator" para esclarecer se você está falando sobre velocidade de execução ou esforço de desenvolvimento. Parece um esforço de desenvolvimento, o que faz sentido.
S.Lott
6
Seria interessante comparar isso com o RoR.
28909 Kozyarchuk
6
@ ajkumar25, o AFAIK disqus usa o django blog.disqus.com/post/62187806135/… .
alxs
6
a pergunta deve serwhat's the cost of scaling in the Django?
Sławomir Lenart

Respostas:

932
  1. "Quais são os maiores sites criados no Django hoje?"

    Não existe um único local que colete informações sobre o tráfego nos sites criados pelo Django, então terei que investigar usando dados de vários locais. Primeiro, temos uma lista de sites do Django na primeira página da página principal do projeto Django e, em seguida, uma lista dos sites criados pelo Django em djangosites.org . Percorrendo as listas e escolhendo algumas que eu conheço que possuem tráfego decente, vemos:

  2. "O Django pode lidar com 100.000 usuários diariamente, cada um visitando o site por algumas horas?"

    Sim, veja acima.

  3. "Um site como o Stack Overflow pode ser executado no Django?"

    Meu pressentimento é sim, mas, como outros responderam e Mike Malone menciona em sua apresentação, o design do banco de dados é fundamental. Prova forte também pode ser encontrada em www.cnprog.com se encontrarmos estatísticas de tráfego confiáveis. Enfim, não é apenas algo que acontecerá juntando vários modelos do Django :)

Existem, é claro, muitos outros sites e blogueiros de interesse, mas tenho que parar em algum lugar!


Postagem no blog sobre o uso do Django para criar um site de alto tráfego, michaelmoore.com, descrito como um dos 10.000 sites mais visitados . Estatísticas de Quantcast e estatísticas de compete.com .


(*) O autor da edição, incluindo essa referência, costumava trabalhar como desenvolvedor terceirizado nesse projeto.

Van Gale
fonte
267

Estamos fazendo testes de carga agora. Acreditamos que podemos suportar 240 solicitações simultâneas (uma taxa sustentada de 120 ocorrências por segundo 24x7) sem nenhuma degradação significativa no desempenho do servidor. Isso seria 432.000 acessos por hora. Os tempos de resposta não são pequenos (nossas transações são grandes), mas não há degradação do desempenho da linha de base à medida que a carga aumenta.

Nós estamos usando o Django e MySQL front-end do Apache. O sistema operacional é o Red Hat Enterprise Linux (RHEL). 64 bits. Usamos mod_wsgi no modo daemon para o Django. Não fizemos nenhuma otimização de cache ou banco de dados além de aceitar os padrões.

Estamos todos em uma VM em um Dell de 64 bits com (acho) 32 GB de RAM.

Como o desempenho é quase o mesmo para 20 ou 200 usuários simultâneos, não precisamos gastar muito tempo "aprimorando". Em vez disso, precisamos simplesmente manter nosso desempenho básico por meio de aprimoramentos comuns de desempenho SSL, design e implementação de bancos de dados comuns (indexação etc.), aprimoramentos comuns de desempenho de firewall etc.

O que medimos são nossos laptops de teste de carga que sofrem com a carga de trabalho insana de 15 processos executando 16 threads simultâneos de solicitações.

S.Lott
fonte
3
Também curioso: seu banco de dados está sendo executado na mesma máquina ou em um servidor separado?
21415 Jarret Hardie
16
Uma VM com Apache, Django e MySQL. mod_wsgi. RHEL.
214/09 S.Lott
4
Alguma atualização nas métricas de desempenho?
SexyBeast 28/05
1
Você faz uma boa observação - se você pensa no tráfego do seu site como uma fila, quantas respostas você pode servir por hora? Se você mantiver o tempo de resposta curto, poderá atender mais e ter uma 'maior escalabilidade' - não importa realmente se você usa Django, Twisted, Rails ou tecnologia do planeta Zod.
Ralph Bolton
2
Eu trabalho com o Django há anos e nunca vi esse tipo de desempenho em nada além de um aplicativo de brinquedo que é principalmente somente leitura. Qual é a natureza do seu aplicativo? Qualquer coisa com modelos, middleware, sessões ou conectividade com o banco de dados nunca suportará 120 ocorrências por segundo sem uma grande quantidade de cache para contornar tudo isso.
Cerin
176

Não tenho certeza sobre o número de visitas diárias, mas aqui estão alguns exemplos de sites grandes do Django:

Aqui está um link para a lista de sites Django de alto tráfego no Quora .

Neil
fonte
107

Qual é o "maior" site criado no Django hoje? (Eu meço o tamanho principalmente pelo tráfego do usuário)

Nos EUA, era o Mahalo . Me disseram que eles lidam com cerca de 10 milhões de únicos por mês. Agora, em 2019, o Mahalo usa o Ruby on Rails.

No exterior, a Globo rede (uma rede de sites de notícias, esportes e entretenimento no Brasil); Alexa os classifica entre os 100 melhores no mundo (atualmente, atualmente, é o 80º).

Outros usuários notáveis ​​do Django incluem PBS, National Geographic, Discovery, NASA (na verdade, várias divisões diferentes dentro da NASA) e a Biblioteca do Congresso.

O Django pode lidar com 100 mil usuários diariamente, cada um visitando o site por algumas horas?

Sim - mas apenas se você tiver escrito seu aplicativo corretamente e se tiver hardware suficiente. Django não é uma bala mágica.

Um site como o StackOverflow pode ser executado no Django?

Sim (mas veja acima).

Em termos de tecnologia, facilmente: veja o soclone por uma tentativa. Em termos de tráfego, a concorrência atribui ao StackOverflow menos de 1 milhão de únicos por mês. Eu posso citar pelo menos uma dúzia de sites Django com mais tráfego que SO.

jacobian
fonte
2
Você pode, por favor, estimar o preço aproximado de 5000 hits por segundo, assumindo que é como o linkedin, usando o Django. Suponha que um programador médio tenha construído o site e, é claro, adicionado cache. Suponha que os algoritmos etc (para acelerar as coisas) ainda não sejam utilizados, pois ainda não os utilizo.
user2349115
5
@ user2349115 quando o aplicativo receber 5000 'hits por segundo', você terá conhecimento suficiente para entender por que essa é a pergunta errada a ser feita.
Kye R
Meus ninjas (extensão do navegador wrappalyzer) dizem que o mahalo é ruby ​​nos trilhos, alimentado agora em março de 2019.
Miles Davis
87

Escalar aplicativos da Web não é sobre estruturas ou idiomas da Web, é sobre sua arquitetura. É sobre como você lida com o cache do navegador, o cache do banco de dados, como você usa provedores de persistência não padrão (como o CouchDB ), como o banco de dados está ajustado e muitas outras coisas ...

razenha
fonte
Estrutura da Web importa! Olhe o quão rápido Tornado em comparação com outros webframework python: tornadoweb.org/documentation#performance
Joshua Partogi
Eu não diminuí a votação, mas suponho que você tenha discordado um pouco do assunto, pois eles discutiam os méritos do django e não pode usar todos os bancos de dados, ajustar seu banco de dados e usar o couchdb no máximo em todas as estruturas. A menos que você não reescreva grandes partes dele.
ZJR
8
@ZLR eu não acredito que fiquei fora de tópico. Ele perguntou se Django pode escalar, eu disse que sim, porque quase todos os modernos frameworks web, independentemente do idioma, pode escalar se você usar o direito de arquitetura abordagem
razenha
Sim, o IO bloqueio versus não bloqueio é importante, conforme o exemplo do Tornado. Embora tenha dito isso, o Tornado não é uma estrutura da Web, mas seu aplicativo precisará ser escrito de uma maneira que tire proveito das E / S não bloqueadas.
Rob Grant
Com o Tornado, é muito fácil escrever código de IO bloqueador. E isso não dá alta concorrência. Framework, na verdade, não importa.
Shiplu Mokaddim 29/07/19
80

Brincando de advogado do diabo um pouco:

Você deve conferir o DjangoCon 2008 Keynote , entregue por Cal Henderson , intitulado "Por que eu odeio o Django", onde ele repassa tudo o que falta no Django que você pode querer fazer em um site de alto tráfego. No final do dia, você precisa entender tudo isso com a mente aberta, porque é perfeitamente possível escrever aplicativos Django nessa escala, mas achei que era uma boa apresentação e relevante para sua pergunta.

Paolo Bergantino
fonte
3
Além disso, o Flickr não foi construído em um dia.
Deniz Dogan
34
Parece que várias das questões Cal harped são características agora Standard: docs.djangoproject.com/en/dev/topics/db/multi-db
Dolph
51

O maior site de django que conheço é o Washington Post , o que certamente indicaria que ele pode bem dimensionado.

As boas decisões de design provavelmente têm um impacto maior no desempenho do que qualquer outra coisa. O Twitter é frequentemente citado como um site que incorpora os problemas de desempenho com outra estrutura da Web dinâmica baseada em linguagem interpretada, Ruby on Rails - ainda assim, os engenheiros do Twitter afirmaram que a estrutura não é tão problemática quanto algumas das escolhas de design de banco de dados que fizeram anteriormente. em.

O Django funciona muito bem com o memcached e fornece algumas classes para gerenciar o cache, que é onde você resolveria a maioria dos seus problemas de desempenho. O que você entrega no fio é quase mais importante do que seu back-end na realidade - o uso de uma ferramenta como yslow é essencial para um aplicativo da web de alto desempenho. Você sempre pode jogar mais hardware no seu back-end, mas não pode alterar a largura de banda dos usuários.

Bayard Randel
fonte
1
Não é apenas parte do washingtonpost.com executado no Django? A primeira página do Django parece indicar que são apenas projetos
Xashg Chiamiov -
3
Talvez você esteja confundindo o Washington Post com o Washington Times. Acredito que o Times esteja todo no Django, mas é um artigo muito menor.
Eli
32

Eu estava na conferência EuroDjangoCon na outra semana, e esse foi o assunto de algumas palestras - inclusive dos fundadores do maior site do Django, Pownce (slides de uma palestra aqui ). A principal mensagem é que não é com o Django que você precisa se preocupar, mas coisas como cache adequado, balanceamento de carga, otimização de banco de dados etc.

O Django realmente tem ganchos para a maioria dessas coisas - o cache, em particular, é muito fácil.

Daniel Roseman
fonte
24

Tenho certeza de que você está procurando uma resposta mais sólida, mas a validação objetiva mais óbvia que consigo pensar é que o Google empurra o Django para uso com sua estrutura do App Engine . Se alguém conhece e lida com escalabilidade regularmente, é o Google. Pelo que li, o fator mais limitador parece ser o back-end do banco de dados, e é por isso que o Google usa seus próprios ...

Jess
fonte
A promoção do Django / Python pode estar mais relacionada à política do Google de promover o Python como opção de 'Outra' linguagem após o C ++?
gurum
Quando eu tive que usar GAE, foi muito perto de algo como Tornado ...
Luis Masuelli
18

Conforme declarado no High Performance Django Book e passe por este Cal Henderson

Veja mais detalhes, conforme mencionado abaixo:

Não é incomum ouvir as pessoas dizerem que "o Django não escala" . Dependendo de como você olha, a afirmação é completamente verdadeira ou patentemente falsa. O Django, por si só, não escala.

O mesmo pode ser dito do Ruby on Rails, Flask, PHP ou qualquer outra linguagem usada por um site dinâmico orientado a banco de dados.

A boa notícia, no entanto, é que o Django interage lindamente com um conjunto de ferramentas de armazenamento em cache e balanceamento de carga que lhe permitirá escalar o máximo de tráfego possível.

Ao contrário do que você pode ter lido on-line, ele pode fazer isso sem substituir os principais componentes frequentemente rotulados como "muito lentos", como o ORM do banco de dados ou a camada de modelo.

O Disqus atende a mais de 8 bilhões de visualizações de página por mês. Esses são alguns números enormes.

Essas equipes provaram que o Django certamente escala. Nossa experiência aqui no Lincoln Loop confirma isso.

Criamos grandes sites do Django capazes de passar o dia na página inicial do Reddit sem suar a camisa.

As histórias de sucesso em escala do Django são numerosas demais para serem listadas neste momento.

Faz backup do Disqus, Instagram e Pinterest. Quer mais alguma prova? O Instagram conseguiu sustentar mais de 30 milhões de usuários no Django com apenas 3 engenheiros (2 dos quais não tinham desenvolvimento de back-end

Mushahid Khan
fonte
17

Hoje usamos muitos aplicativos e sites da Web para nossas necessidades. A maioria deles é altamente útil. Vou mostrar alguns deles usados ​​por python ou django.

Washington Post

O site do Washington Post é uma fonte de notícias on-line extremamente popular para acompanhar seu jornal diário. Sua enorme quantidade de visualizações e tráfego pode ser facilmente manipulada pela estrutura da web do Django. Washington Post - 52.2 million unique visitors (March, 2015)

NASA

O site oficial da Administração Nacional de Aeronáutica e Espaço é o local para encontrar notícias, fotos e vídeos sobre sua exploração espacial em andamento. Este site do Django pode lidar facilmente com grandes quantidades de visualizações e tráfego. 2 million visitors monthly

O guardião

The Guardian é um site britânico de notícias e mídia de propriedade do Guardian Media Group. Ele contém quase todo o conteúdo dos jornais The Guardian e The Observer. Esses dados enormes são tratados pelo Django. The Guardian (commenting system) - 41,6 million unique visitors (October, 2014)

Youtube

Todos conhecemos o YouTube como o lugar para enviar vídeos de gatos e falhar. Por ser um dos sites mais populares existentes, ele oferece inúmeras horas de entretenimento em vídeo. A linguagem de programação Python o capacita e os recursos que amamos.

Dropbox

O DropBox iniciou a revolução do armazenamento de documentos on-line que se tornou parte da vida cotidiana. Agora, armazenamos quase tudo na nuvem. O Dropbox nos permite armazenar, sincronizar e compartilhar quase tudo usando o poder do Python.

Survey Monkey

A Survey Monkey é a maior empresa de pesquisas on-line. Eles podem lidar com mais de um milhão de respostas todos os dias no site reescrito do Python.

Quora

O Quora é o local número um on-line para fazer uma pergunta e receber respostas de uma comunidade de indivíduos. No site do Python, os resultados relevantes são respondidos, editados e organizados por esses membros da comunidade.

Bitly

A maior parte do código para serviços e análises de encurtamento de URL da Bitly são todos criados com o Python. Seu serviço pode lidar com centenas de milhões de eventos por dia.

Reddit

O Reddit é conhecido como a primeira página da internet. É o local on-line para encontrar informações ou entretenimento com base em milhares de categorias diferentes. Posts e links são gerados pelo usuário e promovidos ao topo por meio de votos. Muitos dos recursos do Reddit dependem do Python para sua funcionalidade.

Hipmunk

Hipmunk é um site de viagens ao consumidor on-line que compara os principais sites de viagens para encontrar as melhores ofertas. As ferramentas deste site em Python permitem que você encontre os hotéis e voos mais baratos para o seu destino.

Clique aqui para saber mais: 25 dos sites mais populares de python e django , Quais são alguns dos sites mais conhecidos que rodam no Django

Simplans
fonte
15

Acho que podemos adicionar o App da Apple do ano de 2011, Instagram , à lista que usa django intensamente.

Milind
fonte
12

Sim pode. Poderia ser Django com Python ou Ruby on Rails. Ainda vai escalar.

Existem poucas técnicas diferentes. Primeiro, o cache não está em escala. Você pode ter vários servidores de aplicativos balanceados com o nginx como frente, além dos balanceadores de hardware. Para escalar no lado do banco de dados, você pode ir muito longe com o slave slave no MySQL / PostgreSQL, se seguir o caminho do RDBMS.

Alguns bons exemplos de sites de tráfego pesado no Django podem ser:

  • Pownce quando eles ainda estavam lá.
  • Discus (gerenciador de comentários compartilhados genéricos)
  • Todos os sites relacionados a jornais: Washington Post e outros.

Você pode se sentir seguro.

coulix
fonte
2
Apenas dizendo ... redes sociais mortas fazer um exemplo escalabilidade mau :)
ZJR
3
Não acho que o morto de Pownce esteja relacionado a um problema de escalabilidade.
Kedare
9

Aqui está uma lista de algumas coisas de alto nível construídas no Django:

  1. O aplicativo " Investigue as despesas do seu MP " do The Guardian

  2. Politifact.com (aqui está uma postagem no blog falando sobre a experiência (positiva). O site ganhou um Pulitzer.

  3. NY Times Representar aplicativo

  4. EveryBlock

  5. Peter Harkins, um dos programadores do WaPo, lista todas as coisas que eles criaram com o Django em seu blog.

  6. É um pouco velho, mas alguém do LA Times deu uma visão geral básica de por que eles foram com o Django.

  7. O Onion's AV Club foi recentemente transferido de (acho que Drupal) para Django.

Eu imagino que vários desses sites provavelmente superem os 100k + acessos por dia. O Django certamente pode fazer 100k hits / dia e mais. Mas o YMMV pode levar seu site específico para lá, dependendo do que você está criando.

Existem opções de cache no nível do Django (por exemplo, conjuntos de consultas e visualizações em cache no memcached podem fazer maravilhas) e além (caches upstream como o Squid ). As especificações do servidor de banco de dados também serão um fator (e geralmente o lugar para ostentar), assim como você o ajustou. Não suponha, por exemplo, que o Django vá configurar os índices corretamente. Não assuma que o PostgreSQL ou MySQL padrão configuração é a correta.

Além disso, você sempre tem a opção de ter vários servidores de aplicativos executando o Django, se esse for o ponto lento, com um balanceador de carga de software ou hardware à frente.

Finalmente, você está servindo conteúdo estático no mesmo servidor que o Django? Você está usando Apache ou algo como nginx ou lighttpd ? Você pode usar uma CDN para conteúdo estático? Essas são coisas em que pensar, mas tudo é muito especulativo. 100 mil acessos / dia não é a única variável: quanto você deseja gastar? Quanta experiência você possui no gerenciamento de todos esses componentes? Quanto tempo você tem para juntar tudo isso?

mazelife
fonte
9

O advogado do desenvolvedor do YouTube falou sobre o dimensionamento do Python no PyCon 2012 , o que também é relevante para o dimensionamento do Django.

O YouTube tem mais de um bilhão de usuários , e o YouTube é construído em Python.

orokusaki
fonte
3
Mas o youtube não é construído com o django. O Python pode ser rápido, mas não o django.
Joshua Partogi
4
Sim, mas o ponto era que, à medida que o Django cresce, ele se baseia em uma boa base para o reagrupamento de velocidade e, com o Google trabalhando em projetos como Unladen Swallow, tudo fica melhor.
precisa saber é o seguinte
7

Uso o Django há mais de um ano e estou muito impressionado com a maneira como ele consegue combinar modularidade, escalabilidade e velocidade de desenvolvimento. Como em qualquer tecnologia, ela vem com uma curva de aprendizado. No entanto, essa curva de aprendizado é muito menos acentuada pela excelente documentação da comunidade Django. O Django conseguiu lidar com tudo que joguei muito bem. Parece que será capaz de escalar bem no futuro.

O BidRodeo Penny Auctions é um site de tamanho médio do Django. É um site muito dinâmico e lida com um bom número de visualizações de página por dia.

Krystian Cybulski
fonte
6

Observe que, se você espera 100 mil usuários por dia, ativos por horas a fio (ou seja, no máximo 20 mil usuários simultâneos), precisará de MUITOS servidores. SO possui ~ 15.000 usuários registrados, e a maioria deles provavelmente não está ativa diariamente. Embora a maior parte do tráfego seja proveniente de usuários não registrados, suponho que poucos deles permaneçam no site por mais de alguns minutos (ou seja, seguem os resultados de pesquisa do Google e depois saem).

Para esse volume, espere pelo menos 30 servidores ... que ainda são 1.000 usuários simultâneos bastante pesados ​​por servidor.

Bip Bip
fonte
2
Parece no podcast que o SO usa apenas 3 servidores. Mas o SO é construído usando C #, não Python, por isso é rasgado.
S.Lott
1
Obviamente, a pergunta será: Quantos servidores poderosos eles são?
mamcx
6

Qual é o "maior" site criado no Django hoje? (Eu meço o tamanho principalmente pelo tráfego de usuários) Pinterest
disqus.com
Mais aqui: https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

O Django pode lidar com 100.000 usuários diariamente, cada um visitando o site por algumas horas?
Sim, mas use arquitetura adequada, design de banco de dados, uso de cache, use balanços de carga e vários servidores ou nós

Um site como o Stack Overflow poderia ser executado no Django?
Sim, basta seguir a resposta mencionada na 2ª pergunta

Ranju R
fonte
5

Outro exemplo é rasp.yandex.ru, serviço de horário de transporte russo. Seu atendimento satisfaz suas necessidades.

Glader
fonte
5

Se você tem um site com algum conteúdo estático, colocar um servidor Varnish na frente aumentará drasticamente seu desempenho. Mesmo uma única caixa pode cuspir facilmente 100 Mbit / s de tráfego.

Observe que, com conteúdo dinâmico, usar algo como Varnish se torna muito mais complicado.

Anders Rune Jensen
fonte
1
O problema aqui é que o verniz aumentará drasticamente o desempenho de tudo. E estruturas mais rápidas ainda serão mais rápidas.
ZJR 25/11
5

Minha experiência com o Django é mínima, mas eu lembro no The Django Book que eles têm um capítulo em que entrevistam pessoas executando alguns dos aplicativos maiores do Django. Aqui está um link. Eu acho que poderia fornecer algumas idéias.

O site curse.com é um dos maiores aplicativos do Django, com cerca de 60 a 90 milhões de visualizações de página em um mês.

tomeedee
fonte
1
curse.com URLs agora terminam em aspx ... (não sei se eles criar-los)
ZJR
5

Desenvolvo sites de alto tráfego usando o Django para a emissora nacional na Irlanda. Funciona bem para nós. Desenvolver um site de alto desempenho é mais do que apenas escolher uma estrutura. Uma estrutura será apenas uma parte de um sistema que é tão forte quanto seu elo mais fraco. O uso da estrutura mais recente 'X' não resolverá seus problemas de desempenho se o problema for consultas lentas do banco de dados ou um servidor ou rede mal configurado.

cioba
fonte
4

Embora tenha havido muitas ótimas respostas aqui, eu apenas gostaria de salientar que ninguém enfatizou ..

Depende da aplicação

Se seu aplicativo é leve em gravações, como você está lendo muito mais dados do banco de dados do que está gravando. Então escalar o django deve ser bastante trivial, heck, ele vem com uma saída / exibição razoavelmente decente de cache diretamente da caixa. Faça uso disso e, digamos, redis como um provedor de cache, coloque um balanceador de carga na frente dele, gire n instâncias e você poderá lidar com uma quantidade MUITO grande de tráfego.

Agora, se você tiver que fazer milhares de gravações complexas por segundo? História diferente. O Django será uma má escolha? Bem, não necessariamente, depende de como você realmente arquitetou sua solução e também quais são seus requisitos.

Apenas meus dois centavos :-)

JustDanyul
fonte
3

Confira este micro agregador de notícias chamado EveryBlock .

É totalmente escrito em Django. De fato, eles são as pessoas que desenvolveram o próprio framework Django.

siddu
fonte
everyblock.com jogando 503
Nishant Nawarkhede
3

O problema é não saber se o django pode ser dimensionado ou não.

O caminho certo é entender e saber quais são os padrões e as ferramentas de design de rede para colocar no seu projeto django / symfony / rails para dimensionar bem.

Algumas idéias podem ser:

  • Multiplexação.
  • Proxy inverso. Ex: Nginx, Verniz
  • Sessão Memcache. Ex: Redis
  • Clusterização em seu projeto e banco de dados para balanceamento de carga e tolerância a falhas: Ex: Docker
  • Use terceiros para armazenar ativos. Ex: Amazon S3

Espero que ajude um pouco. Esta é a minha pequena rocha para a montanha.

gmourier
fonte
3

Se você deseja usar o código aberto, há muitas opções para você. Mas o python é o melhor entre eles, pois possui muitas bibliotecas e uma comunidade super impressionante. Estas são algumas razões que podem mudar de idéia:

  • Python é muito bom, mas é uma linguagem interpretada que o torna lento. Mas existem muitos serviços de acelerador e cache que resolvem parcialmente esse problema.

  • Se você está pensando em desenvolvimento rápido, o Ruby on Rails é o melhor entre todos. O lema principal dessa estrutura (ROR) é proporcionar uma experiência confortável aos desenvolvedores. Se você comparar Ruby e Python, ambos têm quase a mesma sintaxe.

  • O Google App Engine é um serviço muito bom, mas o vincula em seu escopo. Você não tem chance de experimentar coisas novas. Em vez disso, você pode usar a nuvem Digital Ocean, que cobra apenas US $ 5 / mês pela sua gota mais simples. Heroku é outro serviço gratuito onde você pode implantar seu produto.

  • Sim! Sim! O que você ouviu está totalmente correto, mas aqui estão alguns exemplos que usam outras tecnologias

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

Conclusão é uma estrutura ou linguagem não fará tudo por você. Uma arquitetura, design e estratégia melhores fornecerão um site escalável. O Instagram é o maior exemplo, essa pequena equipe está gerenciando dados tão grandes. Aqui está um blog sobre sua arquitetura que deve ser lido.

pulkit
fonte
O desenvolvimento do Django pode ser muito rápido. Django é o framework web para perfeccionistas com prazos.
les
3

Eu não acho que a questão seja realmente sobre o dimensionamento do Django.

Eu realmente sugiro que você analise sua arquitetura, o que o ajudará com suas necessidades de dimensionamento. Se você errar, não faz sentido o desempenho do Django. Desempenho! = Escala. Você pode ter um sistema que tenha um desempenho incrível, mas que não seja dimensionado e vice-versa.

O banco de dados do aplicativo está vinculado? Se for, seus problemas de escala também estarão lá. Como você planeja interagir com o banco de dados do Django? O que acontece quando seu banco de dados não pode processar solicitações tão rapidamente quanto o Django as aceita? O que acontece quando seus dados superam uma máquina física. Você precisa explicar como planeja lidar com essas circunstâncias.

Além disso, o que acontece quando o tráfego ultrapassa um servidor de aplicativos? como você lida com as sessões nesse caso pode ser complicado, na maioria das vezes você provavelmente exigiria uma arquitetura de nada compartilhado. Novamente, isso depende da sua aplicação.

Em idiomas curtos não é o que determina a escala, um idioma é responsável pelo desempenho (novamente, dependendo dos aplicativos, idiomas diferentes têm desempenho diferente). É seu design e arquitetura que tornam a escala uma realidade.

Espero que ajude, ficaria feliz em ajudar ainda mais se você tiver dúvidas.

Anand Davis
fonte
2

Espalhar as tarefas uniformemente, em resumo, otimizar todos os aspectos, incluindo bancos de dados, arquivos, imagens, CSS etc. e equilibrar a carga com vários outros recursos, é necessário assim que o site / aplicativo começar a crescer. OU você abre mais espaço para que cresça. Implementação de tecnologias mais recentes como CDN, Cloud são obrigatórios com sites enormes. O simples desenvolvimento e aprimoramento de um aplicativo não dará satisfação percentual a cento, outros componentes também desempenham um papel importante.

Ashwin
fonte