据一项权威研究表明:2017年,DevOps在市场上创造了29亿美元;预计到了2022年,这个数字将达到66亿美元。
作为软件项目开发的关键性要素,DevOps已经深入地影响到了软件世界的整体开发格局。许多专家预测DevOps将逐渐成为软件工程的主流模式,并将在2020年达到其顶峰。
因此,对于许多研发企业而言,开发人员已不再停留在是否对其感兴趣的层面上了,而是应该真正地去实践DevOps相关的技术与方法。
Hackernoon在引述Statista的文章中提到:从2017年到2018年间,DevOps的全球使用率增长了7%。而IDC预计DevOps的软件市场体量将从2017年的29亿美元,增长到2022年的66亿美元(请参见https://www.idc.com/getdoc.jsp?containerId=US43722718 )。
DevOps具有以下优点:
- 能够对各种修改需求做出快速的反应。
- 能够实现灵活的安全部署与编排。
- 能够建立完善的协作与沟通渠道。
- 能够快速地识别出代码中的错误或漏洞。
- 开发团队可以毫不费力地将精力放在其他关键问题上,而不必过度专注于各项安全功能。
如今,业界许多企业正在采用DevOps的产品交付模式。如下图所示,根据Statista的统计数据显示:那些在整体公司内部全面“拥抱了”DevOps的企业数量,从2017年的10%增长到了2018年的17%(请参见https://www.statista.com/)。
下面我们来一起讨论和大胆预测一下,2020年值得我们密切关注的7种DevOps趋势。
1.自动化将成为重点
目前,那些实施了DevOps的公司已经能够通过高效和快速的部署受益匪浅(请参见https://dzone.com/articles/benefits-and-challenges-of-taking-the-devops-route)。
在此,我们将重点讨论DevOps的自动化方面。零接触自动化(Zero-touch automation)正是未来的发展方向。
了解DevOps周期的6个C(译者注:Continuous Business Planning、Collaborative Development、Continuous Testing、Continuous Release and Deployment、Continuous Monitoring、Collaborative Customer Feedback & Optimization),并确保在这些阶段之间应用自动化是关键所在,这将是各个企业在2020年的主要目标之一。
2.将注意力从CI管道(Pipelines)转移到DevOps装配线(Assembly Line)
众所周知,DevOps的终目标是:改善计划和交付过程中自动化之间的协作。这不仅涉及到持续集成(CI),而且与持续交付(CD)有关。如今,许多公司都正在投入更多的精力和时间,来了解整个软件开发流程中有关自动化方面的知识与技能。而2020年,他们的注意力将会从持续集成的管道,转移到DevOps的装配线上。
装配线的优势:
- 强大的嵌套可见性
- 原生集成
- 快速实现和扩展“as-code(即代码)”的理念
- 具有完美的互操作性,可实现持续交付
- 基于团队的商业智能与分析
3.人工智能(AI)的兴起,数据科学的发展
越来越多的由人工智能驱动的应用程序(https://dzone.com/articles/leveraging-ai-and-automation-for-successful-devsec),将推动数据科学团队在其工作流程中寻找DevOps理念的实践价值。DevOps方法有望成为处理自动化管道,以及维护与测试生产链中多个已部署模型的主要选择。
为了提高开发、部署和管理那些由AI和ML(机器学习)驱动的应用效率,数据科学和开发团队将不断加强紧密协作,相辅相成地提高彼此的技能与交付水平。2020年, DevOps团队将在自动化的帮助下,通过各种工作流的完美交付,发掘出更多潜在的客户。
4.“一切即为代码(Everything as Code)”的概念
不可否认:程序编码如今已经成为了IT部门、及其服务系统背后的主要支柱之一。因此,充分了解各种DevOps工具、以及对应的自动化脚本,在企业的日常软件开发过程中都能够起到至关重要的作用。
2020年,此类实践将会在各种项目的落地过程中占据主导地位。我们可以毫不夸张地说:企业业务的前景、以及产品的未来品质都会或多或少取决于开发人员、测试人员和运营人员的综合技术能力。
由于DevOps旨在缩减交付周期,因此我们需要引入那些可被用于提高软件生产周期效率的优质代码。此处“一切即为代码”的思想是:在DevOps的内部完成代码的SDLC(软件开发生命周期管理,https://dzone.com/articles/leveraging-best-practices-with-the-sdlc)实践。
2020年,面对DevOps这股浪潮的持续推进,如果软件测试人员还不开始着手学习代码编程,以及编写测试脚本的话,他们来年可能会更加举步维艰。
5.使用无服务器架构
无服务器架构,特别是由云服务负责的整体架构,会将DevOps提升到一个更高的水平。由于微服务是一种独立的服务模式,因此它在出现问题时,不会产生连带式的依赖关系,也不会破坏其他现有的服务系统。
因此,有了此类体系结构,软件开发人员可以将精力更加集中在手头的应用程序上。BaaS(Backend as a Service,后端即服务)和FaaS(Function as a Service,功能即服务)是无服务器架构中的两个关键方面。通过采用无服务器架构,企业能够节省时间和降低成本,进而确保实现各种弹性的工作流程。
6.更多嵌入式安全性
随着安全漏洞数量的急剧增长,以及各类安全事件给公司声誉所带来的严重影响,更多的企业乃至国家开始意识到网络安全的重要性。我们在享受DevOps快速交付效率的同时,需要让安全性成为设计规范的一部分,从一开始就充分考虑到安全性的全面需求。只有将安全要素植入软件产品的“基因”之中,才不会疲于亡羊补牢。
2020年,DevSecOps将持续呈现上升的趋势。开发团队将在应用程序的开发生命周期中“左移(Shift-left)”DevSecOps,通过减少各种程序原生的漏洞,进而让安全性更能匹配业务目标,并提高企业的声誉。DevSecOps模型假设项目中的每个人都会担负起安全方面的责任。这种软件开发方面的通力合作,将有助于减少责任的推诿,并确保开发过程安全性与高效性。
7.Kubernetes将有长足的发展
Kubernetes因其自身的性能和易用性,已经成为增长快的容器技术。而且Kubernetes拥有着广泛的开源社区的支持。目前在全球范围内,许多CIO和技术专家都已经在自己的产品和项目中大量使用到了Kubernetes。
我们预计在2020年,随着各类企业进一步通过深度采用容器技术,来运行它们的云原生应用,Kubernetes将会迎来更广的普及、更大的发展。当然,基于Kubernetes的容器编排软件也会逐渐替换一些旧的DevOps功能。让我们拭目以待吧。