Heroku 和DigitalOcean 等只是使部署到“云”托管更容易的服务。 Heroku 使用 AWS 的计算基础架构来托管您的应用程序,但提供了一个环境来帮助您更轻松地部署它们:
Why do people use Heroku when AWS is present? What distinguishes Heroku from AWS?
Heroku 与...
关于 Heroku 需要注意的一些重要点是您没有直接访问您的数据库的权限,也没有依赖他们的基础设施来维持(例如,如果他们的数据中心发生问题 - - 这曾经发生过 - 您受 Heroku 和 AWS 工程师的摆布)。
我们有两个问题:
- 您必须使用他们的 AWS Postgres DB
- 您必须通过 Heroku 的域进行路由
--
选择
您真正可以选择是使用RackSpace 之类的东西(像我们一样),还是使用Heroku 或DigitalOcean 之类的服务。对我来说,没有太大区别,因为 Heroku / DO 只是提供了一个环境来推动VPS 在各自的合作伙伴托管服务提供商上运行。
由于易于部署 (git push),您会遇到缺点,即您的数据库、环境等将无法直接配置。 IE 如果您使用 Heroku,则很难摆脱它(传输数据等)。
通过使用 RackSpace 或 AWS 等直接解决方案,您可以控制环境,这意味着您可以直接访问您的数据库、相关服务和系统的其他方面。当然,它需要更多维护,但您不会像 Heroku 那样被锁定在一个系统中
--
系统
系统方面,Heroku locks you into using their domain infrastructure:
域 example.herokuapp.com 将始终保持活动状态,即使
您已设置自定义域。如果您希望用户使用自定义
独占域,您的应用应发送 HTTP 状态 301 Moved
永久告诉网络浏览器使用自定义域。主人
HTTP 请求标头字段将显示用户尝试访问的域
使用权;如果该字段是 example.herokuapp.com,则发送重定向。
这与使用 Heroku 系统的不同依赖项和其他方面的锁定相结合。它基本上是亚马逊AWS 基础设施的店面
--
推荐
如果您希望拥有 5k 用户,我强烈建议您查看
设置自己的环境,可能使用RackSpace(正如我们
使用它们)。
我认为 Heroku 非常适合那些只想让应用程序启动并运行的开发人员,但它在提供您可以控制的环境方面并不是很好。
这方面的一些示例包括您的数据库 - 在 Rackspace 等上设置意味着您可以自己定义数据库。在 Heroku 上,数据库保存在您从未见过的第三方数据中心中(尝试在 Heroku 上设置 PHPMyAdmin)
另一个例子是您将如何扩展应用程序。如果您有内存泄漏等问题,您将更有能力拥有自己的堆栈,而不是依赖其他人的堆栈。它允许您定义应用程序应如何运行的具体细节 - 使扩展更容易