云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站空间_虚拟主机什么意思_限量秒杀

小七 141 0

宽带网速一般多少兆_网站_数据和大数据的区别

你有没有经历过这样的事情:你在一个应用中做了一个改变,淘客怎么做,当你去检查构建的结果时,你发现了一个与你的改变无关的错误?然后你注意到你的建筑是一年来的第一次。然后你意识到你无意中成为了这方面的专家应用程序。你不知道是什么变化导致了这次失败,也不知道什么时候发生了变化。是否有一个Jenkins代理变成了一个雪花服务器,在每次构建之前文件系统上都会累积一些垃圾?某些未固定的外部依赖项是否以向后不兼容的方式升级?生成计划用于连接到源代码管理的凭据是否已轮换?依赖系统是否脱机?或者——我意识到这是不可想象的——你是否合法地违反了考试?这种类型的考古探险不仅对那些碰巧使用这个应用程序的人来说是一个不好的时机("任何好事都不会受到惩罚"),而且它也是不必要的。有一个简单的方法可以减少连接因果关系所需的认知负荷:更频繁地构建。实现这一点的一个方法是编写脚本来维护我们的应用程序。当我们构建时,我们的目标是生成一个等效的工件,联网,除非在源代码管理中对应用程序进行了更改。因此,优惠券代理平台哪个好,我们将所有依赖项固定到特定的版本。但我们也不想让依赖关系的旧版本变得乏味,不管是内部的还是外部的。所以我们也有一个自动维护脚本,它会转发所有这些版本并提交结果。我们使用docker来构建和部署我们的应用程序,每个应用程序都依赖于docker注册表中的一个基本映像。所以我们应用程序中的Dockerfile会有一行这是:来自our.registry.example.com/rosettastone/sweet-回购:jenkins-awesome-project-sweet-repo-5We-build我们的基本图像在Jenkins中,并用"Jenkins"$BUILD_标记来标记它们,所以这个应用程序使用的是rosettastone/sweet回购基本映像的构建5。假设我们更新了sweet repo基本映像,使之使用ubuntu16.04而不是14.04,这导致了基础映像的构建6。我们的自动维护脚本负责将使用此基础映像的应用程序升级到最新版本。自动维护脚本中的步骤如下所示这个:想办法你是什么基本图像标签使用。查找通过查询docker来获得该基本图像标记的最新版本注册表。如果必要时,更新应用程序Dockerfile中的FROM行以获取最新版本版本。我们对库依赖项执行相同的操作。如果我们Gemfile.lock文件正在引用旧库,运行自动维护将更新内容。同样的情况也适用于我们的"Jenkinsfile"。如果我们决定实施一个新的策略,放弃旧的构建,我们会更新auto-maintenance,这样它就可以使每个应用程序都符合策略,例如,通过更改nkins文件:Jenkinsfile(之前)到这个:詹金斯菲尔德(之后)我们试图解释这些事情(所有我们可以)在我们的自动维护脚本中,而不是手动更新应用程序,因为这减少了保留应用程序的摩擦标准化。一次创建一个自动维护脚本(从小处开始),只需运行它即可。我们基于"操作"和"非操作"来运行我们的程序,当一个内部库发生变化时,我们启动应用程序构建,所以库的Jenkinsfile可能看起来像这个:JenkinsfileWhen auto maintenance更新应用程序中的某些内容,移动物联网,我们让它将更改提交回应用程序,从而触发应用程序的构建,如果一切顺利的话,这是一部作品部署为了避免一年的构建干旱,唯一缺少的环节就是绕过自动提交实际上并没有更新某个应用程序中的任何内容的问题。如果依赖关系没有改变,或者相关技术没有受到太多关注,那么自动维护可能在很长一段时间内不会做任何事情,即使脚本是按照使用cron的计划运行的。对于这些情况,在每个应用程序的管道中放置cron触发器将确保仍然根据碘:詹金斯菲林在这种情况下,这些周期性构建与上一次构建不会有任何不同,但是当某些东西发生故障时,这种策略将允许您决定何时发现它(通过让cron@weekly,@我将在2017年的Jenkins World 2017大会上介绍更多关于这个主题的内容,而不是让一些差劲的开发人员在他们做一些愚蠢的事情时发现这个问题,人工智能龙头企业,比如将代码提交给一个很少修改的应用程序。如果您还没有注册,请使用代码JWHINMAN获取20%关了,凯文伯内特·德沃普斯领队罗塞塔·斯通查看原帖詹金斯.io.