Jenkins 持续交付、PaaS和基础架构自动化

Jenkins 持续交付、PaaS和基础架构自动化,jenkins,cloud,cloud-foundry,infrastructure,continuous-delivery,Jenkins,Cloud,Cloud Foundry,Infrastructure,Continuous Delivery,我正在阅读Jenkins的持续集成和持续交付(CD)主题。 Obv如果你想做CD,你必须将你的部署过程自动化到QA和P。我读了很多关于基础设施自动化和基础设施作为chef/puppet/docker的代码,这是做CD所必需的 我的问题:如果我在云上托管我的应用程序(即,我使用一些云铸造基础设施,如AWS或Azure),它会自动运行我的基础设施(或者?)。但是,如何在AWS上遵循基础架构作为代码呢?还是有必要 我的意思是,如果你自己托管你的应用程序,你必须实现基础设施自动化来制作CD,但在云端它已

我正在阅读Jenkins的持续集成和持续交付(CD)主题。 Obv如果你想做CD,你必须将你的部署过程自动化到QA和P。我读了很多关于基础设施自动化和基础设施作为chef/puppet/docker的代码,这是做CD所必需的

我的问题:如果我在云上托管我的应用程序(即,我使用一些云铸造基础设施,如AWS或Azure),它会自动运行我的基础设施(或者?)。但是,如何在AWS上遵循基础架构作为代码呢?还是有必要

我的意思是,如果你自己托管你的应用程序,你必须实现基础设施自动化来制作CD,但在云端它已经被给出了


我希望您理解我的“问题”

,它完全取决于您的解决方案的基础架构。特别是您正在使用的服务类型(来自云铸造基础设施)

例如,如果您使用AWS的EC2服务器来部署web应用程序,那么使用Jenkins+Chef或Puppet来持续部署该应用程序是完全合理的。因为您需要执行更细粒度的配置。您可以将基础架构作为代码实现,从jenkins管道一直到服务器配置,选择AMI部署新实例之类的东西。您将有更多的配置开销,但也可以更好地控制发生了什么以及如何发生


但是,如果您使用PaaS方法,例如AWS的Elastic Beanstalk服务,部署过程就更加透明,我觉得没有必要使用这些工具,只需一个步骤获取新的预构建版本人工制品的作业和另一个步骤使用命令行界面触发器更新新版本就足够了。但在这种情况下使用IaC并不会造成阻碍。

持续集成意味着存储库中的每个提交都应该自动生成并部署到集成/开发环境中。如果出现编译时错误或单元测试用例失败,则不应将其部署到集成环境中,同时,您的团队应收到关于生成失败的通知,并附上日志。如果您无法从云提供商处实现这些功能,则应使用Jenkins和CM工具。简言之,CI/CD只是一个概念。您可以使用Jenkins、CM工具来实现它,也可以编写自定义脚本,或者利用云服务。您可以选择其中任何一种,但请确保遵循所有CI/CD最佳实践


谢谢-KS

谢谢,这对我帮助很大!因此,PaaS可以简单直接地实现部署自动化,但另一方面,您无法自定义它@MaMoMt至少考虑一下我的回答,如果它对你有帮助的话。