我想变得更有效率,我想高效地使用操作操作工具。
考虑到这一点,我想了解更多关于持续集成的知识,但是它似乎有很多不同的东西。
我实际上是在我的工作中使用Jetbrains套装(IntelliJ,WebStorm.),所以我想继续使用它们,我想使用TeamCity,这似乎是一个很好的工具,有很多插件可以持续集成。
我的问题是我不知道以下几个方面有什么区别:
你能帮我理解一下这个吗?
发布于 2015-05-09 17:05:34
维基百科很好地总结了大部分这些术语。以下是我对它们的看法:
至少,您需要具有构建自动化,即某种类型的构建脚本。这使您可以单击一个按钮或发出一个命令来构建项目。这样做的好处是减少了手动运行步骤所产生的错误。复杂的构建环境可能包括生成代码(从信任信息生成道斯、编写接口代码(如JAXB)、编译代码、打包代码、自定义元数据等等。有很多东西需要检查:为什么不将清单作为构建脚本,并使用工具运行它呢?它减少了错误并提供了一致性。
接下来是CI:这确实是很好的,但不是严格要求。它有助于尽早发现构建问题。如果您有多个开发人员一整天都在签入代码,并且可能没有经常同步他们自己的工作区,那么他们的更改就有可能相互干扰。我指的是静态代码错误,而不是版本控制冲突。CI构建服务器将降低此风险。
最后,我们有了部署步骤。这里的想法是节省时间,减少手工部署软件的错误。就像构建自动化一样,有上百种方法来破坏软件部署。我个人在办公室呆到很晚,在很多情况下,我们需要为明天到达现场的客户提供一个正常运行的系统,以解决手动部署问题。自动化多个系统会带来更大的风险:而不是一个系统可能崩溃或出现奇怪的错误,我们现在有多个系统可能出错。然而,这种风险远远低于某个人在检查表上遗漏了一步,或者发出了错误的命令并扰乱了部署。如果幸运的话,您可以简单地还原一个DB备份并重新启动,如果您运气不好,一个错误可能会导致系统不正确地工作。这是一个软件缺陷吗?技术人员没有正确设置配置吗?这需要时间来诊断,你可能没有的时间,和时间,不需要花费,如果你自动化的过程。
发布于 2017-01-27 18:41:05
我建议阅读这本书以获得更多信息:
发布于 2017-01-27 15:31:24
Teamcity和许多构建工具一样,只是一个中心应用程序,它允许您运行许多不同的任务。这包括执行诸如CI构建、全发布构建之类的构建,并允许您执行部署。如果您正在使用teamcity调用ant或nant在解决方案文件上运行msbuild,则还可以调用将执行部署的nant脚本。它可能需要一些脚本,但并不难。
我们使用团队和竹的完整CI,数据库CI和部署到INTegration环境。然后,我们使用teamcity进行完整的发布构建,并自动创建db迁移脚本。它们通过调用nant脚本的teamcity作业签入SVN。对于部署,您已经猜到了,我们使用teamcity来调用nant来执行部署任务。这可以很好地工作,因为teamcity代理与teamcity服务器对话,并且代理可以存在于DMZ位置中的一个服务器上,这有助于将代码移到防火墙之外等等。所以,要处理整个场景,只需工作组或竹。
https://softwareengineering.stackexchange.com/questions/283386
复制相似问题