您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
要资料
 
     
   
 订阅
  捐助
持续交付流水线的敏捷利器:环境配置管理与应用部署自动化
 
  2577  次浏览      16
 2019-4-17 
 
编辑推荐:
本文来自于dbaplus.cn,文中主要讲解了传统环境配置管理存在的问题,以及具体的应用管理。

业界关于持续交付有如下图所示的5级能力成熟度模型:

今天我们就来聊聊持续交付流水线中的环境配置管理工作。

DevOps、持续交付、环境配置管理

持续交付作为DevOps的核心实践,涵盖了从开发到测试到部署上线的过程,是持续集成的延伸,持续交付流水线中涉及很多环节,而每个环节基本上都跟环境配置管理相关。

例如开发阶段的构建环境、联调环境、测试阶段的功能测试环境、性能测试环境、安全测试环境、兼容性测试环境,发布生产前的准生产部署环境等。

整个开发环境可分为本地开发环境,测试环境,准生产环境,生产环境。当产品通过了各种测试,例如: 功能测试,性能测试,系统测试等等,需要部署到准生产环境,其特点是与生产环境参数基本一致,在用户接受测试通过之后,可根据业务需求或决策部署在生产环境了。

传统模式下的环境配置管理问题

DevOps的目标是通过建立并不断完善持续交付的流水线,最终达到无需人工干预的持续交付过程。从代码开发到持续集成,创建测试环境,运行测试并报告结果,完成各种测试计划中任务,最后是业务决策交付或部署上线。

下图是一个典型的持续交付流水线,可以看到流水线经过了好几套环境的测试、验证,可见环境配置管理工作的重要性。

传统模式下的环境配置管理通常存在以下问题:

1、手工准备环境,对冲突无控制。

软件安装麻烦、来源不一致、安装方式不一致、杂乱无章。

共用一个服务器开发环境,隔离性差,互相冲突。

可移植性差,例如和生产环境不一致,开发人员之间也无法共享;新人入职通常又折腾一遍开发环境,无法快速搭建。

2、基础设施环境的准备工作繁琐,跨部门流程冗长

3、手工部署软件

部署和发布过程以及发布后的验证都依赖人工进行,容易出错,并且效率有待提升。

4、环境资源无法共享

环境资源缺乏动态调配能力,造成资源浪费。

环境配置管理与应用部署自动化

为了有效解决上述问题,提高持续交付流水线的效率,我们需要开展环境集中配置管理的工作。主要从以下几方面入手:

基础设施环境配置管理

基础设施(Infrastructure)代表了你所在组织中的所有环境,以及支持其运行的所有服务,如DNS服务器、防火墙、路由器、版本控制库、存储、监控应用、邮件服务器,等等。

基础设施管理的基本原则:

(1)使用保存于版本控制库中的配置信息来指定基础设施所处的状态;

(2)基础设施应该具有自治特性,即它应该自动地将自己设定为所需状态;

基础设施不但应该具有自治特性,而且应该是非常容易重新搭建的。当出现硬件或其它问题时,就能迅速重建一个全新的已知状态的环境配置。所以,基础设施的准备工作也应该是一个自动化过程。自动化的准备工作与自治性的维护相结合,可保证一旦出现问题就能在可预见的时间内重建基础设施。

(3)通过监测手段,应该每时每刻都能掌握基础设施的实时状况。

应该与交付流程的其它方面一样,把创建和维护基础设施需要的所有内容都进行版本控制:

(1)操作系统的安装定义项(例如使用Debian Preseed、RedHat Kickstart和Solaris Jumpstart)。

(2)数据中心自动化工具的配置信息,例如Puppet、CfEngine等。

(3)通用基础设施配置信息,例如DNS区域文件、DHCP和SMTP服务器配置文件、防火墙配置文件等。

(4)用于管理基础设施的所有脚本。

部署流水线的基础设施变更管理工作:

(1)对于任何基础设施的变更部署到生产环境之前,应该验证所有的应用程序在这些变更之后也能正常工作,并确保在该新版本的基础设施之上,所有受到影响的应用程序的功能和非功能测试都能成功通过。

(2)将这些变更应用到测试和生产环境上。

