【问题标题】:Is there any stable tool for complete web deployment & CI? [closed]是否有任何稳定的工具可用于完整的 Web 部署和 CI? [关闭]
【发布时间】:2016-03-14 19:07:11
【问题描述】:

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

我们的想法是为所有环境(如 dev、prod、test 等)提供一个包含所有配置的魔术盒,以便在裸 linux 机器 (VPS) 上简单地键入 magicbox deploy --env prod 以完全部署一个应用,包括:

  • 配置 nginx/apache
  • 使用所有依赖项和模块配置 php
  • 为 mysql 配置所需的用户和数据库
  • 已配置的搜索引擎(如 Sphinx、ElasticSearch)
  • 一个管理已安装box的系统,例如使soft / hard重新启动(不丢失/丢失持久数据)

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

非常感谢您分享您的经验。

【问题讨论】:

  • 如果您想以最少的学习曲线部署完整的服务器/应用程序,只需使用 Heroku 或 EngineYard 之类的主机。从头开始自己设置服务器并部署您的应用程序......这很复杂。没有灵丹妙药。
  • @jszobody 谢谢。很明显,我可以使用云基础设施提供商。但是在某些情况下,我有一个 VPS 和代码,我需要自己自动化部署。此外,云提供商并没有解决在本地部署所需内容或进行测试的问题(在我们公司,我们在自己的机器上运行测试)。我相信一定有解决办法。

标签: php deployment docker continuous-integration virtualization


【解决方案1】:

你的问题很混乱:

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

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

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

【讨论】:

  • 非常感谢!我刚刚观看了一段 30 分钟的视频,解释了 Ansible 是什么,现在我发现它适用于部署和配置管理。感谢您总结我的想法并帮助找到解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
相关资源
最近更新 更多