2020年中国DevOps应用发展研究报告
核心摘要:
DevOps概念解析:DevOps(开发运维一体化)包含应用设计、敏捷开发、持续交付和监控运维等一系列流程,涉及到企业文化、团队协作流程等多个方面。开发人员透过容器向运维侧渗透、打通传统IT工作中开发/运维的矛盾和沟通障碍是DevOps的核心进步。
DevOps企业实践:DevOps的成功实践需要企业工程解耦化、流程协同化和管理颗粒化的改变,要走过从资源整合到自助服务的五个步骤。企业和团队需要更多地关注管理方式和文化适应性,引入专业机构的咨询和培训服务能够有效减少转型过程中的摩擦成本。
DevOps市场现状:一体化的DevOps平台正在成为全球范围内的DevOps发展趋势,国内企业通常采用一体化平台+开源软件的方式构建自己的DevOps体系。2020年国内DevOps相关产品的市场规模达到27亿元,未来5年的CAGR将超过25%,市场发展前景良好。
DevOps应用展望:DevOps不会成为一种故步自封的工具,云原生更是为DevOps大展宏图提供了广阔的平台。DevOps将会在自动化、数据化、一体化和智能化方向上不断自驱发展,未来与AI、无服务器和安全工程的融合也充满可能性。
DevOps理念解析及行业应用
初识DevOps:开发运维一体化
不只是技术,不只是工具,不只是流程
“DevOps”一词是“Development开发”和“Operations运维”两个词的组合,中文一般译为“开发运维一体化”。虽然在IT领域DevOps早已得到了业界的普遍认可并被投入各个领域的广泛应用,但目前行业内对DevOps还没有统一明确的定义。参考全球头部IT公司对DevOps的理解,我们发现DevOps不是单一的技术或者工具,甚至不只是一个流程,它可以被理解为一系列可以高速、高质量进行软件开发的工具链,这种模式不仅提高了软件开发的效率和最终产品的表现,更是现代IT企业协作及共享文化的体现和应用。
企业痛点:IT人才市场供不应求
企业需寻求内生途径以加强IT部门运行效率
随着我国企业数字化转型的不断深入和互联网经济的蓬勃发展,IT部门的职能由信息化支持向业务赋能转换,伴随着信息技术产生的社会价值和企业价值越发显著,IT从业人员的人力成本也在不断提高。根据国家统计局对我国2018年和2019年城镇非私营单位员工平均工资的统计,信息技术从业人员的工资连续两年位列统计局划分的19个大类行业之首,超过年均16万元,2019年增速为9.3%,也位于各行业中的较高水平。这一方面反映出IT产业的价值得到了市场的充分认可,同时也折射出这一领域的劳动力市场、尤其是高素质人才供不应求的现状。从用人单位的角度上看,在无法急速改变人才市场现状和IT人员素质的前提下,唯有通过内生途径提高IT部门的运行效率和工作质量,才能塑造企业的IT竞争优势。
企业痛点:开发/运维部门泾渭分明
开发和运维部门在工作目标上面临分歧,难以有效沟通
在信息技术人才紧缺、人员素质不能完全满足企业业务需求的现状下,企业的IT部门还要面临传统IT系统内开发和运维架构的固有缺陷所带来的低效能,使得减少协作摩擦、提高工作效能的工具和方法更加重要。由于存在着开发部门求“新”而运维部门求“稳”的核心分歧,传统的开发部门和运维部门在工作环境、工作职能和工作目标方面都有着显著的差异,在一些情景下甚至相反,导致在实践中两者不仅不能有效协作,甚至还引发了一系列矛盾,如果不能从工作流程和管理方法上做出改变从而调和这样的分歧,就难以培养起积极协作的文化氛围,对IT部门效能提升将造成不利影响。
企业痛点:IT部门管理难度较大
IT业务的复杂性和专业性对领导层管理造成考验
除了IT部门和团队内部的交流协作模式在新经济时代需要作出改变,企业管理层对IT部门的把控和考核方法也亟需革新。尤其是在以应用软件等信息技术已经成为企业业务拓展“基础设施”的大背景下,管理层有必要将IT部门的工作成效纳入其重点考察的对象当中。然而,IT工作的高度专业性往往在业务部门和管理层视野中间竖起一道技术壁垒,使得管理层无法直观地理解和分析IT部门的工作效能,因而也无法进一步为部门工作提出指导性和建设性的意见。在目前的软件开发管理实践中,管理者不断引入可量化的业绩指标来增加IT工作对管理层的透明度,然而这些考核在全面性、客观性、有效性方面仍有提升空间。企业亟需自动化、数量化、可视化的工具来提升IT部门的管理效率。
DevOps独有的闭环流程概念
紧密衔接的闭环流程DevOps赋能IT协作更加流畅
图为DevOps方法独有的开发-运维闭环流程,这一象征着循环与无限的符号包含着软件生命周期中计划-代码编写-构建-测试-发布-部署-运行-监控的全流程,体现的是在DevOps理念与方法的支撑下,软件开发与运维工作紧密衔接、开发与运维团队通力协作的理想状态。21世纪以来不断普及的敏捷开发带来的最大变化是“解耦”了开发进程,使得这一过程更加灵活和高效,DevOps则是在继承敏捷开发工作方法的基础上,进一步打破了开发和运维工作的界限,尤其是在容器技术的帮助下,开发环境和生产环境的界限变得模糊,使得开发人员能够执行生产环境下的软件运维工作,开发和运维部门的协作由此变得更加简单和高效。而由一系列软件开发和运维软件工具构成的工具链则是从技术上赋予了DevOps理念深入行业实践的动力,不仅改善了软件开发和运维人员的工作体验、加强了工作效能,也成为了管理层透视IT工作成效的丰富的数据来源。在一些解读当中,DevOps理念也包含软件开发运维中的质量控制QA环节。
总览DevOps的一般实践流程
动态的流水作业、迭代的开发进程、交互的协作模式
从DevOps的流程实践上看,总体来说其流程可以分为需求对接和应用设计、敏捷开发和持续测试以及最终测试和上线运维等三个阶段,其核心是由开发人员和测试人员主导的敏捷开发和持续测试阶段。借助Scrum或Kanban等工作流方法的指引和一系列持续构建、持续集成、持续测试以及持续发布工具,IT团队能够高效率地开发通过微服务架构解耦的程序模块,并及时、持续地与用户方面进行对接,对各个模块的研发质量和成果进行实时把控。在通过最终的集成和测试之后软件得以部署上线,此后开发人员能够借助应用容器化封装带来的统一环境之便,与运维人员一起对软件的运行质量进行监控、为用户提供支持服务,并继续根据市场需求进行版本更迭的进一步开发工作。
DevOps落地实施:理念认同
颗粒化 / 解耦 / 协同三重理念共同支撑DevOps实践
相较于单纯的IT信息化工具,DevOps本身即是一种协同、合作的企业文化,为了落实DevOps实践,企业在采用DevOps相关的开发运维工具的基础上,还要实现文化方面的理念认同。在工作结构方面,IT工程需要在架构和流程上都实现解耦;在协同方法方面,IT团队需要构筑紧密协作、责任共担的合作氛围;在管理思想层面,IT管理层需要落实对部门工作颗粒化、可视化、可量化的考核。美国DevOps平台企业Quali的实践研究表明,在尝试DevOps方法的企业和人员中,认为企业文化缺陷阻碍DevOps发展水平的占最大比重,显示文化因素对企业提高开发运维一体化水平的重要性。
DevOps落地实施:阶段路径
从资源整合到自动化逐步实现DevOps体系建设
除了企业整体从文化需要面向DevOps的流程与方法进行调整与适应,在实践层面上也需要对IT部门的开发、运维流程进行逐步的改造与升级。这一过程不是一蹴而就的,不同的企业也可以通过不同的路径来打造最适合的自身DevOps方法。一般而言,企业实现DevOps的落地需要经历五个阶段,首先要实现企业内部的资源整合,提高资产和任务的可见性;其次是构建统一、流畅的线上和线下工作环境及流程,接着要搭建能够有效合作的团队体系,加强资源的共享;然后借助一系列信息化的DevOps工具构建企业的自动化开发运维流水线,并生成相应的管理指标体系;当自动化水平发展到一定水平且累计了充足的服务经验后,运维侧即能以标准化的形式为用户提供更高效便捷的服务。
DevOps适用于什么样的团队?
单个团队10-20人为佳,对外包和分散的敏感度较低
IT团队是DevOps理念和方法最终的实践主体,尽管DevOps对团队属性并没有固化的要求,然而在实践中团队的不同形式对开展DevOps转型可能会有显著的影响,除了无形的团队氛围之外,一些客观条件也可能会影响DevOps转型的效果,本报告着重讨论IT团队的规模,构建方式以及地理集中度对DevOps的影响。我们认为在这之中团队的规模的影响相对显著,过大或者过小的团队规模都会降低的DevOps的增效,在实践中10-20人的(单个)软件团队能够更好地发挥DevOps降本增效的作用;而IT团队是内部团队或是有外包团队、团队人员是否在地理位置上足够集中两方面的要素对DevOps实践的影响并不大,甚至可以认为DevOps的出现就是为了解决当前企业的IT团队无法实现地理上的绝对集中以及完全内化无需外包从而带来的摩擦问题。
DevOps适用于什么样的企业?
业务系统频繁更新的企业引入DevOps的价值更加显著
此处我们讨论的是计划将DevOps引入内部IT团队,并服务于母公司的软件需求的企业,而非对外提供软件开发和运维服务的企业。由于互联网经济和电子商务不断向各行各业加速渗透,IT实力越来越成为影响企业运营水平的关键因素,然而并非所有的行业和企业(机构)机构都需要DevOps的加持,其中最核心的影响因素是该企业的业务是否需要频繁发布新的应用来满足用户的需求,如果没有此类的敏捷开发需求,或是目前正在运用的开发方法已经能够满足企业的业务需求,则开展DevOps的转型耗费的资产和管理投入的性价比较低。此外,对于安全策略较为严格的行业和企业而言,虽然DevOps能够在一定程度上与安全审查流程融合,然而其敏态开发的效果将会有所下降。
DevOps +传统行业:数字化转型捷径
DevOps助力传统行业稳步走上云原生数字化之路
软件开发和运营并非传统行业的主营业务,因而整体上缺乏相应的人才和软硬件基础设施,正因如此这类企业和机构的数字化水平整体较低。在我国数字化转型的大趋势下,找到适合企业的高效数字化转型道路将意味着在市场竞争中取得先机;对于政府部门而言,将能够更好地构建数字政府和数字政府服务体系,提高地区乃至全国的信息化基础设施水平。在传统行业中,金融和能源等行业由于资金充足、技术实力相对领先,且对于各类软件和在线应用的需求较高,在传统行业中走在数字化升级的前列,也是率先引入DevOps方法和工具的行业。而新零售、智能制造等近年来逐步兴起的互联网+行业也正在积极拓展互联网能力构建渠道以及市场优势。
DevOps+科技行业:软件工程新纪元
DevOps赋能科技行业迈入软件工程高效阶段
相较于传统行业以及公共事业机构,包括软件、电商和电信运营商在内的信息科技行业一直以来是IT科技创新的领跑者,软件开发和运维架构是支撑上述企业业务运营的核心能力,但也因为其IT架构复杂、团队庞大,在管理和协同优化上面临诸多困难。DevOps理念和工具的有助于科技类企业统一IT环境、提高团队反应能力和研发质量,是企业提高其市场竞争力的核心助力。目前我国的头部科技类企业的软件部门均大都通过自研或外采的方式引入DevOps工具、践行DevOps流程,是DevOps的主要践行者。
DevOps为企业带来的价值
工作效率及产品质量得到提高,量化指标还有优化空间
调查结果显示,DevOps实践给企业带来最显著的收益主要包括提高了开发和运维工作的效率、提高了软件产品的质量以及用户的满意度,此外DevOps也对团队的协作水平、任务交付的准确度有所助益,并在一定程度上降低了IT部门的运行成本、提高了部门的工作负载能力。值得注意的是,相对较少的受访者认为DevOps的引入为部门管理提供了量化依据。我们认为这是由于目前国内企业采用的DevOps工具在数据仪表盘的功能还不够完善,尽管大部分的自动化工具都能提供一些统计指标来反应部门和员工的工作效率以及成果,然而这些指标可定制化的程度较低,比较局限于技术领域而非聚焦管理视角,如果要为管理层提供更加清晰和多维度的管理透视,还需要加强指标构建的灵活度和定制化能力。
中国DevOps市场发展现状
开发+运维视角下的DevOps发展历程
对高效研发+自动运维的追求推动DevOps的发展
在计算机技术和软件开发行业发展的很长一段时间内研发和运维都处于泾渭分明的关系中,也因此让我们得以从研发和运维两个不同的视角来观察DevOps的诞生。从研发角度来说,以更高的效率交付更有质量的产品始终是研发工程师们的需求;从运维角度而言,全球范围内的计算机运维技术一直以用机器和脚本替代人工运维为目标。而DevOps在2015年前后的普及让IT市场意识到:可以通过将研发和运维环节互相打通、互相融入的方式来减少工作负担、提高工作质量。
技术驱动:容器技术全面推广
容器底层架构为DevOps的推广打下技术基础
DevOps理念由来已久,其在2009年被正式提出时正是云计算概念获得广泛关注的时间,然而一直以来全球范围内的软件企业虽然有实践DevOps的意愿,却缺乏相应的技术和工具。2013年末Docker容器引擎开源,随后容器编排工具K8s逐步获得市场认可,通过容器镜像对应用程序进行标准化的封装和编排成为软件研发行业新一代的主流架构。容器和微服务架构的天然契合加速了对传统巨石架构的颠覆,软件内部架构的解耦也使得践行DevOps方法和流程成为可能。可以认为docker容器的问世和推广为DevOps的发展打下了技术基础。
生态驱动:开源社区资源共享
DevOps实践在开源软件工具的助力下获得推进
全球范围内开源软件社区上分享的开发和运维工具大大促进了DevOps实践,例如Apache基金会旗下的构建工具Maven、Linux基金会子项目持续交付基金会旗下的集成工具Jenkins、同属Linux基金会的云原生计算基金会旗下的Kubernetes等均已成为受全球开发者广泛认可的DevOps工具。据全球最大的代码托管社区Github统计,2019年中国已成为全球除美国之外最大的开源软件使用地区,相较于2018年中国开发者调用的开源项目增长了48%,显示开源社区的软件工具已成为我国开发者的重要资源,而我国创立的开源中国社区及旗下的Gitee平台近年来也受到越来越多的关注。开源生态的不断充实和发展为开发和运维工程师提供了多样化的工具选择,构筑起DevOps丰富的资源池。
政策驱动:行业标准逐步建立
逐渐完善的行业标准推动DevOps规范化发展
由于DevOps的复杂性和灵活性,全球IT领域尚未对DevOps的规范达成一致。2013年OASIS推出的TOSCA(云应用程序的拓扑编排规范)响应了DevOps的开发方法,大多基于TOSCA的云编排软件平台如Cloudify都支持DevOps。2018年4月,DevOps标准项目——“研发运营一体化能力成熟度模型”在中国通信标准化协会立项成功,随后中国信通院逐步对该模型进行了完善和评估,目前已经发布整体架构、敏捷开发过程、持续交付过程、技术运营、组织架构等部分。DevOps在我国的行业规范逐步建立,为DevOps平台提供商不断提高DevOps服务能力提供了规范化指导,有利于我国DevOps产业的健康发展以及应用市场的持续增长。
DevOps研发/运维流程与工具链图谱
DevOps软件工具的市场规模
未来5年DevOps市场复合增长率将超过25%
随着互联网转型的深入,目前各行业的头部企业基本都已经开始了DevOps转型实践,并形成了良好的带头和示范作用,未来数年DevOps工具将继续向企业渗透,并保持稳定的市场规模的增长。预计2020年年底DevOps市场规模将达到27亿元,5年之后这一市场将增长至83亿元,复合增长率将超过25%。值得注意的是,DevOps实践中所使用的大量软件工具为免费的开源软件,并不直接带来市场规模的增长,前述市场规模主要包括DevOps云平台(包括公有云和私有云)及少数收费软件产生的市场价值;其次,互联网和IT是在DevOps领域投入最多的行业之一,然而互联网和IT企业在这一领域常常是以“自产自用”的方式构建内部DevOps工作框架,从而在交易环节对DevOps市场的贡献远不及其实际使用规模。
一体化趋势:头部企业发展战略
“一站式”能力是软件研发平台产品的普遍发展方向
DevOps理念是打通软件工程中各个曾经由独立的团队和不同的软件工具来实现的工作,在对企业文化、管理方式等“软实力”提出新要求的同时,也不断催促着市场打磨出能够提供相应的生产力和创造性的软件研发工具,集成度更高、生态系统更完整的工具链将成为这一行业未来大趋势:信息技术龙头微软不断丰富其自有的一体化研发平台产品,并通过收购相关企业的方式来扩大其生态影响力,而JIRA的母公司Atlassian也不断完善其DevOps生态,打造为软件开发者提供“一站式”服务的能力。
一体化趋势:国内DevOps框架构建
“云平台+开源软件”是最主流的DevOps构建方法
企业构建DevOps平台的主要途径有四类,伴随云计算的发展和云平台上产品生态的不断丰富,大量的企业选择从公有云厂商采购其提供的DevOps云平台,而对代码安全和保密性以及定制化要求较高的企业则更倾向于以私有化建设的模式向私有云厂商购买DevOps咨询和平台搭建服务。由于主要国际开源社区如CNCF、Apache均有着了大量涉及DevOps的项目,具备相关专家人才和技术积累的企业也可能选择将主流的版本控制、构建等工具集成为DevOps流水线,能够以较低的成本满足企业基本的开发运维需求。对DevOps流程上各环节所用的软件工具均进行独立的开发再集成为一体化的DevOps平台则是极少数国际IT巨头企业的选择。由于主要开源工具经过多年市场验证广受认可,一般而言可以以插件的形式接入IT厂商提供的DevOps平台,使开发者能继续使用长期以来习惯的工作环境,也是目前国内主流的DevOps构建方法。
成熟度状态:咨询&培训的价值
咨询与培训服务在DevOps实践中的作用不可忽视
根据调查结果,我国企业用户通过多种方式推动DevOps的转型和创新,其中受到企业最普遍重视和采纳的途径是引入外部的咨询和培训服务,通常这类服务由DevOps凭条或软件厂商在项目中一并提供,也有专业的IT咨询公司可以提供第三方服务。除此之外,由管理层自上而下推动DevOps转型以及从局部团队开始逐步进行试点和推广也是企业常见的转型途径,前者体现出管理层支持对DevOps实践的重要意义,后者则可以看做来自用户内部的“咨询”,即利用内部人员的试用和摸索经验来减少其他部门推广过程中遇到的摩擦。总体来看,DevOps的应用除了系统上线和工具安装,更重要的是系统性的经验和专业化的指导,咨询与培训服务的价值在这个过程中应当更加得到重视。
实践阻碍:DevOps应用拓展的困境
DevOps的进一步深化仰赖软件行业的全面生态融合
调查显示企业在DevOps转型中遇到的主要困难可以分为客观和主观两方面的因素,其中客观因素主要涵盖由于DevOps理念和方法较传统方式的改变带来的难以避免的企业摩擦性成本,从调研结果来看主要包括企业缺乏DevOps领域的专业人才、外包业务与企业内部DevOps流程的衔接还不流畅以及增加了IT部门的投入;另一方面,主观因素主要涉及软件产业链中的各环节的人员对DevOps理念和方法感到的不适应所产生的压力,主要包括内部IT员工因为学习成本增加而承受的负担,以及企业下游用户对于DevOps方法下工作流程的改变所产生的不适应。解决上述问题不仅需要各家企业内部的努力,还需要软件行业产业链上的各环节共同促进DevOps应用的深化,通过全面的生态融合来消解局部的摩擦。
中国DevOps应用发展展望
DevOps:不断自驱与进步的IT文化
自动化、数据化、一体化、智能化是未来DevOps的发展方向
尽管DevOps包含大量IT领域的技术和方法,然而更多是一种协作文化和企业管理的理念和思路,也正因如此,DevOps的应用框架不是一成不变的,将会随着信息技术和软件工具的发展而不断革新、不断适应新的软件开发环境和市场需求环境。整体来看,未来DevOps应用发展将呈现出自动化、数据化、一体化、智能化四大趋势,分别对应目前软件开发和运维领域人工参与较多、量化指标不够清晰、开发运维链条有待完善和智能化程度尚待提高等主要问题,最终目标是最大限度减少人工对无意义、重复工作的参与并提高软件开发和运维工作的有效性。