Appengine é um presente de grego?

Passado o entusiasmo inicial do que me parecia a oitava maravilha do mundo, me sinto frustrado em relação a hospedagem na nuvem do Google (Appengine).

Após gastar um bom tempo em estudos do GWT, JDO, Objectify, GQL e tudo mais o que é necessário para rodar na fantástica núvem do google, caí na real sobre algo que nenhuma revista comentou. O alto custo.

Desenvolvi uma aplicação que possui meia duzia de entidades (Tabelas do bom e velho banco de dados) que recebe coordenadas (lat, long) de um equipamento em intervalos de 1 minuto. Isso gera em torno de 1440 registros por dia para cada equipamento…

Deixei 2 equipamentos em teste transmitindo as coordenadas e isso consumiu a cota gratuita mais U$ 1,00 no dia do teste. Faça mentalmente a conta, considerando 1000 equipamentos… Isso inviabiliza o projeto.

Sei que alguém vai dizer que tenho que melhorar o código das consultas, usar memcache e outros recursos para otimizar o uso do appengine, mas, mesmo que eu consiga tirar leite de pedra o custo continuará alto…

Era isso que queria compartilhar com vocês e se alguém souber de algo que eu não esteja sabendo, favor comentar…

Abraço

Tenta com o cloud da Amazon…

[quote=bacamarte]Passado o entusiasmo inicial do que me parecia a oitava maravilha do mundo, me sinto frustrado em relação a hospedagem na nuvem do Google (Appengine).

Após gastar um bom tempo em estudos do GWT, JDO, Objectify, GQL e tudo mais o que é necessário para rodar na fantástica núvem do google, caí na real sobre algo que nenhuma revista comentou. O alto custo.

Desenvolvi uma aplicação que possui meia duzia de entidades (Tabelas do bom e velho banco de dados) que recebe coordenadas (lat, long) de um equipamento em intervalos de 1 minuto. Isso gera em torno de 1440 registros por dia para cada equipamento…

Deixei 2 equipamentos em teste transmitindo as coordenadas e isso consumiu a cota gratuita mais U$ 1,00 no dia do teste. Faça mentalmente a conta, considerando 1000 equipamentos… Isso inviabiliza o projeto.

Sei que alguém vai dizer que tenho que melhorar o código das consultas, usar memcache e outros recursos para otimizar o uso do appengine, mas, mesmo que eu consiga tirar leite de pedra o custo continuará alto…

Era isso que queria compartilhar com vocês e se alguém souber de algo que eu não esteja sabendo, favor comentar…

Abraço[/quote]

Olá tenho uma aplicação na nuvem do google e pelo que tenho sentido o preço deles é o mais competitivo entre os clouds . Pra quem não conhece os preços do google :

Frontend Instance Hours $0.08/ Hour
Backend Instance Hours $0.08/ Hour
Datastore Stored Data $0.008/ GByte-day
Task Queue Stored Task Bytes $0.008/ GByte-day
Blobstore Stored Data $0.0043/ GByte-day
Datastore Write Operations $1.00/ Million Ops
Datastore Read Operations $0.70/ Million Ops
Datastore Small Operations $0.10/ Million Ops
Outgoing Bandwidth $0.12/ GByte
Recipients Emailed $0.01/ 100 Recipients
Stanzas Sent $0.10/ 100K Stanzas
Channels Created $0.01/ 100 Opens

Bom como da pra ver as operações mais caras em termos financeiros são de escrita ,leitura no datastore e banda de saida mesmo assim pelo volume é muito muito barato estamos falando 1 milhao de escritas e 1 milhao de leituras , fora o sossego de não ter uma aplicação down pq seu server num aguentou o tranco de 1 pico do nada em volume de acesso.

Voce tem que analisar o que mais voce utiliza de recurso (datastore,tempo de frontend,escrita,leitura) e otimizar ao maximo isso . Esta incompativel o que voce esta dizendo de ter apenas 2880 registros por dia em 2 equipamento ter consumido $1 dollar de quota fora a cota livre que é de 50000 (read/write) . Tem algo muito errado ai nesse processo.

Eu pessoalmente acho preço de banana o custo dos recursos do google que nem de perto chegam a um servidor dedicado que é uma fortuna aqui no brasil . Fora toda a facilidade do Paas que lhe oferece (apesar de faltar algumas coisas como fulltextsearch que ele tao prometendo liberar faz tempo).

Bom se tiver afim coloca ai o print do seu dashboard pra eu te ajudar a analisar o que sua aplicação mais consome.

Olá!!
Infelizmente não guardei um print da página, mas, os itens que indicam o problema são os seguintes:

  • Datastore Read Operations estava vermelho e marcando 100%,
  • Estimated cost for the last 16 hours: $1.00* / $1.00

**Um dolar foi o valor diário que defini para testes.

Com isso a aplicação parou de funcionar, inclusive o banco…

Quando ocorrer novamente vou guardar um print. ok?

Valeu!!!

[quote=bacamarte]Olá!!
Infelizmente não guardei um print da página, mas, os itens que indicam o problema são os seguintes:

  • Datastore Read Operations estava vermelho e marcando 100%,
  • Estimated cost for the last 16 hours: $1.00* / $1.00

**Um dolar foi o valor diário que defini para testes.

Com isso a aplicação parou de funcionar, inclusive o banco…

Quando ocorrer novamente vou guardar um print. ok?

Valeu!!!
[/quote]

Humm mesmo assim estranho voce atingir 1 milhao de leituras em seu banco de dados no dia , pelo que voce expos . É muita coisa pra 1 só equipamento (não sei de suas regras de negócio) que pelo seu calculos deveria tem uma media de 1440 registro de ESCRITA e pelo que entendi nenhuma leitura ou voce a cada entrada faz processamento de algo ?? Ve se nao tem algum loop perdido ai , ou full scan em sua tabela … sem algum código fica dificil tentar adivinhar o que pode ser … lembrando que a cada escrita seu banco utiliza 1 leitura e 1 small operation se não me engano na documentação tem falando sobre isso.

O appengine conta por milhões de operações, mas, fica meio vago o que faz cada operação… Pelo resultado que tenho obtido, acredito que para gravar um único registro deve utilizar várias operações… Não sendo 1 por 1.

O sistema é pequeno, estou utilizando o Objectify conforme a documentação do mesmo. As consultas se resumem a lista os equipamentos, relacionamento entre eles e as coordenadas GPS. Faz várias consultas, mas, nada mirabolante…

Fora isso existem os equipamentos se conectando com o sistema.

Se só isso leva a cota free e mais um dolar…

Dá uma olhada nesse link:

http://code.google.com/intl/pt-BR/appengine/docs/billing.html#Billable_Resource_Unit_Costs