我不是一个开发人员,但正在阅读有关CI/CD的内容。现在,我想知道自动化代码部署的良好实践。到目前为止,我读了很多关于将代码部署到预先存在的环境的文章。
我现在的问题是,在创建新构建时,使用Jenkins工作流从头部署环境是否也是好做法。例如,用于测试新创建的构建,测试后再次删除环境。
我知道有各种插件可以与AWS、Azure等交互,这些插件可以用来开发用于部署虚拟机的作业。还有一些插件可以触发Puppet来部署在下面(作为代码),还有一些插件可以调用基础设施业务流程。因此,所有东西都可以在部署代码之前部署基础设施和中间件(当然需要额外的努力)。
这是在现实生活中使用的东西吗?怎么做的?
我的问题的背景是我对尽可能少点击的开发的完全自动化感兴趣,并通过没有空闲的机器来节省每次使用的费用。
发布于 2017-04-28 01:40:20
我现在的问题是,在创建新构建时,使用Jenkins工作流从头部署环境是否也是一个好做法。
是的,从零开始部署环境是一个很好的实践。正如您所说的,Jenkins和Jenkins管道当然可以帮助启动和编排该过程,这取决于您的具体需求。从头部署一个完整的环境是最难自动化的事情之一,如果这是自动化的,这意味着许多其他事情也是自动化的,例如基础设施、应用程序部署、应用程序配置等等。
这是在现实生活中使用的东西吗?
是的,当然。很多商店都这么做。你的环境越简单,它就越容易,因此,一家拥有一个后端应用程序的初创公司在实现这一瓦尔哈拉状态时会遇到相对较小的困难。但是,即使是创建最复杂的环境--拥有数百个相互依赖的应用程序--也可以完全自动化;这只需要更多的时间和精力。
我的问题的背景是,我对开发的完全自动化感兴趣,尽可能少的点击和节省成本,在每次使用的模式,因为没有闲置的机器。
是的,当然。“拆分和破坏”策略对所有托管模式都有好处(因为在完全自动化之后,没有人需要等待有人手动提供环境),但是那些使用公共云的用户在成本方面看到了更大的好处(例如,相对于总是让AWS环境运行)。
我很感激你的想法。
没问题。我会建议这个问题不适合堆叠溢出的问题和回答甜点超级好,因为它是相当笼统的。在未来,我建议与您的开发人员聊天,找出对这类事情很感兴趣的人,并在您陷入困境时提出更具体的问题。欢迎来到堆栈溢出!
发布于 2017-05-01 05:48:06
所有这些都在各种组合中使用;目标是向最终用户提供持续的价值。我的两分钱:
构建和发布--这取决于您使用的是什么。我个人建议使用可用的工具。例如,VSTS ()提供完整的CI/CD管道。但是,如果您有一个独特的需求,只能由Jenkins提供,那么您必须使用它,而VSTS则提供现成的服务。
IAC (基础设施作为代码)、以及木偶等。您可以利用AZURE (Azure )模板来构建和破坏环境。再一次,看看你拥有的工具集有什么可用。
付费,我个人使用的是Azure /Test,并通过CI/CD管道将代码部署到这里。稍后在VM上设置关机策略,以便根据提供的时间自动启动和自动关闭。这是一个很好的特性,可以让您节省所使用的资源和复制环境的成本。
例如,在QA被注销之前,可能不需要UAT环境。但是使用IAC,您可以快速地自动调整环境,然后单击部署设置将代码部署到UAT。
https://stackoverflow.com/questions/43657897
复制相似问题