【问题标题】:Scalability versus portability on clouds (Amazon/GAE/...) [closed]云上的可扩展性和可移植性(Amazon/GATE/...)[关闭]
【发布时间】:2012-12-07 10:54:06
【问题描述】:

我有一些用 PHP 编写的网站(目前在 VPS 上),它将从头开始重建为 Python。 作为平台,我主要考虑 GAEAmazon(或保持目前的 VPS)。 我想问你哪个更适合我。

我的一些看法:

  • 我知道 GAE 有一些限制,但是因为我要从头开始构建所有东西,所以它可能不是一个大问题(或者可能是?)。
  • 我听说亚马逊只提供虚拟机,所以我必须管理一切。它的可扩展性如何(我只需要移动滑块或使用服务器配置/编程?)
  • 如果我决定继续使用我当前的 VPS 并稍后迁移到亚马逊怎么办?会不会很痛苦,需要做很多工作?
  • 成本呢?

这个网站是我很久以前写的(一个月有100万个uniq用户),现在因为代码乱七八糟需要重建。 现在它托管在具有 2x2GHz + 750MB RAM(每月 20 美元)的小型 VPS 上。这已经绰绰有余了,但是在重建之后我计划添加更多的性能消耗功能,同时宣传它(这样网站就会增长)。 我选择了 Python (dJango) 作为框架。

由于它将完全重建,我正在考虑将其托管在云上。

【问题讨论】:

    标签: google-app-engine amazon-web-services cloud scalability portability


    【解决方案1】:

    Google App Engine 是 PaaS 的一个示例。 Amazon Web Services 主要是一个IaaS 解决方案(带有一些类似 PaaS 的组件)。它们是不同的服务模型,每种都有不同的优点和缺点。简而言之:PaaS 提供了对底层系统的更多抽象。这使得部署更容易(有时更容易),并消除了设计可扩展和持久环境所需的大部分系统工程专业知识。但是,这样做的代价是灵活性大大降低,通常每月费用更高,并且具有更大程度的“vendor lock-in”。

    您可能对 Amazon 的 Elastic Beanstalk 产品感兴趣,它是 PaaS 和 IaaS 的混合体。它是多个 AWS 组件(EC2、RDS、ELB、SNS)之上的一层,将它们组合在一起,形成一种更易于使用的类似 PaaS 的方式。 (免责声明:我的公司是 AWS 咨询合作伙伴网络的成员,我们为 Python AWS 库 Boto 编写了 Elastic Beanstalk 支持。)

    如果我决定继续使用我当前的 VPS,然后迁移到亚马逊怎么办?会不会很痛苦,需要做很多工作?

    这在很大程度上取决于您的应用程序。简而言之,您要确保您的应用程序服务器(实例)被视为一次性的:不要在它们上存储持久数据,也不要相互依赖。例如,如果您的应用程序接受用户上传的文件,它们应该存储在 S3 中,而不是本地卷上。您希望确保使用松耦合组件并使用 SNS 和 SQS 在它们之间进行通信。

    最大的变化在于您滚动代码的方式。您不能仅通过 SSH 或 FTP 进入单个服务器并上传最新版本。 Elastic Beanstalk 与 Git 很好地集成(请参阅文档),使这变得非常轻松,但它仍然是对您的工作流程的调整。如果您的 Elastic Beanstalk 无法满足您的需求,那么您需要开始考虑配置工具,例如 Puppet、Chef 或 Salt。我也将 Fabric 用于更简单的环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-08
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 2012-05-03
      • 2010-10-04
      • 2013-04-08
      相关资源
      最近更新 更多