DevOps 是一种将开发和经营联合起来的办法,在利用布局、开发、交付和经营方面将人员、流程和技术联合起来。DevOps 使以前孤立的角色(如开发、IT 经营、品质工程和平安)之间进行协调和单干。始终以来,DevOps 的采纳都是以帮忙企业更快地向客户提供价值,更好地适应市场和竞争,并放弃零碎的稳定性和可靠性为指标。
然而,近两年对于“DevOps 已死”的探讨越来越多。该观点持有者认为 DevOps 模糊性,施行起来的复杂性及高老本等问题,未能达到帮忙企业实现其放慢交付、提高质量和降低成本的指标。
在这篇文章中,咱们将理性分析一些拥护 DevOps 的常见论点,并一起探讨在当下 DevOps 施行时所面临的挑战,以及 DevOps 将来演变与平台工程的关联。
拥护 DevOps 的三大观点
DevOps 的定义过于含糊
对于 DevOps 的批评之一是它 过于含糊,不足一个明确的定义。DevOps 对不同企业和团队来说意味着不同的货色,而且对 DevOps 的理论内容也没有达成共识。甚至有舆论示意 DevOps 只是一个被供应商和行业参谋适度应用的风行词。
DevOps 实际上并不是一套生硬的框架或规定,而更是一种文化和思维形式,可能适应不同的环境和指标。DevOps 并没有规定团队应该如何工作,而是提供了能够帮忙团队更好地单干的准则和实际;也没有规定团队应该应用什么工具,而是激励团队应用最适宜他们须要的工具。因而 DevOps 的模糊性咱们能够视为它的灵活性。DevOps 容许团队依据他们的具体挑战和机会来定制他们的办法,还容许团队进行试验并从教训中学习。
DevOps 给企业造成老本累赘
拥护 DevOps 的另一次要观点就是,DevOps 的施行和保护老本过高。因为 DevOps 须要对企业的文化、组织架构和技术进行大幅度的扭转,同时,还须要企业在工夫、老本以及基础设施方面进行大量投资。因而有局部企业中的 IT 主管或领导并不违心在此破费过多,因为他们无奈保障 DevOps 施行后的实际效果。
不可否认,企业施行 DevOps 确实是个不小的工程。但主观来说,DevOps 并不一定是一个全有或全无的主张。企业能够逐渐和有选择地采纳 DevOps,依据本身需要和商业指标来抉择适合的工具和施行形式,企业中现有的资源和基础设施也能够被利用起来。这样企业能够将采纳 DevOps 的后期老本和危险降到最低。
对于施行成果,DevOps 并不是一套即时的解决方案,须要从长期利益来看。DevOps 能够帮忙企业缩小交付过程中的节约、谬误、提早和失败,同时进步软件交付的品质、效率、团队间的合作以及客户满意度。从久远来看,这些成绩能够转化为更低的老本、更高的支出和更好的竞争劣势。
DevOps 过于简单
第三个拥护 DevOps 的声音来自于对其复杂程度的质疑,认为 DevOps 难以施行和治理。DevOps 通常波及多项技术挑战和较高的复杂性,因而导致开发团队和经营团队难以上手。同时还波及跨多个团队的大量协调和沟通,这在大型或分布式组织中可能是个极大的挑战。
实际上 DevOps 是为了简化和精简软件开发生命周期,而不是使其复杂化。DevOps 依赖自动化、标准化和集成,以缩小人工工作、谬误和依赖性。此外,DevOps 并不是一个实用于所有状况的万能解决方案。企业须要依据他们的具体环境和要求来定制 DevOps 办法,并利用各种工具和技术来促成 DevOps 的施行和治理。例如,应用版本控制来跟踪和记录变动;或应用告警治理来对立和优先解决紧急状况。
DevOps 理论存在的问题
DevOps 自 2007 年随着企业规模、行业以及现有的 IT 环境的变动,针对 DevOps 的拥护声音也并非空穴来风,DevOps 在概念上、流程和技术等方确实面临着微小的挑战。
首先许多企业对 DevOps 的概念存在误会,未能采纳 DevOps 的根本准则和文化,导致施行时存在偏差,即仅仅雇佣一个“DevOps 工程师”或应用一些 DevOps 敌对的工具。这就导致了凌乱、孤岛和低效率等问题。因为 DevOps 并不是一个角色或一个工具,而是一种思维形式和一种实际,须要企业改革和确保一致性。
DevOps 的核心理念是“you build it, you run it”,这 给开发人员减少了过多的压力和认知累赘,开发人员不得不解决简单且多样的基础设施、平安、合规和运维等问题,开发人员通常不善于或不足解决这些工作的技能和工具,从而须要消耗大量工夫和精力。而过多的精力破费在非开发工作上,导致开发人员无奈将外围能力价值最大化利用。
此外,随着分布式系统的广泛应用,其复杂性越来越高,DevOps 变得更加难以施行和治理(当然问题的基本来自于古代软件开发的复杂性减少而非 DevOps 自身)。企业须要对其基础设施和环境有更多的管制和可见性,以及更多的敏捷性和速度来满足业务需要。DevOps 也难以应答云原生技术(如容器、Kubernetes、微服务和无服务器)的多样性和波动性。
平台工程的崛起
为了解决上述问题,一些企业正在尝试将 DevOps 演变到下一阶段,通过创立可重用、自助式平台的实际,使开发人员可能以最小的摩擦构建、部署和运行其应用程序,这就是平台工程逐步崛起的契机。
平台工程相比 DevOps 有以下几个劣势:
- 赋能开发人员:平台工程为开发人员提供了一个“黄金门路”,为他们的应用程序提供最佳的工具、实际和安全措施。开发人员能够自助获取他们须要的资源,而不必放心底层的细节或依赖关系。平台工程还通过升高复杂性、进步生产力、加强品质和减速反馈循环,改善了开发人员的体验。
- 启用平台工程团队:平台工程领有专门的平台工程师团队,负责构建、保护和改良反对开发人员的平台,平台工程师充当促成者和协调者。同时,平台工程师能够利用云原生技术(如容器、Kubernetes、微服务和无服务器)创立可扩大、弹性、可移植和老本效益良好的平台。
- 利用平台编排:平台工程应用平台编排工具,自动化跨不同环境的平台的配置、部署和治理。平台编排工具还提供对平台及其应用状况的可见性、监控和治理。平台编排工具帮忙平台工程师为开发人员提供统一、牢靠和平安的平台。
- 改善业务成绩:平台工程通过实现更快更好的软件交付,帮忙组织实现其业务指标。平台工程可能造就开发人员和平台工程师之间的合作、翻新和学习文化,并帮忙组织以牢靠、高老本效益和平安的形式进行扩大。
论断
DevOps 并没有死,而是在变革和进化,平台工程则是 DevOps 的下一个演变阶段,相较于 DevOps,其劣势是以可继续的形式赋能和助力开发人员。平台工程可能帮忙企业组织应答云原生环境的复杂性和增长,同时实现更快更好的软件交付。