构建大规模 REST 服务 - PHPFog、cloudControl、Orchestra 或 Amazon AWS [关闭]

Posted

技术标签:

【中文标题】构建大规模 REST 服务 - PHPFog、cloudControl、Orchestra 或 Amazon AWS [关闭]【英文标题】:Building large scale REST service - PHPFog, cloudControl, Orchestra or Amazon AWS [closed] 【发布时间】:2012-03-17 17:58:34 【问题描述】:

我即将规划和构建一个大规模的 REST 服务。因此,我研究了如何在云中进行设置。一开始我想用 Amazon RDS 和 Amazon EC2 来做这件事——但是我后来研究了各种 php 云平台服务(PHPFog、cloudControl、Orchestra),这些服务看起来正是我想要的。

但是我确实对此有一些疑问:

这三种服务的总体区别是什么? (PHPFog、cloudControl 和 Orchestra) 我想要一个可以在高峰时段自动扩展的平台,这意味着我不应该整天为高峰时段所需的资源付费。至于我读到的,PHPFog 不支持弹性缩放? 这些性能如何? Twitter、Facebook 等大型服务能否在这些平台上运行? 这些服务是否支持备份? 在选择这些平台之一时我还应该考虑其他什么?或者我不应该选择其中之一?

【问题讨论】:

您可能还想查看其他一些选项。 PaaS 和纯 EC2 之间的东西:像 Scalr.net 或 Rightscale 这样的云管理服务。它们使管理您的基础架构变得更加容易,但您仍然保持比使用 PaaS 更多的控制权。也许是这两种解决方案之间的一个很好的折衷方案。 @webgr:感谢朋友的评论!我一定会看看这个。 【参考方案1】:

PaaS 托管是相对较新的。我认为没有供应商超过 2 年的 Beta 版。场景瞬息万变,越来越多的初创公司进入市场。而且很难比较它们,每个都有自己独特的风格和定价模式。

Shameless Plug:我们(•fortrabbit)也在为欧洲开发 PHP PaaS。这就是我们对其他人如此了解的原因;) 我们刚刚编写了一个 PHP PaaS 比较。 11 家供应商——当前情况的快照:

http://blog.fortrabbit.com/comparing-cloud-hosting-platforms/

选择正确 PaaS 的提示

测试服务,总有免费方案 选择您所在国家/地区的供应商(计费、法律方面和速度) 考虑是否需要 CLI 或 GUI

【讨论】:

【参考方案2】:

(1) 我不能代表 PHPFog 或 cloudControl,但我可以告诉你一些关于 Engine Yard 的 Orchestra 平台的信息。

堆栈: 我们使用 nginx 1.1.x 和 PHP 5.3.9。我们也使用 nginx 作为缓存层和负载均衡器。不鼓励写入文件系统,以便应用是无状态的,并且可以轻松复制和分发,让您可以水平扩展。 部署: Git 或 SVN。部署应用程序后,Orchestra 将每 60 秒检查一次您的存储库并自动下拉任何更改。您只需要担心将更改推送到您的存储库。 计费:我们按小时计费。当您部署应用程序时,我们会按小时向您收费,因此您只需按使用量付费。 支持:Olark Live Chat、Tender 应用票支持(ZenDesk 即将推出)、IRC、Twitter、电子邮件 + 入职支持(称为 PANDA) 扩展:您的应用程序可以自动扩展和缩减以适应流量高峰和增加的负载。

(2) Orchestra 支持自动缩放应用程序。负载均衡器位于弹性应用程序的前面,并将工作负载分配给与应用程序关联的所有实例。如果您的应用遇到流量高峰,我们将添加缩放单位,直到可以满足请求。一旦流量消退,您的应用程序将再次缩减。有关更多详细信息,请参阅我们关于弹性的博文:

http://www.engineyard.com/blog/2012/orchestra-elastic-apps-for-everyone/

(3) 您可以在 Orchestra 上运行小型和大型应用程序。如果您的应用程序是无状态的并且可以水平扩展,我们可以无限期地为您扩展它。有关如何构建无状态应用程序的更多信息,请参阅我们关于系统约束的文档:

http://docs.orchestra.io/kb/system-constraints/system-constraints

随着您的规模越来越大,您无疑会希望在您的应用程序旁边运行其他服务。像 Twitter 或 Facebook 这样大的东西通常由一系列不同的应用程序和服务组成。我们通过我们的插件提供一些额外的服务,我们将继续添加更多。如果您还有什么想看的,请告诉我!

(4) Orchestra 每小时备份一次 mysql 服务器。在内部,我们每 3 小时备份一次用户配置、负载均衡器配置和用户设置。该代码是从您的存储库中提取的,因此我们不会对其进行备份。

【讨论】:

【参考方案3】:

    虽然它们都是 PHP 的 PaaS,但可能很容易开始根据功能集和定价进行苹果对苹果的比较。您可以自己轻松完成此操作,因此我将重点介绍一些不太明显的事情来考虑。

    生态系统:借助 PHP Fog,我们的平台上运行着成千上万的应用程序,我们每天都在以更快的速度增长。这意味着它被证明是一个平台。这也意味着您可以让其他客户在讨论论坛、编写教程等方面为您提供帮助。 支持:我们有三名专门的支持工程师。您将很快获得对未解决问题的有用回复。如果您需要它,他们可以潜入并帮助您编写代码。如果您有特殊情况要求,他们也可以处理。 大客户:除了有大生态系统,我们还有大客户。一些客户每天有大约一百万次点击。我们还有其他人拥有更多。

    PHP Fog 正在添加对计划和响应式缩放的支持;但是,与此同时,您可以使用滑块进行缩放。我们还将很快发布 API 和命令行工具,因此您也可以自己设置自动缩放。这很容易。

    我们的应用程序托管在 PHP Fog 上,每天处理超过一百万个请求,它们运行时没有任何问题,并且还有增长空间。我已经提到了我们很棒的支持团队,他们可以帮助您构建应用程序,以便为 PaaS 环境做好准备。

    整个 PHP Fog 平台在堆栈的每个部分都内置了冗余、故障转移和备份。这包括负载平衡器、Varnish 缓存服务器、应用程序服务器、数据库服务器、git 存储库。

    是的,您应该考虑其他不特定于 PHP 的 PaaS 播放器。 AppFog 支持多种语言(PHP、Ruby 等)。它还支持 MySQL、MongoDB、Redis 等数据库技术。如果您坚持使用 PHP/MySQL 堆栈,则可能不需要它。但是,如果您将来确实需要添加其他服务,这会容易得多。

【讨论】:

以上是关于构建大规模 REST 服务 - PHPFog、cloudControl、Orchestra 或 Amazon AWS [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 XAMPP 服务器上创建 wordpress 数据库?

使用 Spring 构建 REST 服务

当我有 REST 服务时,我是不是需要 JSF 来构建前端? [复制]

2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务

springboot构建rest服务,打包docker镜像

用jersey构建REST服务系列文章