有关使用Google App Engine的反馈?[关闭]

问题:有关使用Google App Engine的反馈?[关闭]

希望做一个非常小,快速而又肮脏的项目。我喜欢Google App Engine在Python上运行并内置Django的事实-给我借口尝试该平台…但是我的问题是:

除了玩具问题以外,还有人利用App Engine处理其他事情吗?我看到了一些很好的示例应用程序,因此我认为这对于真实交易来说已经足够了,但是我想获得一些反馈。

任何其他成功/失败记录都很棒。

Looking to do a very small, quick ‘n dirty side project. I like the fact that the Google App Engine is running on Python with Django built right in – gives me an excuse to try that platform… but my question is this:

Has anyone made use of the app engine for anything other than a toy problem? I see some good example apps out there, so I would assume this is good enough for the real deal, but wanted to get some feedback.

Any other success/failure notes would be great.


回答 0

我已经为小型地震监视应用程序http://quakewatch.appspot.com/尝试了应用引擎

我的目的是查看应用程序引擎的功能,因此主要要点:

  1. 默认情况下,它不是Django附带的,它有自己的Web框架,它是pythonic的,具有像Django这样的URL调度程序,并且使用Django模板。因此,如果您有Django exp。您会发现它易于使用
  2. 您无法在服务器上执行任何长时间运行的进程,您要做的就是回复请求,并且应该很快,否则appengine会杀死它。因此,如果您的应用程序需要大量后端处理,则appengine不是最佳方法,否则您将不得不进行处理在您自己的服务器上
  3. 我的quakewatch应用程序具有订阅功能,这意味着我必须通过电子邮件将最新的地震发生,但是我无法在app引擎中运行后台进程来监视新的地震解决方案,这里是使用像pingablity.com这样的第三方服务,连接到您的页面之一并执行订阅电子邮件程序,但是在这里您还必须注意不要在这里花费太多时间或将任务分成几部分
  4. 它提供了类似于Django的建模功能,但后端完全不同,但是对于新项目而言,这并不重要。

但是总的来说,我认为这对于创建不需要大量后台处理的应用程序非常有用。

编辑:现在,任务队列可用于运行批处理或计划的任务

编辑:在GAE上工作/创建一个真实的应用程序一年之后,现在我的看法是,除非您要开发需要扩展到数百万用户的应用程序,否则请不要使用GAE。由于具有分布式特性,因此在GAE中维护和执行琐碎的任务是一件令人头疼的事情,为了避免超出期限,错误地计数实体或执行复杂的查询需要复杂的代码,因此小型复杂的应用程序应坚持使用LAMP。

编辑:模型应该特别考虑到您将来希望进行的所有交易而设计,因为只能在同一实体组中的实体可以在交易中使用,并且这使得更新两个不同组的过程成为噩梦,例如将资金从user1转移到user2除非它们在同一个实体组中,否则不可能在事务中进行交易,但是对于频繁更新而言,使它们成为同一实体组可能不是最好的….阅读此http://blog.notdot.net/2009/9/Distributed-Transactions-应用引擎

I have tried app engine for my small quake watch application http://quakewatch.appspot.com/

My purpose was to see the capabilities of app engine, so here are the main points:

  1. it doesn’t come by default with Django, it has its own web framework which is pythonic has URL dispatcher like Django and it uses Django templates So if you have Django exp. you will find it easy to use
  2. You can not execute any long running process on server, what you do is reply to request and which should be quick otherwise appengine will kill it So if your app needs lots of backend processing appengine is not the best way otherwise you will have to do processing on a server of your own
  3. My quakewatch app has a subscription feature, it means I had to email latest quakes as they happend, but I can not run a background process in app engine to monitor new quakes solution here is to use a third part service like pingablity.com which can connect to one of your page and which executes the subscription emailer but here also you will have to take care that you don’t spend much time here or break task into several pieces
  4. It provides Django like modeling capabilities but backend is totally different but for a new project it should not matter.

But overall I think it is excellent for creating apps which do not need lot of background processing.

Edit: Now task queues can be used for running batch processing or scheduled tasks

Edit: after working/creating a real application on GAE for a year, now my opnion is that unless you are making a application which needs to scale to million and million of users, don’t use GAE. Maintaining and doing trivial tasks in GAE is a headache due to distributed nature, to avoid deadline exceeded errors, count entities or do complex queries requires complex code, so small complex application should stick to LAMP.

