随着越来越多的应用基于云原生架构构建,各行各业的业务都在往云上迁移,DevOps 作为一种高效的、匹配云原生架构的端到端价值交付流程,得到了极大的发展和应用。从 2007 年 DevOps 思想开始萌芽,到 2009 年正式提出 DevOps,一直到今天,DevOps 的内在和外延一直在扩展。DevOps 下一步的发展方向在哪里?这篇文章尝试探讨这个话题。原文链接:How DevOps Will Evolve in 2021
引言
对全世界来说,2020 年都是非常具有挑战性的一年。但是,在所有的不确定性中,唯一确定的是我们的工作方式已经发生了巨大的转变。随着企业被迫要求员工在家办公,无论他们是否准备好,数字化优先已经成为一种必然的要求而不仅仅是一种竞争优势。
对于 DevOps 来说,这场新冠疫情是因祸得福。许多组织已经采取行动迎接这一挑战,转变策略,加速实现在所有业务流程中采用数字化优先的目标。为了实现这一目标,许多 IT 团队已经奋起迎接挑战。他们已经从一个帮助业务顺利完成的团队过渡到一个对业务持续运行至关重要的团队。DevOps 专家和 IT 工程师突然发现,由于对频繁升级和创新的关注增加,他们处于一个巨大的机会窗口中。
DevOps 距今差不多发展了 20 年,随着近来的这些转变,DevOps 也在不断发展。DevOps 一开始只是为了帮助开发人员和 IT 运维人员有效协作。发展到今天,它已经成为一个交付具有附加价值的新产品和功能,并且没有任何停机时间的完整系统。目前,DevOps 是一种帮助团队有效地交付新产品和功能的方法,从而满足不断变化的业务需求。现在,以更低的成本安全地交付所有这些需求已经成为 DevOps 中心思想的一部分。
那么,在 2021 年,我们应该对快速发展的 DevOps 有什么期待呢?
即将到来的趋势
DevOps 和 DevSecOps
如今,大多数开发团队都在以很快的节奏进行创新,与之相伴的是 DevOps 的不断增长。是时候抛弃软件应用安全的事后诸葛亮模型了。实际上,随着不断的创新,团队不再有时间进行冗长的安全测试周期。
这将导致开发团队在 DevOps 团队的持续支持下,对他们的应用程序安全负全责。另一方面,DevOps 团队正在慢慢接受 DevSecOps 流程,并为已部署的应用程序增强安全性和稳定性。根据 GitLab 在 2020 年 2 月进行的第四次年度 DevSecOps 调查报告显示,16%的受访者表示他们的 DevOps 实现包含了 DevSecOps。考虑到这是新冠疫情前的统计数字,今年的数字显然会高得多。
随着时间的推移,每个组织的 DevOps 流程都与不断发展的安全产品相结合,同时使团队能够向其应用程序添加能够抵御当今安全威胁的功能。
DevOps 和以云为中心(Cloud-Centricity)
一些大型组织正在采用远程工作方式作为他们的默认工作方式,考虑到在家工作的效果,所有组织可能都将很快效仿。据估计,到 2021 年底,至少有 25-30%的劳动力将每周多天在家工作。这意味着过去在一个办公室工作的员工将分散在不同的国家和时区。
我们工作方式的改变要求我们尽快转向以云为中心。甚至在新冠疫情迫使组织远程工作之前,大多数企业都在采取步骤建立以云为中心的基础设施,以启用基于云的工作流程和应用程序。
远程工作革命只是将以云为中心的功能从一种增值功能转变为一种必需品。如今,企业正在转向以云为中心的业务流程,不仅将他们的应用程序转移到云上,还将他们的运维和流程转移到云上。
CIO 们已经在积极提升各自组织的技术要求,以满足工作“新常态”的需要,以云为中心是他们的主要要求之一。
DevOps 和自助服务(Self-Service)
考虑到远程工作场景,DevOps 团队将不再只是开发团队的附庸。为了解决远程工作时,由于不同的工作时间、不同的地理位置和各自访问 IT 系统的限制造成的问题,DevOps 团队不能只是像救火队员一样,只在发生问题的时候被叫过来解决问题。
我们迫切需要一种自助工具,开发人员可以在 DevOps 团队的授权范围内部署他们自己的应用,这样开发人员就不需要在每个小型部署和维护问题上依赖于 DevOps 团队。
当 DevOps 方法论最初提出的时候,DevOps 团队的任务是为开发人员提供支持工具。但是,由于本地云应用、Kubernetes 和增强的安全措施日益复杂,开发人员很难使用 DevOps 团队开发的工具。最终,DevOps 专注于构建内部工具,以帮助他们部署由开发人员构建的应用。但是,随着远程工作的转变,需要一种可以增强两个团队之间协作的自助工具。
DevOps 和 AppOps
DevOps 方法的思想集中在人员和流程上,这些人员和流程使人们能够持续交付业务价值。为了使 DevOps 更加有效,团队用来实现价值交付的过程的工具也必须给予足够的关注。现在应该重点关注那些用于应用程序的运维管理的工具了。产品的构建流程要求开发人员不仅要能够测试、部署他们的应用,而且要能够运维和管理他们部署的应用。
应用开发、交付和管理的过程已经够复杂的了,不需要再增加远程工作的复杂性。DevOps 方法的成功实现需要无缝协作。在新冠疫情之前,团队在一个办公室里工作,可以通过各种方式进行协作。但是,现在每个人都远程工作,原来的协作方式就没用了。
这需要协作系统和流程发挥作用,使团队能够在一起工作。考虑到团队现在是远程工作的,需要足够的工具来支持 DevOps 方法论。为了实现这一点,AppOps 应运而生。AppOps 就像是 DevOps 的一个小分支部分——专注于通过正确使用工具来简化软件交付过程。AppOps 的目标是通过高效的自动化工具、流水线,简化复杂的部署过程。
DevOps 和 AIOps
随着机器学习和人工智能领域的快速创新,人工智能也进入了 DevOps 的世界。通过数据分析和机器学习,完全可以自动化和增强 IT 运维能力。AIOps 可以简单地解释为 AI 支撑的 DevOps。下图是 Gartner 在 AIOps 领域的理解:
AIOps 概念
与其他行业对人工智能的看法相反,AIOps 并不意味着要取代人类。相反,它旨在通过消除复杂性和减少人为监督的需要,帮助团队管理超出人力可控规模的 IT 环境。IT 业务的规模在多年前就已经超过了人类可控的范围,而且还在持续恶化。因此,通过 AI 来提高团队的计算和管理能力可以帮助组织为进一步创新做好准备。AIOps 领域仍处于早期阶段,但今年我们肯定会在这个方向上看到更多的进展和创新。
DevOps 仍然在持续演进
在过去的 20 年里,DevOps 在技术上不断创新,始终长盛不衰,其秘诀就在于拥抱变化。DevOps 的核心理念始终保持不变,但它的外延在不断发展、不断改进、不断覆盖新的领域和技术。构建一个能够在未来实现所有新时代所需功能的 DevOps 工具对于简化部署流程和保持业务的连续性至关重要。