在Heroku

时间:2016-03-03 19:17:47

标签: python django heroku deployment

我正在开发一个Django应用程序,我完成了大约50%。我在一个我想开始向人们展示它的地方,因此我需要部署它。我已经决定将在Heroku上托管它。我想从一开始就正确地做到这一点,因此我的问题清单如下......

以下是目前的状况:

  • 我想在Heroku中使用新的管道功能。这样我就可以 在我的应用程序的暂存版和生产版之间轻松移动。
  • 我想使用CI服务器(目前我在看circleci.com)
  • 我正在使用Python 3.5
  • 我希望在部署中尽可能自动化 流程,例如运行迁移和测试(如果需要)等。
  • 不确定是否重要,但我的代码托管在Bitbucket

所以,我的问题是:

  1. CI服务器显然运行测试。我应该运行我的测试吗? Heroku上的升级和生产dyno也是如此?
  2. 我应该从CI服务器直接部署到Heroku吗?
  3. 我应该使用哪些工具来自动部署?我不能使用fabric(仅限python2),invoke看起来不准备生产。如果我只编写自己的简单部署脚本,这样可以吗?
  4. 然后还有很多其他的工具,比如我已经读过的docker和tox,但是我不确定我是否需要它们?
  5. 在向Heroku部署Django应用程序时,我应该记住的其他事情吗?

1 个答案:

答案 0 :(得分:3)

  1. 我不清楚你是否想进行单元测试或验收测试,但我肯定不会在生产中运行它们。 (如果您正在进行分析,AT会破坏您的数据)
  2. 第二个问题的答案取决于偏好。实际的持续集成意味着,如果你推动某些东西掌握,并且它通过了每一个测试,那么它就可以进行,所以它就会上线。这是一个不错的主意,但如果您希望某个功能在特定时间上线,并且您不想使用功能开关,那该怎么办?我认为按下按钮不会太痛苦。
  3. 我认为bash脚本足以简化构建(我在滔滔不绝的流程中浪费了2天之后就这样说了。)
  4. Docker是一个很好的工具,但有很多原因,但是如果您正在构建一个Django应用程序,我认为没有必要使用它。它只是让事情变得更难(我想这意味着你还没有经历过+1的事情,所以它可能会引起很多麻烦)。
  5. 请确保您的Django秘密未承诺使用bitbucket:https://github.com/matyasfodor/todo-django/blob/911614c7e41f58debe4a6369c9f0fa3cad0c52a2/todo/settings.py#L23(并且没有其他秘密......)