2017-04-27 82 views
0

我不是开发人员,但现在阅读关于CI/CD的内容。现在我想知道自动化代码部署的最佳实践。我读了很多关于到目前为止的预编译环境的代码部署。CI/CD:部署环境的原则

我现在的问题是,是否也是好的做法,例如,一个Jenkins工作流程,在创建新构建时从头开始部署环境。例如,为了测试新创建的版本,在测试之后再次删除环境。

我知道有各种插件可以与AWS,Azure等进行交互,这些插件可用于开发部署虚拟机的工作。 也有插件触发Puppet部署infra(作为代码),并且有插件可以调用架构流程。 因此,在部署代码之前,一切都可以部署基础架构和中间件(当然还有一些额外的工作)。

这是在现实生活中使用的东西吗?它是如何完成的?

我的问题的背景是我的兴趣在于尽可能少的点击来实现开发的全自动化,并且由于没有闲置机器而节省了按使用付费模式的成本。

回答

0

我现在的问题是,是否也是好的做法,例如, Jenkins工作流程,在创建新版本时从零开始部署环境

是的,从零开始部署环境是一种很好的做法。就像你说的,詹金斯和詹金斯的管道当然可以帮助你根据你的具体要求开始和协调这个过程。从头开始部署完整的环境是自动化最难的事情之一,如果这是自动化的,这意味着许多其他事情也是自动化的,例如基础架构,应用程序部署,应用程序配置等。

这是在现实生活中使用的东西吗?

是的,绝对。很多商店都这样做。您的环境越简单,就越容易,因此,拥有一个后端应用程序的创业公司在实现这种瓦尔哈拉国家时将会遇到相对较小的麻烦。但即使是创建最复杂的环境 - 拥有数百个相互依赖的应用程序 - 也可以完全自动化;它只需要更多的时间和精力。

我的问题的背景是我对开发的全面自动化感兴趣,尽可能减少点击次数,并通过不使用闲置机器节省每次使用费模式的成本。

是的,绝对。 “启动和销毁”策略有利于所有托管模式(因为在全自动化之后,没有人需要等待某人手动提供环境),但使用公共云的用户在成本方面看到更大的收益(与始终如一例如,让AWS环境运行)。

我很感激你的想法。

没问题。我会建议,这个问题不适合stackoverflow的问题和答案甜蜜点超好,因为它是相当一般的。在未来,我会建议与开发人员聊天,找到对此类事物感到兴奋的人,并且在你们被某些事情困在草丛中时制定更具体的问题。欢迎来到stackoverflow!

0

所有正在使用的各种组合;目标是为终端用户提供持续的价值。我的两分钱:

构建&发布 这取决于你使用的是什么。我个人建议使用该工具提供的内容。例如,VSTS(Visual Studio Team Services)提供完整的CI/CD管道。但是,如果您有一个唯有Jenkins才能提供的独特需求,那么您必须使用开箱即用的VSTS优惠。

IAC(基础设施即代码) 除了木偶等,您可以采取AZURE ARM的好处(Azure的资源管理器)的模板,以建立和破坏的环境。再次看看你有什么工具可以使用。

付费使用 我曾亲自使用什么是Azure的开发/测试实验室,并有通过CI/CD管道部署到该代码。稍后在虚拟机上设置关机策略,以便它可以根据提供的时间自动启动和自动关机。这是一个很棒的功能,可以让您节省使用的资源和复制环境的成本。

例如,UA环境在QA签出之前可能不需要。但是使用IAC,您可以自动快速启动环境,然后通过一键式部署设置将代码部署到UAT。