对于 Django 开发的初学者来说,Google App Engine 是不是比 Webfaction 更好? [关闭]
Posted
技术标签:
【中文标题】对于 Django 开发的初学者来说,Google App Engine 是不是比 Webfaction 更好? [关闭]【英文标题】:Is Google App Engine better than Webfaction for a beginner in Django dev? [closed]对于 Django 开发的初学者来说,Google App Engine 是否比 Webfaction 更好? [关闭] 【发布时间】:2010-10-17 20:56:09 【问题描述】:我是 Django 开发网站的初学者。 我经营类似于 SO 的小型讨论网站。
我在 Bluehost 有一个帐户,这是 Django 开发的噩梦。 我发现 Webfaction 和 Google App Engine 似乎是 Django 的最佳选择。
但是,我不确定哪一个最适合我。
Google App Engine 在运行小型网站方面是否优于 Webfaction?
【问题讨论】:
Webfaction 和 Google App Engine 是“Django 的最佳选择”?从何时起?我发现我的 VPS 做得非常出色,比 WebFaction 或 GAE 提供的灵活性要大得多。 是的,但是 VPS 比共享主机贵得多。对于使用 WebFaction 的小型应用程序,您可以花 102 美元加上一个域的成本,并且可以使用一年。即使是便宜的 VPS 的成本也是类似计划的两倍。 【参考方案1】:网络派系:
加号:
-
出色的外壳访问。能够安装 python 模块或您可能需要的任何其他模块。你会喜欢从 shell 中查看源代码来更新你的产品(不再需要 FTP 任何东西!)
非常好的性能和可靠性
在帮助知识库和论坛中提供强大的支持 + 丰富的信息。 (忘记 bluehost 或您曾经尝试过的任何其他东西)。我对我认为很难回答的问题的答案数量感到惊讶。
您可以使用常规数据库,也可以进行联接(请参阅应用引擎减去 #2)
减号:
-
在最初的几次设置初始部署可能会有些棘手(正如 shell 所预料的那样)。
不断扩大规模可能会很昂贵,而且您可能无法在“slashdotted”中生存
App 引擎
加号:
-
免费开始
初始数据库更容易设置。
部署轻而易举
从一开始就执行“好的”设计原则,这有助于您实现#5。 (如硬限制、数据库非规范化等)
可扩展性(但这不是免费的 - 您需要提前考虑)。
无需维护:自动备份、免费安全、日志记录 + 集中式仪表板、软件更新是自动的。
减号:
-
在 App Engine 上设置 Django 并不那么简单,而且要习惯这种设置。 google 的 webapp 框架很弱。
数据库模型需要一点时间来理解。这不是你妈妈的 SQL 服务器。例如,您必须从一开始就对您的数据库进行非规范化,并且您不能进行联接(除非它们是自联接)
您习惯的常见事物并不总是存在。测试和数据导入等一些事情不再那么容易了。
您受制于 App Engine 并将您的数据迁移到另一个数据库或服务器,虽然并非不可能,但并不容易。 (并不是说您经常进行数据迁移!可能永远不会)
对请求、响应和文件大小的严格限制(我上次听说大约 1MB)。
App Engine 目前仅支持 Python 2.5。
目前还想不到别的。 我目前在 Webfaction 工作,也在测试 App Engine。从 Django-Webfaction 到 App-Engine 的思维方式,我没有任何困难。但是,我不确定 AppEngine -> Standalone servers 路由是否同样简单。
参考文献
会谈:
Google App Engine 上的 Guido http://www.youtube.com/watch?v=CmyFcChTc4M App Engine 中的任务队列:http://www.youtube.com/watch?v=o3TuRs9ANhs【讨论】:
【参考方案2】:我不能代表 Google App Engine,但我自己作为一个相当新的 Django 用户,我最近将我的开发站点移到了 WebFaction 服务器上,我必须说我印象非常深刻。他们对 Django 设置(以及其他)非常友好,支持人员及时回答了我遇到的任何小问题。我肯定会推荐他们。
对于其他 Django 友好的主机,请查看Djangofriendly.com。
【讨论】:
【参考方案3】:如果您已经编写了 django 应用程序,那么在 Google App Engine 上安装它可能真的很困难,因为您必须调整您的数据模型。 GAE 使用大表、(键、数据)存储,而不是传统的关系模型。这对性能很有好处,但会使您的编程更加困难(例如,没有内置的多对多关系处理程序)。
此外,大多数可用于 django 的应用程序都无法在 GAE 上运行,因为这些应用程序使用关系数据模型。最明显的问题是 django 的出色管理应用程序无法运行。此外,GAE 倾向于让您使用谷歌帐户进行身份验证。这可以避免,但同样,不要使用现成的 django 应用程序。这对您来说可能很好,但可能会很麻烦(例如,谷歌已经使用了很多用户名)。
所以,我最后的建议是,如果你是初学者,你应该避免 GAE。
如果您在欧洲,djangohosting.ch 也是一个不错的选择,而不是 webfaction。
【讨论】:
如果我的目标受众是欧洲,使用位于欧洲的托管服务会更好吗?让房东靠近我的客户有什么好处? 您将获得更好的响应时间,不仅对您自己,对您的用户也是如此。尝试访问澳大利亚的网站(例如大学网站),您会感到痛苦。 @madewulf:您知道 Webfaction 和 djangohosting.ch 之间的托管有何不同吗? 对我来说,这几乎是一样的,除了 WebFaction 是一个更大的公司。我是 djangohosting.ch 的客户,只能说他们的支持很好。唯一让我担心的是您的应用程序的 60 兆内存限制,但直到现在我从未遇到过问题。 这在很大程度上取决于您的应用程序。我正在大量访问数据库,最多可以消耗 20MB 。我从未尝试对超过 5 个并发请求进行压力测试。也许我应该....【参考方案4】:我的回答有点晚了,但是……我是 Django 初学者,我的 first Django App 在 GAE 上运行。是App Engine Patch 实现了它。使用它,您可以使用 django admin 和其他几个开箱即用的应用程序。如果您想尝试一下,请选择主干版本。这个项目有合理的文档记录,并拥有响应迅速的社区。p>
【讨论】:
@Alexander:优秀的答案永远不会太迟:) 谢谢你的回答! @Alexander:你使用了现有的 Django 代码吗?似乎 Madewulf 的说法“大多数可用于 django 的应用程序将无法在 GAE 上运行,因为这些应用程序使用关系数据模型”不再正确。 我自己编写了我的应用程序。 Madewulf 是对的:将现有的 Django 应用程序移植到 AE 需要付出努力,即使在 AEP 的帮助下也是如此。只需查看项目的讨论组。有些框架已经移植,有些是从头开始编写的,例如 AEP 作者的gae-full-text-search.appspot.com。作者将构建 Django 到 AEP 的本地端口,请参阅 code.djangoproject.com/wiki/AppEngine 不幸的是,这不是近期任务。【参考方案5】:我是一名 Google 应用引擎开发人员,所以我不能对 webfaction 多说,但就我使用它而言,使用 app-engine 设置 web 应用程序非常简单¹。然而,支持人员不是很好。
1-http://code.google.com/appengine/articles/django.html
【讨论】:
@Diones:您能在 Google App Engine 的终端中看到您的 Django 文件吗?我想在终端的 Google App Engine 中查看我的项目中有哪些文件。 据我所知,没有。但我从未尝试过。 人们编写了一些源代码查看器库。但 App Engine 不是源代码控制 - 如果您需要这样做,UR Doin It Wrong.【参考方案6】:关于 GAE 需要记住的一点是,它的工作方式与标准的 python 安装方式不同,并且您拥有的应用程序在该环境中可能无法正常运行(或根本无法运行)。最大的区别是数据库。虽然 GAE 提供的非关系型数据库有很多优点,但您需要区别对待它,并且您的代码可能期望数据库能够执行许多它不能执行的操作。
如果您是从头开始开发应用程序,任何一个平台都可以正常工作。如果你有一个现有的 python 应用程序,让它在 GAE 上运行将需要大量的工作。
【讨论】:
以上是关于对于 Django 开发的初学者来说,Google App Engine 是不是比 Webfaction 更好? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Flask vs. Django ,Web 开发用哪个框架好?
给 Python 初学者:从零入门 Django 开发网站教程