电信DevOps探索与实践
[梁奂 陈春华 姚文胜]
摘要 随着电信运营商IT系统的转型以及IT运营模式的变革,电信运营商引入开发运营一体化思想,并结合电信实际,建立了自主研发的云道DevOps平台,首期聚焦IT应用发布,从应用的微服务化、应用持续交付、应用灰度发布和应用版本管控等方面作为切入,取得了初步的成效。
关键词: DevOps微服务 容器
1 引言
伴随着电信运营商IT系统演进,电信IT运营经历了三个阶段:在90年代,企业缺乏统一IT部门,IT系统建设分散在不同部门,造成IT系统重复建设和信息孤岛。IT运营管理采用“谁建设谁运维”模式,日常运维工作几乎都是忙于处理故障、被动救火;进入20世纪之后,集团与各省公司相继成立企业信息化部,负责IT系统规划和规范编制,企业进入IT系统大规模建设时期,逐步引入ITIL运维流程思想,开始编制电信运维规范,建设IT运营体系;2009年后,企业进行IT运营工具平台建设,包括服务台、IT流程平台、IT监控系统等,实现IT运营支撑的电子化和自动化,监控内容由点及面。
随着互联网化和信息技术革命,当前企业内外部环境发生剧烈变化。企业提出了从“三者”到“三化”战略转型,业务从互联网到移动互联网,作为企业核心能力的IT系统也逐步向“平台+应用”的智慧运营方面转型,强调掌握核心能力和自主研发。表现在IT运营上的主要特征为IT应用智能化和应用软件云化、微服务化、生态开源等特征。因此电信IT系统运营面临的主要问题是追求IT运营效率与传统运营流程僵化的矛盾、互联网高频应用发布与系统稳定性要求的矛盾,开源生态下自主研发与传统深度依赖供应商的矛盾、传统单体应用与微服务化改造之间的矛盾等。
为了适应企业IT运维营管理模式变革,实现从传统IT运营走向智慧运营,适时引入开发运营一体化(DevOps)思想,以标准化、自动化、数据化、智慧化为特征,构建平台化运营体系,实现互联网化模式下的运营转型。
2 电信IT运营的DevOps实施思路
2.1 DevOps理解与认识(如图1所示)
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合[1]。DevOps最早起源于亚马逊和Google等大型互联网公司内部实践,这些公司需要员工紧密协作,同时又不希望出现部门割据。DevOps初衷就是为解决Dev与Ops之间的鸿沟而生,DevOps提倡开发和IT运维之间高度协同,从而在完成高频部署的同时,提高生产环境的可靠性、稳定性、弹性和安全性[2]。
电气材料与设备作为影响电气安装工程施工质量的关键因素,若想提升建筑电气安装工程的施工质量,需要做好以下方面的质量控制工作。
图1 DevOps 框架
DevOps框架是一个集各家之长的体系,包括敏捷管理、持续交付、IT服务管理和精益管理等四大部分内容。在2017年底高效运维社区发布了DevOps成熟度模型标准,提出了更加完整的DevOps框架体系。
(1)敏捷管理:以用户需求为核心,采用迭代、循序渐进的方法进行软件开发[3]。
(2)持续交付:一种开发实践方法,通过流水线方式将研发测试过程自动化执行,确保快速向客户交付价值。
●灰度发布:指对于特定环境升级部署;相同服务的2个版本可以同时在线,根据灰度策略规则将用户分流到特定版本的服务。
(4)精益管理:核心思想是以最小资源投入,创造出尽可能多的价值,为顾客提供高质量产品和及时的服务,提高顾客满意度[4]。
袁家骝与他的父亲是截然不同的两种人,勤勉踏实,乐于助人,动手能力又极强,这都给吴健雄留下良好的印象。这个东方美女在国外求学时,因容貌堪比明星,又对旗袍情有独钟,曾经迷倒一大片外国优秀男士,然而,她最终选择了有相同文化背景的袁家骝。
DevOps涉及IT应用的全生命周期管理,它在实践中产生和不断完善,其核心思想是强调运营过程中的精益管理,追求效率和价值最大化。在软件开发阶段,采用敏捷开发模式进行软件迭代开发,快速交付价值。在工程实践上,通过流水线技术,体现价值流动思维,通过将过程任务代码化,实现过程自动化。
DevOps得以快速发展和应用,同是也离不开微服务和容器技术的应用。微服务(Microservice)传承了传统SOA(service-oriented architecture)技术思路,同时也弱化了SOA中ESB(Enterprise Service Bus)功能,真正实现分布式、去中心的服务架构,是解决传统臃肿单体应用部署和升级困难之关键。当前不仅是互联网公司采用,传统企业也将拥抱微服务架构。容器则是属于一种操作系统级、轻量的虚拟化技术。容器是一个自包含结构,具有隔离性好和快速启动等特点,一般每个容器只运行一个任务。容器是微服务的天然载体,是DevOps的催化剂。反过来,DevOps和微服务也推动了容器技术的应用。因此,在DevOps实践中同时考虑了这三种技术的应用。
2.2 DevOps的切入思路(如图2所示)
中国电信是一个大型传统服务行业,IT运营的目标是保障企业业务运营的正常和稳定、降本增效。企业自2009年实施ITIL标准以来,形成了传统ITIL文化,建立了一个以ITIL为基础构建的IT运营体系。企业IT运营主要有两种场景:
(1)面向稳态的IT运营场景,强调IT系统可靠和安全,以ITIL规范化管理为核心,注重风险管控,力求稳健、可靠;
(2)面向敏态的IT运营场景,强调应用的交付速度、灵活、迭代、互联网化,以DevOps为核心,注重用户价值与体验,应用快速交付。
柴达木地区幅员辽阔,土地类型多,自然条件差异大,必须切合建设草地因子实际状况,尊重人工草地自然发展规律,分类指导,合理规划,精心设计,实现人工草地建设安全化。
通过分析可知,DevOps是对ITIL一个很有效的补充。ITIL面向管理过程的“离线任务”为主,以目标规范优先;DevOps面向“在线服务”的执行过程,管理与执行兼顾,强调操作的自动化执行。因此,在企业IT运营管理体系变革中,有必要引入DevOps理念,通过流程轻量化和流程执行自动化,提升应用快速交付效率,实现IT高效运维。
另一方面,知识点kα的点权W(kα)反映了知识点kα在知识网络中的重要性,本文假设W(kα)主要取决于两个方面:知识点kα与其他知识点的匹配关系、知识点kα被协同成员的掌握情况。基于此,知识点kα的点权
图 2 DevOps的切入思路
根据企业IT运营现状、面临的矛盾和IT领域技术发展情况,建议围绕IT应用发布,从应用的微服务化、应用持续交付、应用灰度发布和应用版本管控等方面切入和探索,寻找IT运营模式突破。在试验范围上,建议先从面向运维的IT服务管理系统(简称ITSM系统)着手,逐步推广到其他核心系统,如客户关系管理(CRM)等系统。DevOps探索的主要内容:
①应用微服务化,将应用进行解耦,并进行微服务架构设计,按服务组件方式进行研发;
脱贫攻坚是全面建成小康社会、实现第一个百年奋斗目标最艰巨的任务。党的十八大以来,以习近平同志为核心的党中央把脱贫攻坚摆在治国理政突出位置,作出一系列重大部署和安排,脱贫攻坚力度之大、规模之广、影响之深,前所未有,取得了决定性进展,显著改善了贫困地区和贫困群众生产生活条件,谱写了人类反贫困历史新篇章。今年8月,中共中央党史和文献研究院会同国务院扶贫办编写的《习近平扶贫论述摘编》(以下简称《摘编》)一书由中央文献出版社出版,在全国发行。
②应用持续交付,采用敏捷迭代开发模式,采用自动化流水线实现应用持续集成和交付;
③应用灰度发布,采用应用在线发布技术,支持应用分批上线和应用版本回退;
④应用版本管控,加强全网应用组件的版本统一管控,统一全网版本。
④模板:使用任务模板可以帮助用户较快地完成任务配置。
在平台底层工具选择方面,选择了基于目前流行的软件,如k8、Jenkins、Maven和 Robot Framework、Harbor等开源软件,进行二次开发和集成。DevOps平台采用微服务架构和容器化部署技术。
3 电信IT运营的云道平台构建与实施成效
3.1 云道平台功能架构
中国电信广东研究院自2017年开始自主研发了DevOps平台,取名“云道”。云道平台初期目标是:
(1)建设一套基于DevOps理念自主研发的应用持续交付和安全发布平台
(2)自动流水线方式实现应用的持续交付,快速向用户交付价值
美国由于花样游泳发展得早,普及条件也比较好,目前它的水平在世界上居领先地位,但是,另外几个国家也具有相当的实力。
(3)支持应用灰度发布和一键回滚,实现用户无感知在线升级
⑦制品库:管理并存储任务执行过程中涉及到的输出工件。
(4)源码/部署包/实例等统一管理,支持企业对应用版本全程和统一管控
③看板:显示项目版本统计信息,比如代码提交数、任务执行记录、流水线执行记录等。
云道平台的功能架构如3图所示,主要包括项目管理、过程管理、发布管理、资源管理和运维管理等五大功能模块:
(1)项目:以项目为单位组织软件过程管理。一个项目可以分为多个版本(相当于多个迭代)。软件过程管理和发布管理均基于版本上下文进行管理。
①项目管理:提供对项目维护功能。支持使用项目模板和常规创建两种方式创建项目。前者通过引用项目模板,可以快速创建项目及相关任务和流水线,后者仅创建项目基本信息。
对乙酰氨基酚是多模式镇痛中很重要的一环,可以减少20%阿片类药物量。口服对乙酰氨基酚与非甾体类药物有协同作用[26],因此建议在剖宫产术后2天~3天常规应用。多模式镇痛中使用非甾体类药物、对乙酰氨基酚片或环氧合酶-2抑制剂复合吗啡PCA与单独使用吗啡相比可提供更好的镇痛效果[27]。
②版本管理:项目细分为版本,由版本直接绑定过程活动。提供项目的版本维护功能,一个项目可以包含多个版本。
对市政绿化工程的施工与养护管理的探讨……………………………………… 张文斌,孙闯,魏思思(7-214)
图 3基于 DevOps的云道平台功能架构
在DevOps平台建设方面,重点面向IT运营管理,聚焦持续交付和安全发布。持续交付从代码提交开始,分为两种情况。第一种,自主研发项目,从编码开始,实现源码构建、打包、部署和测试等研发过程支持。第二种情况,对于外包或第三方供应商开发项目,可以实现项目源码统一管理,通过平台进行构建、打包、部署和测试。探索的重点是研发灰度发布技术,支持按用户进行访问分流,保证应用系统安全上线。
(2)过程管理:对项目管理过程活动管理,包括代码、构建、打包、部署和测试等任务,多个任务可以自定义组装为流水线。支持单任务执行和流水线方式执行,包括自动执行和人工干预两种执行方式。在项目过程中还需要提供一些公共能力,如制品库、数据管理、配置管理和度量反馈等。
①代码:项目创建后,将在开源代码托管平台创建一个代码仓库,后续的代码活动将在该代码仓库中进行。该功能展示仓库关键信息,比如分支、最近提交记录和标签等。
②构建:是软件项目开发阶段的必要活动,包括编译、单元测试、生成部署包。通过对多种类型项目的自动化构建,帮助研发人员从繁琐重复的事务性工作中解脱出来。平台支持java\python\C\C++\android等多种项目类型的构建自动化。
③打包:将部署包制作成为容器镜像的过程,是软件交付和部署的必要活动。以部署包作为打包任务的输入条件,平台自动化执行打包任务,输出容器镜像。
①发布策略:发布管理适用于生产态的部署发布,包括灰度发布和常规发布两种模式。
⑤测试:用户编写测试套件(即测试脚本)来执行自动化测试,支持接口测试和UI测试。
⑥流水线:由多个任务按顺序组装成为流水线,并设置任务的执行方式,使流水线自动运行。任务类型包括构建、打包、部署和测试任务。
1.4 统计学分析 运用SPSS 18.0软件对数据进行统计学分析,数据均符合正态分布,计量资料以表示,数据比较采用独立样本t检验,计数资料以例(%)表示,数据比较采用χ2检验,P<0.05为差异有统计学意义。
⑧数据管理:指平台通过项目组提供的数据库脚本自动执行数据库部署,并输出执行日志。
⑨配置管理:平台识别部分类型的配置项,并提供配置项的版本修订和版本追溯功能。任务需要使用配置项时,只需对其引用即可。配置项类型可扩展。
(3)度量反馈:提供交付过程的结果指标和过程指标的采集、存储和呈现,直观表现软件交付过程的效率和质量。
(4)发布管理:发布管理指从提交发布到发布完成的过程管理。测试负责人声明某个版本满足发布要求时(版本功能、性能等符合质量要求),表示该版本具备生产环境的准入条件,随时可以为实际客户提供在线服务。
④部署:是使用容器镜像生成运行时环境的过程。部署方式包括新增部署和升级部署两种方式。前者表示从资源池获取资源生成新的运行时环境,后者表示使用已有环境来更新部署配置,比如更新镜像版本。
(3)IT服务管理:采用ITIL相关的方法、手段、技术和流程等,对IT运营环境(如硬软件环境、网络环境等)、IT业务系统和IT运营人员进行综合管理。
●常规发布:新增部署或者升级部署。此种发布模式下,一个服务只生成1个版本。
一位江南老友,平素读里尔克的诗,临摹老树的画,豪情饮酒,热会宾朋。他说,每天他都起得很早,吟诗作画之余,还要侍弄一屋子花草,把每一株植物都料理到妥当。因为有这样一个早上,他觉得一天都过得神清气爽。这才叫生活,这才是会生活。
②灰度发布:是保障应用新版本稳定上线的重要措施之一。实施灰度发布包括两个部分:
●配置计划,指实施发布计划的前提条件,包括:配置部署任务、灰度策略和负载均衡策略。其中,灰度策略是很重要规则,指访问应用灰度版本(即新版本)的用户规则,支持用户UID段、UID尾数以及UID白名单等策略。策略范围内的用户在后续访问应用时,会被分流到灰度版本。
●实施计划,指实际执行发布计划,包括部署执行、人工验证、以及完成发布(或回滚)。
③负载均衡:指实施发布计划生成的应用服务的网络访问规则,使得用户可以通过外部网络访问应用,解决了应用只能被内网用户访问的问题。
那么,在教学中,教师如何针对其日常的学习生活,来激发他们的写作兴趣呢?首先,教师应该放平姿态,立足教学实际,多于学生交流沟通,用各种方法言传身教,成为他们的良师益友。接着,教师要恰当选择写作话题,写作对象。当学生对写作不感兴趣时,可以让他们写一写自己在家玩手机的内容,看电视的情节和其他引起他们兴趣的东西。这样,他们就会文思如泉,写作内容自然会豁然开朗,用写作的方式体验到写作的兴趣,体验到成功的喜悦,这样多次重复下去就会变成一种良好的习惯,语文写作教学就会开花结果,水到渠成。
云盘系统设计实现了对用户、文件的管理功能,经测试各功能正常运行,实现了用户对基本数据的云存储的应用需求。利用HDFS实现的云盘系统具备操作简便、存储容量大、速度快的特点,利用Hadoop的多访问API接口和HDFS分布式文件处理的功能,可实现快速的互联网数据存取功能,但系统未对视频、音频数据的在线播放功能实现,在后续的系统功能扩展上可增加相应的功能。
④一键回滚:在灰度发布过程中,如果新版本应用不符合用户的预期目标,可以一键提交回滚,将应用版本回退到旧版本,并释放灰度版本资源,所有用户被分流到旧版本应用。
(5)资源管理:指应用交付过程中使用到的基础设施,包括应用部署时的计算、存储和网络资源。平台以资源池和集群作为资源的组织单位。通过资源注册使其被平台托管,才能在任务执行时使用资源。
为与左侧溢流坝连接,在厂房左侧布置一混凝土坝段,长11.5m。坝顶宽度5.0m。混凝土坝上游坡面垂直,下游坡面1∶0.7,坝顶高程141.60m,建基面高程112.0m,坝高29.6m。
①集群管理:通过集群对资源进行逻辑分组。以集群为单位,注册应用部署时使用的部署节点、负载均衡服务和数据卷服务。
②集群总揽:查询成功注册并被托管到平台的资源池和集群。显示集群主机关键信息,比如IP、资源规格(比如CPU和内存等)、部署安装实例数等。
③数据卷管理:管理当前用户所属租户的持久数据卷,适用于为容器提供持久化数据存储。
④环境管控:管控权限范围内的项目环境,适用于管理角色。可以直观查看项目的环境相关信息,比如镜像、访问地址、执行记录和集群实例等。对于集群实例,提供日志查看和重新创建实例的功能。
(6)运维管理:应用部署和运维过程的相关活动。包括监控、日志和通知等功能。
3.2 云道平台的部署架构
在DevOps实践中,云道平台采用集团一级部署模式,平台整体部署在的内蒙资源池,IT运营中心上海分部、安徽等省分公司分别搭建本地容器集群,承载本地业务应用,本地各容器集群均通过集团云道平台进行统一的管理。部署架构如4图所示:
图 4 云道平台部署架构
3.3 云道的应用成效
云道平台已在集团资源池部署,上海运营中心和安徽公司使用此平台分别对掌上ITSM应用、集中告警监控模块进行容器化改造,实现云道平台从代码提交到部署的全过程自动化流水线构建,流水线执行效率是人工执行效率的32倍。平台实现了对代码进行集中管理,并能实现应用的灰度发布,应用升级不影响客户感知。
云道平台已在ITSM系统研发过程中应用,支撑IT服务管理系统的重构,支撑ITSM团队进行微服务化重构的研发、发布与部署。
以云道平台为基础,进一步研发了翼翮系统开发态平台,支撑了网络运维应用的自主研发,承接NOC的IP资源管理及调度系统、智能网管微服务改造、电子运维流程平台等项目,以及广东、江苏、浙江等7省个性化自主研发10余项目支撑。平台目前有13个项目组,30个项目入驻。
4 结束语
云道平台在企业内部已得到初步的应用,经过POC验证提升了应用迭代开发和发布效率,但在支持多方合作应用研发和应用成果分享方面还显不足。建议进一步探索基于现有平台打造成新的运维自主创新模式,汇聚企业各方开源研发力量,联合进行创新应用的研发,并将各应用成果通过应用商店方式进行展示,在企业内部进行交流和分享,推动优秀应用的落地和推广。
参考文献
1 乔玮;赵文瑞.DevOps发展现状及趋势研究[J].《数字技术与应用》-2018(4),74-76
2 InfoQ--传送门.关于DevOps你必须知道的11件事[E].http://chuansong.me/n/325660
3 陈灏.敏捷开发在SAP ERP优化工作中的应用[J].《装备制造技术》.2018(1)
4 牛天勇;牛克洪.论我国煤炭企业推行精益化管理的若干问题[J].《中国煤炭》.-2014(06)
5 陈春华.全业务电信运营商的IT服务管理实践探讨[J].电信科学,2011(03)
6 周倩.电信运营企业运营服务IT支撑体系浅析[J].现代电信科学,2013(12)
7 孙琼.新一代运营系统中持续交付平台的实现[J].北京:电信科学,2017(03)
8 戴建国.持续集成在项目开发中的应用研究[J].计算机工程及设计,2009(10)
9 董昕.基于DevOps能力模型的持续集成方法[J].计算机工程与设计,2018(07)
10 项学明.基于ITIL的电信企业IT运营服务管理模型及应用研究[D].电子科技大学,2009
DOI: 10.3969/j.issn.1006-6403.2019.01.009
梁奂
国家正式注册咨询(投资)工程师,毕业于暨南大学计算机软件专业,获硕士学位,长期从事电信IT系统规划与IT服务管理方面研究工作。
陈春华
高级工程师,毕业于湖南大学工业自动化专业,工学硕士,任职于中国电信股份有限公司广州研究院,长期从事IT服务管理方面、IT运维方面的研究工作。
姚文胜
高级工程师,毕业于中科院研究生院,获硕士学位,长期从事IT运维及企业信息化规划研发工作。
(收稿日期: 2018-12-21)
标签:DevOps论文; 微服务论文; 容器论文; 中国电信股份有限公司广州研究院论文;