我是不是也必须为 Heroku 上的 staging 应用程序购买 dynos?

Posted

技术标签:

【中文标题】我是不是也必须为 Heroku 上的 staging 应用程序购买 dynos?【英文标题】:Do I have to buy dynos too for my staging application on Heroku?我是否也必须为 Heroku 上的 staging 应用程序购买 dynos? 【发布时间】:2021-04-22 05:36:24 【问题描述】:

我正在使用 Heroku 作为我的 Django 应用程序的平台,目前在免费的测功机上。我创建了我的应用程序的副本,以便将登台应用程序和生产应用程序分开。现在在应用程序启动之前,我愿意为我的生产应用程序升级到 Heroku 上的 Standart2X dyno 层,以便将多个进程用于后台任务。

问题是我的应用确实依赖于后台任务(缓慢且大量的 API 调用),所以我希望能够测试 在推送到生产环境之前,多个进程在暂存环境中工作

我不明白的是,我是否必须在登台和生产环境中升级我的测功机?也许我可以在 staging 中使用 hobby tier dynos(它也允许在 Procfile 中定义多种流程类型),因为它们比标准 dynos 便宜,但这感觉不对,因为应用程序源对于 staging 和生产会有所不同。也许我在这里遗漏了一些东西,或者我对这些概念的理解不够。

我对舞台制作概念有点陌生,所以我很欣赏各种有用的链接和建议。

【问题讨论】:

【参考方案1】:

在理想情况下,登台服务器与生产服务器完全相同,即使使用相同的数据,所以每个新版本都可以在与真实用户访问的环境没有差异的环境中进行验证。

话虽如此(几乎)永远不会发生,仅仅是因为它需要更高的成本(与 prod 具有相同规格的登台服务器)和维护(数据复制等) 一些系统和应用程序需要最高质量和安全性(即医疗保健、安全等领域的关键系统),因此他们确实投资于此类架构。

在您的情况下,我建议使用较小的暂存环境(免费或业余爱好),这足以在发布之前验证新功能。

【讨论】:

当然,这会对您的启动过程产生影响,一般分为 3 个步骤: 1. 开发并推送到 VCS 2. 从 VCS 部署到 Heroku-staging 和测试(Dyno 类型:免费或业余爱好)3. 修复错误后从 VCS 部署到 Heroku-live(Dyno 类型:全额付费)

以上是关于我是不是也必须为 Heroku 上的 staging 应用程序购买 dynos?的主要内容,如果未能解决你的问题,请参考以下文章

如何在部署在 heroku 上的解析服务器上使用云代码?

服务器错误(500)heroku 上的 Django 部署

Rails 6.1:Heroku 上的作业将使用 Async 而不是 Sidekiq

单个 Heroku 应用程序上的多个工作程序/Web 进程

为啥我的 Flask 应用程序在 Heroku 上被检测为 node.js

将具有 node_modules 的本地 Node.js 项目 Git 存储库推送到 Heroku 时,本地 node_modules 是不是会覆盖 Heroku 上的那些?