Edit: Models should be specially designed considering all the transactions you wish to have in future, because entities only in same entity group can be used in a transaction and it makes the process of updating two different groups a nightmare e.g. transfer money from user1 to user2 in transaction is impossible unless they are in same entity group, but making them same entity group may not be best for frequent update purposes…. read this http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine


回答 1

我正在使用GAE托管多个高流量应用程序。大约为50-100 req / sec。太好了,我不能推荐它。

我以前的Web开发经验是使用Ruby(Rails / Merb)。学习Python很容易。我并没有弄乱Django或Pylons或任何其他框架,只是从GAE示例开始,并从提供的基本webapp库中构建了我需要的东西。

如果您习惯了SQL的灵活性,那么数据存储区可能需要一些时间来适应。没什么太伤人的!最大的调整是远离JOIN。您必须摆脱标准化是至关重要的想法。

I am using GAE to host several high-traffic applications. Like on the order of 50-100 req/sec. It is great, I can’t recommend it enough.

My previous experience with web development was with Ruby (Rails/Merb). Learning Python was easy. I didn’t mess with Django or Pylons or any other framework, just started from the GAE examples and built what I needed out of the basic webapp libraries that are provided.

If you’re used to the flexibility of SQL the datastore can take some getting used to. Nothing too traumatic! The biggest adjustment is moving away from JOINs. You have to shed the idea that normalizing is crucial.

Ben


回答 2

我使用Google App Engine的令人信服的原因之一是它与您所在域的Google Apps集成。从本质上讲,它允许您创建自定义的托管Web应用程序,这些应用程序仅限于您域的(受控)登录名。

我在这段代码中的大部分经验是构建一个简单的时间/任务跟踪应用程序。模板引擎很简单,但是使多页应用程序非常容易上手。登录/用户意识api同样有用。我能够创建一个公共页面/私有页面范例而没有太多问题。(用户将登录以查看私有页面。仅向匿名用户显示公共页面。)

当我因从事“实际工作”而离开时,我只是进入项目的数据存储部分。

我能够在极短的时间内完成很多工作(尚未完成)。因为我以前从未使用过Python,所以这特别令人愉快(既因为这对我来说是一种新语言,也因为尽管使用了新语言,但开发仍然非常快)。我碰到的很少,使我相信我将无法完成任务。相反,我对功能和特性有一个相当积极的印象。

这就是我的经验。也许它不仅仅代表未完成的玩具项目,还代表对平台的知情试用,我希望能有所帮助。

One of the compelling reasons I have come across for using Google App Engine is its integration with Google Apps for your domain. Essentially it allows you to create custom, managed web applications that are restricted to the (controlled) logins of your domain.

Most of my experience with this code was building a simple time/task tracking application. The template engine was simple and yet made a multi-page application very approachable. The login/user awareness api is similarly useful. I was able to make a public page/private page paradigm without too much issue. (a user would log in to see the private pages. An anonymous user was only shown the public page.)

I was just getting into the datastore portion of the project when I got pulled away for “real work”.

I was able to accomplish a lot (it still is not done yet) in a very little amount of time. Since I had never used Python before, this was particularly pleasant (both because it was a new language for me, and also because the development was still fast despite the new language). I ran into very little that led me to believe that I wouldn’t be able to accomplish my task. Instead I have a fairly positive impression of the functionality and features.

That is my experience with it. Perhaps it doesn’t represent more than an unfinished toy project, but it does represent an informed trial of the platform, and I hope that helps.


回答 3

“运行Django的App Engine”的想法有点误导。App Engine取代了整个Django模型层,因此准备花一些时间适应App Engine的数据存储,这需要以不同的方式建模和思考数据。

The “App Engine running Django” idea is a bit misleading. App Engine replaces the entire Django model layer so be prepared to spend some time getting acclimated with App Engine’s datastore which requires a different way of modeling and thinking about data.


回答 4

我用GAE建立了http://www.muspy.com

它不仅是一个玩具项目,而且也不过分复杂。我仍然依赖于Google可以解决的一些问题,但是整体开发网站是一种令人愉快的体验。

如果您不想处理托管问题,服务器管理等问题,绝对可以推荐。特别是如果您已经了解Python和Django。

I used GAE to build http://www.muspy.com

It’s a bit more than a toy project but not overly complex either. I still depend on a few issues to be addressed by Google, but overall developing the website was an enjoyable experience.

If you don’t want to deal with hosting issues, server administration, etc, I can definitely recommend it. Especially if you already know Python and Django.


回答 5

