Comentários sobre o uso do Google App Engine? [fechadas]


125

Procurando fazer um projeto paralelo muito pequeno e rápido. Gosto do fato de o Google App Engine estar rodando em Python com o Django embutido - me dá uma desculpa para experimentar essa plataforma ... mas minha pergunta é a seguinte:

Alguém já usou o mecanismo de aplicativo para outro problema que não seja um brinquedo? Vejo alguns bons exemplos de aplicativos por aí, então suponho que isso seja bom o suficiente para o negócio real, mas queria obter algum feedback.

Qualquer outra nota de sucesso / fracasso seria ótima.


8
deve ser wiki da comunidade
SilentGhost 28/01

Respostas:


63

Eu tentei o mecanismo de aplicativos para o meu pequeno aplicativo de observação de terremotos http://quakewatch.appspot.com/

Meu objetivo era ver os recursos do App Engine, então, aqui estão os principais pontos:

  1. ele não vem por padrão com o Django, ele possui sua própria estrutura da web, que é python, possui um expedidor de URL como o Django e usa modelos do Django. Portanto, se você tem o Django exp. você achará fácil de usar
  2. Você não pode executar nenhum processo de execução longa no servidor, o que você faz é responder à solicitação e o que deve ser rápido, caso contrário, o aplicativo o matará. Se o seu aplicativo precisar de muito processamento, o aplicativo não será a melhor maneira, caso contrário você terá que fazer o processamento. em um servidor de sua preferência
  3. Meu aplicativo quakewatch possui um recurso de assinatura, significa que eu tive que enviar por e-mail os últimos tremores mais recentes, mas não posso executar um processo em segundo plano no mecanismo de aplicativos para monitorar a nova solução de tremores aqui. É usar um serviço de terceiros, como pingablity.com, que pode conecte-se a uma das suas páginas e execute o email de inscrição, mas também aqui você terá que cuidar para não gastar muito tempo aqui ou dividir as tarefas em várias partes
  4. Ele fornece recursos de modelagem como o Django, mas o back-end é totalmente diferente, mas para um novo projeto não deve importar.

Mas, no geral, acho excelente para criar aplicativos que não precisam de muito processamento em segundo plano.

Editar: agora as filas de tarefas podem ser usadas para executar o processamento em lote ou tarefas agendadas

Edit: depois de trabalhar / criar um aplicativo real no GAE por um ano, agora minha opinião é que, a menos que você esteja criando um aplicativo que precise ser escalado para milhões e milhões de usuários, não use o GAE. Manter e executar tarefas triviais no GAE é uma dor de cabeça devido à natureza distribuída, para evitar erros de prazo excedido, contar entidades ou fazer consultas complexas exige código complexo, portanto, aplicativos complexos pequenos devem seguir o LAMP.

Editar: os modelos devem ser projetados especialmente considerando todas as transações que você deseja ter no futuro, porque entidades apenas no mesmo grupo de entidades podem ser usadas em uma transação e isso torna o processo de atualização de dois grupos diferentes um pesadelo, por exemplo, transferir dinheiro do usuário1 para o usuário2 na transação é impossível, a menos que estejam no mesmo grupo de entidades, mas torná-los no mesmo grupo de entidades pode não ser o melhor para fins de atualização frequente ... leia isto http://blog.notdot.net/2009/9/Distributed-Transactions- no App-Engine


6
Agora processo de lote pode ser executado em GAE
Anurag Uniyal

2
Confira a nova API Python da fila de tarefas também nos documentos do App-Engine.
Jason Rikard

11
Muita desta informação está desatualizada - Django 0.96 está agora integrado no GAE partir de 17 de Julho de 2009.
ine

3
O Djanjo 1.0.x também está incluído no GAE agora. Você pode escolher qual revisão do Django você quer.
Laurent

5
Apenas mais uma atualização, o Django 1.1 agora está disponível no GAE, bem como nas versões anteriores.
SingleNegationElimination

36

Estou usando o GAE para hospedar vários aplicativos de alto tráfego. Como na ordem de 50-100 req / s. É ótimo, não posso recomendar o suficiente.

Minha experiência anterior com desenvolvimento web foi com Ruby (Rails / Merb). Aprender Python foi fácil. Eu não brinquei com o Django, o Pylons ou qualquer outra estrutura, apenas comecei a partir dos exemplos do GAE e construí o que eu precisava a partir das bibliotecas básicas de aplicativos da web fornecidas.

Se você está acostumado à flexibilidade do SQL, o armazenamento de dados pode levar algum tempo para se acostumar. Nada muito traumático! O maior ajuste está se afastando de JOINs. Você precisa abandonar a ideia de que a normalização é crucial.

Ben


23

Um dos motivos convincentes que me deparei para usar o Google App Engine é sua integração com o Google Apps para seu domínio. Essencialmente, ele permite criar aplicativos da Web gerenciados e personalizados, restritos aos logins (controlados) do seu domínio.

A maior parte da minha experiência com esse código foi criando um aplicativo simples de controle de tempo / tarefa. O mecanismo de modelo era simples e, no entanto, tornou um aplicativo de várias páginas muito acessível. A API de login / reconhecimento do usuário é igualmente útil. Consegui criar um paradigma de página pública / página privada sem muito problema. (um usuário efetuaria login para ver as páginas particulares. Um usuário anônimo apenas mostrava a página pública.)

Eu estava entrando na parte do armazenamento de dados do projeto quando fui afastado por "trabalho real".

