本文作者
景韵,Certified Jenkins Engineer,DevOps 时代联合发起人,高效运维社区核心成员,Certified DevOps Master,GOPS 全球运维大会优秀讲师。先后就职于用友、乐视,从事持续交付、DevOps 落地改进工作。曾主导用友集团DevOps 整体改进与持续交付平台建设;负责乐视EUI 持续集成方案改进。
雷涛, 百度工程效率部工具产品架构师,Certified Jenkins Engineer,Certified Scrum Master。先后就职于新浪、摩托罗拉、诺基亚、西门子、爱立信、乐视等国内外知名企业,专注于企业级软件工程效率提升、DevOps 解决方案、持续交付和软件配置管理等领域。
李华强,新乐视 SCM 组资深 DevOps架构师,Certified Jenkins Engineer,Jenkins Area Meetup 讲师。曾就职于飞维美地、爱立信、北电网络等多家外企,长期负责公司配置管理、持续集成等工作。
如何驱动持续交付与DevOps转型与落地?如何真正打破部门墙?如何实现端到端的服务交付?答案都是:用Jenkins!
相信大部分IT业者都应该听说过或者使用过Jenkins,研发工程师使用 Jenkins 执行编译打包,测试工程师使用 Jenkins 执行自动化测试,运维工程师使用Jenkins执行批量操作和自动化部署,Jenkins可谓是居家必备的神器。
Jenkins的前身Hudson诞生于2004年,由一名Sun公司的年轻工程师 Kohsuke Kawaguchi(KK)研发,一开始主要用于满足工程师本人的自动化需求,后来不断有开源爱好者贡献代码。2010年Oracle收购Sun后不久,Hudson和Sun公司其他著名开源软件Java、MySQL等一样面临抉择。2011年初,社区投票决定基于Hudson创建新开源项目——Jenkins。 在社区努力下,Jenkins发展远超Hudson, 逐渐成为最流行的开源工具之一,可以说是开源赋予了Jenkins全新的生命力。
Jenkins从解决工程师的切身需求出发,跟随社区一起成长,逐步从自动化工具升级为持续集成引擎、持续交付核心工具、DevOps核心工具。KK目前对Jenkins的定位是:Jenkins is the Hub of CD/DevOps Ecosystem,即Jenkins是持续交付/DevOps生态的核心。
Jenkins Core 提供了一个平台,借助Jenkins开源社区的力量,以插件的方式实现了一个持续交付与DevOps的生态系统。尤其是2.0后,Jenkins提供了对Pipeline的原生支持,而Pipeline又是持续交付的核心实践。Pipeline可帮助团队打通从代码提交到发布上线的端到端的交付过程,整合多角色(研发、测试、运维、安全等)职能、实践与工具集合,再配合BlueOcean的Pipeline可视化查看和编辑功能,能够让持续交付流水线设计变得更加容易实现。结合Jenkinsfile的使用,将流水线的编排以文件的方式采用版本控制系统管理起来,能够轻松实现Pipeline as Code。
Jenkins 应用是基于文件系统的,所有的配置和数据都存储在文件系统上。因此Jenkins Home目录的数据备份和恢复方案是Jenkins运维保障必须要有的。
首先,要理解Jenkins Home 下文件结构的含义,这样才能有效甄别出需要备份的有效数据。
其次,要选择适合的备份方案,可以使用一种或者多种结合的方式,确保有效数据得到备份。常用的备份方案主要有三种:
把Jenkins配置文件备份到版本控制仓库,有两大好处:
使用Gitlab作为备份仓库的基本步骤如下:
采用Git工具时的备份脚本示例如下图所示。
————
本文节选自集当今中国企业级 DevOps 实践大成的新书《DevOps三十六计》。本书由40位 DevOps 专家联袂打造,用115个案例分享技巧与规范,献1349条计策凝聚经验与智慧。点击阅读原文可直达秘笈,饱览一线DevOps专家真知灼见,观摩国内前沿实践精华,吸取先行者血泪经验,抢占企业未来竞争制胜点。