我认为,对于小型项目,App Engine目前非常不错。有很多事情可以说,不必担心托管。该API还会引导您朝着构建可扩展应用程序的方向发展,这是一种很好的做法。

  • app-engine-patch是Django和App Engine之间的良好层,可启用auth应用程序及更多功能。
  • Google承诺在2008年底之前提供SLA和定价模型。
  • 请求必须在10秒内完成,对Web服务的子请求则需要在5秒内完成。这迫使您设计一个快速,轻量级的应用程序,将重要的处理工作卸载到其他平台(例如,托管服务或EC2实例)。
  • 更多语言即将推出!Google不会说:-)。我的钱接下来是Java。

I think App Engine is pretty cool for small projects at this point. There’s a lot to be said for never having to worry about hosting. The API also pushes you in the direction of building scalable apps, which is good practice.

  • app-engine-patch is a good layer between Django and App Engine, enabling the use of the auth app and more.
  • Google have promised an SLA and pricing model by the end of 2008.
  • Requests must complete in 10 seconds, sub-requests to web services required to complete in 5 seconds. This forces you to design a fast, lightweight application, off-loading serious processing to other platforms (e.g. a hosted service or an EC2 instance).
  • More languages are coming soon! Google won’t say which though :-). My money’s on Java next.

回答 6

这个问题已经被完全回答。哪个好 但是也许有一件事值得一提。google app引擎有一个eclipse ide插件,很高兴使用。

如果您已经使用Eclipse进行开发,您将对此感到非常高兴。

要在Google App Engine的网站上进行部署,我需要做的就是单击一个带有飞机徽标的小按钮-超级。

This question has been fully answered. Which is good. But one thing perhaps is worth mentioning. The google app engine has a plugin for the eclipse ide which is a joy to work with.

If you already do your development with eclipse you are going to be so happy about that.

To deploy on the google app engine’s web site all I need to do is click one little button – with the airplane logo – super.


回答 7

看一下sql游戏,它非常稳定,实际上将流量限制提高了一点,从而使其受到Google的限制。除了将App托管在其他人完全控制的服务器上之外,我没有看到关于App Engine的好消息。

Take a look the the sql game, it is very stable and actually pushed traffic limits at one point so that it was getting throttled by Google. I have seen nothing but good news about App Engine, other than hosting you app on servers someone else controls completely.


回答 8

我使用GAE构建了一个简单的应用程序,该应用程序接受一些参数,格式并发送电子邮件。这是非常简单和快速的。我还在GAE数据存储和内存缓存服务(http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html)上做了一些性能基准测试。没有那么快。我认为GAE是执行特定方法的严肃平台。我认为它将演变为真正可扩展的平台,在该平台上根本不允许不良做法。

I used GAE to build a simple application which accepts some parameters, formats and send email. It was extremely simple and fast. I also made some performance benchmarks on the GAE datastore and memcache services (http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ). It is not that fast. My opinion is that GAE is serious platform which enforce certain methodology. I think it will evolve to the truly scalable platform, where bad practices simply not allowed.


回答 9

我将GAE用于我的Flash游戏网站Bearded Games。GAE是一个很棒的平台。我使用了Django模板,它比PHP过去要容易得多。它带有出色的管理面板,并为您提供了非常好的日志。数据存储区不同于MySQL之类的数据库,但是使用起来要容易得多。建立网站非常简单明了,他们在网站上有很多有用的建议。

I used GAE for my flash gaming site, Bearded Games. GAE is a great platform. I used Django templates which are so much easier than the old days of PHP. It comes with a great admin panel, and gives you really good logs. The datastore is different than a database like MySQL, but it’s much easier to work with. Building the site was easy and straightforward and they have lots of helpful advice on the site.


回答 10

我使用GAE和Django构建了Facebook应用程序。我以http://code.google.com/p/app-engine-patch作为起点,因为它具有Django 1.1支持。我没有尝试使用任何manage.py命令,因为我认为它们不起作用,但是我什至没有调查。该应用程序具有三个模型,还使用了pyfacebook,但这就是复杂程度。我正在构建一个更加复杂的应用程序,并开始在http://brianyamabe.com上发布博客。

I used GAE and Django to build a Facebook application. I used http://code.google.com/p/app-engine-patch as my starting point as it has Django 1.1 support. I didn’t try to use any of the manage.py commands because I assumed they wouldn’t work, but I didn’t even look into it. The application had three models and also used pyfacebook, but that was the extent of the complexity. I’m in the process of building a much more complicated application which I’m starting to blog about on http://brianyamabe.com.