(3)流水线应该执行部署测试,确保新的基础设施配置已成功部署。

基础设施的版本配置管理工作还包括:

管理应用程序和应用程序所依赖的基础设施之间的版本依赖。也就是说,为了能够正常工作,就要记录每个应用程序需要哪个版本的基础设施。

应用部署与发布管理

良好的环境配置管理能为应用部署和发布创造高效的环境,而应用部署与发布工作本身也应该做集中化的配置管理工作。例如,制定完善的发布计划:

1、第一次部署应用程序时所需的步骤;

2、作为部署过程的一部分,如何对应用程序以及他所使用的服务进行冒烟测试;

3、如果部署出现问题,需要哪些步骤来撤销部署;

4、对应用程序的状态进行备份和恢复的步骤是什么;

5、在不破坏应用程序状态的前提下,升级应用程序所需要的步骤是什么;

6、日志文件放在哪里,以及他包含什么样的信息描述;

7、如何对应用程序进行监控;

8、作为发布的一部分,对必要的数据进行迁移的步骤有哪些;

9、前一次部署中存在问题的记录以及他们的解决方案是什么。

对发布过程进行建模并让构建晋级:

1、为了达到发布质量,一个构建版本要通过哪些测试阶段(例如集成测试、QA验收测试、用户验收测试、试运行以及生产环境)

2、每个阶段需要设置什么样的晋级门槛或需要什么样的签字许可。

3、对于每个晋级门槛来说,谁有权批准让某个构建通过该阶段。

最后,还需要建立高效的自动化部署机制:

每个需要部署应用程序的人都能用这种自动化部署机制,而不需要了解部署本身相关的任何技术知识,一旦部署完成后,自动运行一个冒烟测试来验证部署成功与否,这样,做应用部署操作的人(包括分析人员、测试人员或运维人员)就可以确认该系统运行正常,即使不能正常运行,也很容易找到原因。

1、选择需要部署的应用程序版本之后自动执行后续的部署步骤。

2、环境及相关基础设施的准备应该以完全自动化的方式进行。

3、部署应用程序的二进制包应该从制品库中拿到,而不是每次部署时重新构建出来。

4、对应用程序进行配置。应用程序的配置信息应该以某种统一的方式来管理,并在部署和运行时使用。

5、准备或迁移该应用程序所管理的数据。

6、对部署进行冒烟测试。

7、执行测试(可能是手工的,也可能是自动化的)

8、如果应用程序的这个构建版本通过了这些测试,允许其晋级到下一个环境中。

9、如果应用程序的这个构建版本没能通过这些测试,记录一下是什么原因。

小结

本文简述了传统环境配置管理存在的问题,以及在持续交付流水线工作模式下的环境配置管理的具体做法。

随着Puppet、Ansible、SaltStack,持续集成、持续交付、DevOps,Docker、开发测试云平台等技术和方法的日渐成熟和被企业所接受,相信越往后边,持续交付流水线的环境配置管理、应用部署管理工作将越自动化、敏捷化!

   
2577 次浏览       16
相关文章

为什么要做持续部署?
剖析“持续交付”:五个核心实践
集成与构建指南
持续集成工具的选择-装载
相关文档

持续集成介绍
使用Hudson持续集成
持续集成之-依赖管理
IPD集成产品开发管理
相关课程

配置管理、日构建与持续集成
软件架构设计方法、案例与实践
单元测试、重构及持续集成
基于Android的单元、性能测试

聚圣源武汉无症状感染者传染性很低独奏曲内牛满面睿字好还是什么字搭配起名化妆品销售公司起名段氏起名男孩名字柳姓女孩起名古风纯音乐歌单怎么起名生日快乐留言代码武侯二手房建筑公司起名大全参考免费廉政总结三国小说排行榜丑妃驾到湖南电视台娱乐频道佛教在线梦见被蛇咬是什么意思属龙人适合起的名字上海新闻综合频道安徽直播剑王朝小说tvs2姓名与人生取名免费起名给小孩起名字 姓罗好好电影网恶人传电影怎么排序把相同的名字排在一起免费在线店铺取名起名大全战神3pc下载取名起名大全大全免费版淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化