是否有任何稳定的工具可用于完整的 Web 部署 & CI?

Is there any stable tool for complete web deployment & CI?

我花了很多时间试图为应用程序部署找到一个完整稳定的解决方案(在我的例子中是 php)。有一个 lot of answers,其中 phing / capistrano / hudson 正在被提议,但是这样的命题让我很伤心。

我们的想法是拥有一个包含所有环境(如开发、生产、测试​​等)的所有配置的魔术盒,以提供在 [=58] 上简单地键入 magicbox deploy --env prod 的可能性=] 机 (VPS) 来完全部署应用程序,包括:

我受到 Vagrant / Docker 的启发,因为它们看起来与我正在寻找的非常相似,但是很多人都说他们是 not ready for use in production。此外,我是虚拟化的初学者,我不清楚 Docker 是如何工作的,使用 Docker 对机器性能意味着什么,是否可以将它与 any VPS 提供商。

非常感谢分享您的经验。

你的问题很乱:

  1. 配置管理:
    使用 Ansible、Saltstack、Puppet、Chef
  2. 等工具设置 Web 服务、数据库等
  3. 将代码从存储库部署到生产环境:
    像 Docker 图像或 deb\rpm 包一样构建包或使用 Ansible\Fabric\Capistrano 脚本
  4. 直接从源部署
  5. 持续集成:
    每次提交后或通过调度自动获取源代码,将其部署到测试环境,执行测试,然后将更改合并到 master 中,甚至使用 Jenkins、Hudson、Teamcity、Buildbot 等工具将其部署到生产环境中,等等
  6. 大型复杂环境的服务编排:
    当您拥有大量组件和云实例时,环境需要复杂的设计和管理。对于这种情况,DevOps 使用 "cloud operating systems" 之类的 Mesosphere 或编排工具,例如 Nomad 或 Juju

在最简单的情况下,我建议使用 Ansible 设置组件,使用 Vagrant 进行本地测试,使用 AWS 或任何 VPS 进行生产。当您的团队将成长为自动化时,您可以将 Jenkins 用于私有存储库或将 Travis-ci 用于开源项目。

并在您成长时聘请优秀的 DevOps ;)