Consegui realizar muito (ainda não foi feito ainda) em muito pouco tempo. Como eu nunca havia usado o Python antes, isso foi particularmente agradável (tanto porque era uma nova linguagem para mim quanto também porque o desenvolvimento ainda era rápido, apesar da nova linguagem). Encontrei muito pouco que me levou a acreditar que não seria capaz de realizar minha tarefa. Em vez disso, tenho uma impressão bastante positiva da funcionalidade e dos recursos.

Essa é a minha experiência com isso. Talvez não represente mais do que um projeto de brinquedos inacabados, mas representa um teste informado da plataforma, e espero que ajude.


Quase idêntico à minha situação - um aparte do "trabalho real", mas ainda algo que preciso fazer e que funcione no final.
agartzke 21/09/08

O mesmo aqui. Além disso, a grande vantagem é que a instalação do ambiente de desenvolvimento é rápida (você está codificando em um minuto). O mesmo vale para implantações.
Jilles

12

A idéia do "App Engine executando o Django" é um pouco enganadora. O App Engine substitui toda a camada de modelo do Django. Portanto, prepare-se para passar algum tempo se acostumando com o armazenamento de dados do App Engine, que requer uma maneira diferente de modelar e pensar em dados.


Bom ponto - parece que, por padrão, ocupa o modelo do Django, mas não necessariamente o resto.
agartzke 21/09/08

7

Eu usei o GAE para criar http://www.muspy.com

É um pouco mais do que um projeto de brinquedo, mas também não é muito complexo. Ainda dependo de alguns problemas a serem abordados pelo Google, mas o desenvolvimento geral do site foi uma experiência agradável.

Se você não quiser lidar com problemas de hospedagem, administração de servidores, etc., eu definitivamente recomendo. Especialmente se você já conhece Python e Django.


7

Eu acho que o App Engine é muito legal para pequenos projetos neste momento. Há muito a ser dito por nunca ter que se preocupar com hospedagem. A API também leva você a criar aplicativos escaláveis, o que é uma boa prática.

  • O app-engine-patch é uma boa camada entre o Django e o App Engine, permitindo o uso do aplicativo auth e muito mais.
  • O Google prometeu um SLA e um modelo de preços até o final de 2008.
  • As solicitações devem ser concluídas em 10 segundos, as sub-solicitações aos serviços da Web precisam ser concluídas em 5 segundos. Isso obriga a projetar um aplicativo rápido e leve, descarregando o processamento sério para outras plataformas (por exemplo, um serviço hospedado ou uma instância do EC2).
  • Mais idiomas estão chegando em breve! O Google não diz qual :-). Meu dinheiro está em Java a seguir.

em fevereiro de 2009, muitas das limitações acima foram atenuadas.
husayt

3
Se alguém puder editar esta resposta, seria bom refletir que Java é realmente o próximo idioma disponível.
4190 JasonSmith

1
@jhs Seu comentário faz isso muito bem!
tarde

E o idioma Go também é suportado agora!
Davewasthere

6

Esta pergunta foi totalmente respondida. Qual é bom. Mas uma coisa talvez vale a pena mencionar. O mecanismo de aplicativos do google possui um plug-in para o ide eclipse, que é uma alegria trabalhar com ele.

Se você já faz seu desenvolvimento com o eclipse, ficará muito feliz com isso.

Para implantar no site do Google App Engine, tudo o que preciso fazer é clicar em um pequeno botão - com o logotipo do avião - super.


4

Dê uma olhada no jogo sql , ele é muito estável e, na verdade, aumentou os limites de tráfego em um ponto, para que fosse acelerado pelo Google. Não vi nada além de boas notícias sobre o App Engine, além de hospedá-lo em servidores que outra pessoa controla completamente.


O jogo sql mudou do Google App Engine para um servidor privado.
systempuntoout

4

Usei o GAE para criar um aplicativo simples que aceita alguns parâmetros, formatos e envia e-mails. Foi extremamente simples e rápido. Também fiz alguns benchmarks de desempenho nos serviços de armazenamento de dados e memcache do GAE ( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ). Não é tão rápido assim. Minha opinião é que o GAE é uma plataforma séria que impõe certa metodologia. Acho que evoluirá para uma plataforma verdadeiramente escalável, onde práticas ruins simplesmente não são permitidas.


4

Eu usei o GAE no meu site de jogos em flash, Bearded Games . O GAE é uma ótima plataforma. Eu usei modelos do Django que são muito mais fáceis do que nos velhos tempos do PHP. Ele vem com um ótimo painel de administração e fornece logs muito bons. O armazenamento de dados é diferente de um banco de dados como o MySQL, mas é muito mais fácil trabalhar com ele. Construir o site foi fácil e direto e eles têm muitos conselhos úteis no site.


3

Eu usei o GAE e o Django para criar um aplicativo no Facebook. Eu usei http://code.google.com/p/app-engine-patch como meu ponto de partida, pois ele tem suporte ao Django 1.1. Não tentei usar nenhum dos comandos manage.py porque supus que eles não funcionariam, mas nem sequer o examinei. O aplicativo tinha três modelos e também usava o pyfacebook, mas essa era a extensão da complexidade. Estou desenvolvendo um aplicativo muito mais complicado, sobre o qual estou começando a publicar no blog http://brianyamabe.com .


Comecei a usar o manage.py para executar o servidor e também para executar alguns testes de unidade. A execução do servidor funciona bem, mas como meu aplicativo é executado como um aplicativo do Facebook, não é tão útil (preciso de um servidor hospedado que o Facebook faça referência). O teste de unidade também funcionou e até funcionou com equipamentos. No entanto, não consegui fazer com que equipamentos que fizessem referência a outros modelos funcionassem. Ainda não descobri se é um problema com o meu equipamento ou um problema com o app-engine-patch.
byamabe
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.