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,其劣势是以可继续的形式赋能和助力开发人员。平台工程可能帮忙企业组织应答云原生环境的复杂性和增长,同时实现更快更好的软件交付。