资源描述
,1/24/2019,#,1/24/2019,#,技术创新,变革未来,移动运营商的,DevOps,实践,技术创新 变革未来移动运营商的DevOps实践,1,目录,运营商的,Devops,成熟,度,结果,1,搭建弹性高可用,的,构,建,环境,2,代码质量检查提,前,到,开,发,阶,段,3,安全高效的应用,部,署,4,小结和思考,5,目录运营商的Devops成熟度结果1搭建弹性高可用的构建环境,2,研发运营一体化成熟度评估是什么,一级,二级,三级,四级,五级,初始级,基础级,全面级,优秀级,卓越级,在组织局部范围内开始尝试,D,e,v,O,p,s,活动并获得初期效果,在组织较大范围内推行,D,e,v,O,p,s,实践并获得局部效率提升,在组织内全面推行,D,e,v,O,p,s,实践并贯穿软件全生命周期获得整体效率提升 在组织内全面落地,DevOps,并可按需交付用户价值达到整体效率最优化,在组织内全面形成持续改进的文化并不断驱动,D,e,v,O,p,s,在更大范围内取得成功,研发运营一体化成熟度评估是什么一级二级三级四级五级初始级 在,3,持续交付能力成熟度评估根据配置管理、构建与持续集成、测试管理、部署与发布管理、环境管理、数据 管理、度量与反馈等,七大领域,十四个维度,进行。,持续交付,配置管理,构建与持续集 成,测试管理,部署与发布管理,环境管理,数据管理,度量与反馈,版本管理,构建实践,测试分层管理,部署与发布模式,环境管理,测试数据管理,度量指标,变更管理,持续集成,代码质量管理,持续部署流水线,数据变更管理,度量驱动改进,自动化测试,持续交付成熟评估,持续交付能力成熟度评估根据配置管理、构建与持续集成、测试管理,4,评估方式,持续部署流水线,级别,构建方式,构建环境构建计划,构建职责,卓越级,持续改进服务易用性,持续改进构建性能,实现,持续优化的构建服务平台,,构建资源动态按需分配回,分级构建计划,实现按需,收,如搭建基于云服务虚,构建并达到资源和速度的,拟化和容器化的分布式构,有效平衡,建集群,将 成,构建能力赋予全部团队 员,并按需触发构建实,现快速反馈,优秀级,分 构,优化构建速度,实现增量,实现构建服务化,可按需,化构建和模块化构建,如,级构建计划,实现按需,构建系统服务化提供更多,提供接口和用户界面用于,可采用分布式构建集群、,建并达到资源和速度的,用户使用,构建不再局限,可视化构建编排,构建缓存等技术,实现构,有效平衡于专业团队进行,建资源的共享,全部级,实 一,定义结构化构建脚本,现模块级共享复用和统,维护,有独立的构建集群,构建环境配置实现标准化,,,明确定义构建计划和规则,,,构建工具和环境由专门团,实现代码提交触发构建和,队维护,并细分团队人员 定期自动执行构建职责,基础级,实,明确定义版本号规则,并,现脚本自动化,通过手,有独立的构建服务器,多,根据发布策略细分构建类,构建工具和环境由专人负,工配置完成构建种任务共享构建环境型,实现每日自动构建,责维护,并使用权限隔离,初始级,不可靠,构建过程不可重复,构建任务计划,采用手工方式进行构建,,使用本地设备,构建环境,没有明确的版本号规则和,构建工具和环境受限于团,队人员能力,频繁手动干 预维护,在能力子项目里,对每个级别做了明确的要求,定基准:确定最快、最好 效率的初步行动,查补缺:哪些实践必是必须的,评估的方式:,人员访,谈,、材料审查、模式演示,指方向:跃迁需要做什么,评估方式持续部署流水线级别构建方式构建环境构建计划构建职责,5,评估结果,能力域,能力子域,能力项,能力指标项,能力得分,评级,持续交付,配置管理,版本控制,版本控制系统,三级,效率和质 量提升点,三级,优势点,分支管理,制品管理,单一可信数据源,变更管理,变更过程,变更追溯,变更回滚,构建与持续 集成,构建实践,构建方式,四级,构建环境,构建计划,构建职责,持续集成,集成服务,集成频率,集成方式,反馈周期,测试管理,测试分级策略,分层方法,四级,分层策略,测试时机,代码质量管理,质量规约,检查方式,反馈处理,测试自动化,自动化设计,自动化开发,自动化执行,自动化分析,部署与发布 管理,部署与发布模式,部署方式,三级,部分过程,部署策略,部署质量,持续部署流水线,协作模式,流水线过程,过程可视化,环境管理,环境管理,环境类型,四级,环境构建,环境依赖与配置管理,数据管理,测试数据管理,数据来源,三级,数据覆盖,数据独立性,数据变更管理,变更过程,兼容回滚,数据监控,度量与反馈,度量指标,度量指标定义,三级,度量指标类型,度量数据管理,度量指标更新,内容和生产方式,度量驱动改进,数据和生产方式,数据失效性,覆盖范围,反馈改进,构建和持续集成,l,构建脚本版本管理,l,构建环境容器化,l,构建资源弹性高可用,代码质量管理,l,pre-commit,检查代码,环境管理,l,容器的大规模应用,持续部署流水线,l,Jar,包发布,l,数据与代码部署分离,变更管理,l,变更项多,触发来源广,评估结果能力域能力子域能力项能力指标项能力得分评级版本控制系,6,人,流程,技术,构建和部署活,动,参与的角色 和职责,个人,全栈工程师,团队,人员合理地安排在 一起,合理地组织起来协 作,代码提交流程,,C,o,de,Review,代码构建流程,持续集成流 水线,应用发布流程,部署流水线,线,源码、依赖包、制品的管理 工具和方式,代码质量检查和漏洞分析的 策略和工具,构建和部署使用的工具,能力和容量,构建和部署要解决的问题,代码,构建关注软件代码到可运行程序之间的过程,通过规则、资源和工具的有效结合,提升构建 质量和构建速度,使构建成为一个轻量级,可靠可重复的过程。,部署和发布模式关注交付过程中的具体实践,,将部署活动自动化并前移到研发阶段,,通过频繁的,演练和实践部署活动,成为研发日常工作的一部分,可靠、可重复的完成部署发布任务。,打造,DevOps,工具链平台支撑应用构建部署,人流程技术构建和部署活动参与的角色 和职责代码提交流程,Co,7,目录,运营商的,Devops,成熟,度,结果,1,搭建弹性高可用,的,构,建,环境,2,代码质量检查提,前,到,开,发,阶,段,3,安全高效的应用,部,署,4,小结和思考,5,目录运营商的Devops成熟度结果1搭建弹性高可用的构建环境,8,痛点:应用接入平台构建的困难,用户的困难,脚本管理,没有构建脚本,或者 构建脚本是个黑盒,职责调整,管理构建的职责集中 在,BM,异常处理,使用平台后构建过程 中出错谁负责,平台的困难,团队的差异,代码、依赖、配置 的管理工具和模式不一样,工具的差异,应用的差异性很大,语言、版本、工具都不相同,规模,应用接入的速度太多,构 建资源和管理模式跟不上,痛点:应用接入平台构建的困难用户的困难 平台的困难,9,举措一:三步提升构建脚本管理,版本管理,构建指令的持久化,构建脚本版本管理,脚本管理的目标:脚本可以在任意构建主机构建应用,构建过程脚本化,从无到有,为应用编写构建脚本,规范代码目录结构,规范应用依赖管理,构建脚本可以在 任意主机执行,从繁到简,统一代码仓库,统一依赖仓库管理,统一配置管理,去除对本地目录的依赖,根据语言、工具自动生成,应用编写构建脚本,实现构建过程脚本化管理。去除脚本对构建主机本地资源的依赖,统一配置 和依赖的管理,标准化的应用能够自动生成构建指令。构建脚本版本管理,脚本快速获取,变更过程 可以追溯。,构建脚本可以快速获取,举措一:三步提升构建脚本管理版本管理 脚本管理的目标:脚本可,10,举措二:容器化构建环境,构建环境容器化,通过容器封装不同语言、工具导致构建环境的差异,通过容器规格划分和弹性提 升构建环境的资源利用率。,屏蔽编译环境差异:不同的容器包含 不同的编译工具和环境配置。,提升构建主机利用率:在同一个构 建主机上启动多个容器,提升主机 资源的利用率。,构建任务配置:编译工具和资源诉 求分配对应的,mesos,标签,举措二:容器化构建环境屏蔽编译环境差异:不同的容器包含 不同,11,举措三:搭建弹性高可用的构建环境,Jenkins-maser,高可用,只有一个,jenkins,master,NFS,共享,config,文件,Jenkins-slave,弹性扩缩,jenkins,master,注册成为Framework,一个,slave,容器只分配一个job,Z,Z,Z,Z,oo,k,ee,p,e,r,quorum,Mesos,Master,Standby,Mesos,On,docker,Jenkins,Slave,J,J,o,o,b,b,J,o,b,Jenkins,Slave,J,J,o,o,b,b,Mesos,slave,On,docker,Jenkins,Slave,J,J,o,o,b,b,J,o,b,Jenkins,Slave,J,J,o,o,b,b,Mesos,slave,Jenkins,Slave,J,J,o,o,b,b,O,n,d,o,c,k,e,r,J,o,b,Jenkins,Slave,J,J,o,o,b,b,Mesos,slave,Marathon,Master,Standby,Marathon,NFS,服务,数据共享,域名,On,docker,On,docker,On,docker,On,docker,On,docker,Jenkins,Slave,J,J,o,o,b,b,J,o,b,Jenkins,Slave,J,J,o,o,b,b,J,o,b,J,o,b,J,o,b,J,o,b,Mesos,slave,/,a,pp,/,d,at,a,/,a,pp,/,d,at,a,/,a,pp,/,d,at,a,/,a,pp,/,d,at,a,On,docker,Jenkins,Slave,Jo,Jo,b,b,J,o,b,Mesos,slave,/,a,pp,/,d,at,a,Jenkins,Master,Jenkins,申请资源启动,jenkins,slave,Jenkins,分配任务,举措三:搭建弹性高可用的构建环境Jenkins-maser高,12,举措四:划分构建流水线类型明确职责,下载编译代码扫描单元测试制品上传,镜像制作,开发部署,准发流水线,测试流水线,下载,编译,代码扫描,单元测试,制品上传,镜像制作,测速部署,自动化 测试,漏洞扫描,下载,编译,代码扫描,单元测试,制品上传,镜像制作,准发部署,入网验收,测试报告,作用:快速集,成,开发联调 角色:开发,时,间,:,代码提交,触,发,jenkins自动构建 手工触发代,码,构建,进行开发联调,作用:测试验证 角色:测试,开发 时,间,:,定时构建,特定时间点发布测试环境 代码合,并,、手工触发,验证新功能,功能:上线前验证 角色,:BM,,运维 时间:,手工触发,迭代结束前生成上线发布版本,通过代码质量管理提升代码构建的成功率,减少流水线中断,团队内部不同角色负责对应类型的流水线,开发流水线,举措四:划分构建流水线类型明确职责下载编译代码扫描单元,13,目录,运营商的,Devops,成熟,度,结果,1,搭建弹性高可用,的,构,建,环境,2,代码质量检查提,前,到,开,发,阶,段,3,安全高效的应用,部,署,4,小结和思考,5,目录运营商的Devops成熟度结果1搭建弹性高可用的构建环境,14,痛点:代码质量检测难以推行,代码质量管理是在软件研发过程中保证代码质量的一种机制,,当代码变更后,,可以对代码质 量进行检查、分析,给出结论和改进建议,对代码质量数据进行管理,并可以对代码质量进行追溯。,质量规约,检查方式,反馈处理,不同厂家的开发标准不 统一,规范无法落地,成为一,堆纸上文字,全员,Code,Review,不同的人对规范的理解 不一样,全员方式占用太多的时 间,提升速度太慢,新人从 头开始,技术债务没有能及时处 理,历史的技术债务太大无,法偿还,大部分团队没 有勇气去解决历史账务,痛点:代码质量检测难
展开阅读全文