一览 DevOps 的核心挑战,以及平台工程是否可能取而代之。
译自How Platform Engineering Takes on DevOps Challenges,作者 Kenn Hussey。
随着公司持续以前所未有的速度扩展,DevOps 的角色正在经历重大转型。虽然 DevOps 一直是弥合开发和运维之间差距的重要工具,但其局限性和低效率也变得越来越明显。
许多人认为平台工程是 DevOps 的自然演进,它解决了 DevOps 的核心挑战,并使组织能够更有效地扩展。随着重点转向创建自助服务平台和赋能开发人员,DevOps 的传统角色正在被重新定义。
让我们回顾一下 DevOps 的核心挑战以及平台工程如何取代它。
虽然 DevOps 彻底改变了软件开发和部署,但现代云原生技术的日益复杂性给团队带来了前所未有的压力。随着组织的扩展,当前 DevOps 方法的局限性和低效率变得更加明显。
一个主要挑战是需要在端到端 DevOps 流程中实现更多自动化。Dynatrace 最近关于 DevOps 自动化的研究显示,只有 56% 的这些流程是自动化的,导致交付时间更长,效率降低。在典型的开发人员管道中平均有九项手动干预,包括审批和安全检查,这进一步加剧了这种情况。这些导致了解决时间延长,并可能严重影响组织的利润和客户满意度。
造成这种情况有两个核心原因。第一个是工具链的复杂性。DevOps 生态系统中丰富的工具和技术可能导致难以管理的碎片化环境。这种复杂性给团队集成和维护一个有凝聚力的 DevOps 工作流带来了挑战,导致效率低下和生产力下降。
第二个是孤岛团队。孤岛会阻碍协作和沟通,而协作和沟通对于成功采用 DevOps 至关重要。孤岛团队通常缺乏对彼此流程的可见性,导致错位、重复工作和问题解决时间更长。
即使没有这些问题,团队也缺乏推动自主运营的关键技能,这使得有效实施和维护 DevOps 实践变得具有挑战性。所需的技能,包括编码、基础设施管理和自动化,在单个团队中可能很难找到和培养。
随着当前 DevOps 方法的局限性变得越来越明显,组织正在寻求克服这些挑战并改进其软件交付流程的方法。DevOps 团队必须缩短开发周期以实现业务服务级别目标 (SLO),提高软件质量并更快地创新。平台工程应运而生。
什么是平台工程?
平台工程是 DevOps 的一种现代方法,更确切地说,是 DevOps 的一个逻辑扩展,旨在与现有的 DevOps 原则一起工作,同时减轻相关的认知负担。平台工程师通过构建内部开发人员平台(IDP)来简化标准 DevOps 活动,该平台提供单一的应用程序开发和部署工具包。
作为 DevOps 的战略扩展,平台工程解决了传统手动方法的缺点、不足和限制。它自动化了开发和部署管道,简化了它们以提高效率和有效性,超越了传统限制。采用平台工程文化使企业能够在数字化转型时代脱颖而出,让他们能够在当今瞬息万变的技术环境中蓬勃发展。
平台团队可以简化和提高以前由 DevOps 团队处理的任务的效率。你的平台团队必须有明确定义的产品目标、已建立的 DevOps 程序和正确的思维方式才能发挥其潜力。
在新技术时代,平台工程师的角色并没有取代 DevOps,而是扩展了使其成功应对新挑战和机遇的原则。平台工程将在软件开发和交付中发挥重要作用。
平台使 DevOps 能够大规模扩展
随着 DevOps 的兴起极大地改变了软件开发,使其变得更加敏捷和协作,但组织通常需要帮助才能独立处理复杂性。平台工程源于为开发人员提供简单、可扩展且用户友好的自助服务流程以更快地构建软件的需求。
组织可以利用平台工程来:
- 简化流程:通过提供标准化、简化的软件开发和部署方法来简化复杂流程。
- 自动化基础设施和部署:自动化是平台工程的核心,使团队能够在最少的手动干预下配置基础设施和部署应用程序。
- 提供自助服务平台以提高开发人员效率:自助服务平台使开发人员能够快速轻松地访问他们需要的工具和资源,而无需依赖其他团队或等待批准。
- 缩短上市时间:通过简化流程和自动化任务,平台工程帮助组织更快、更频繁地交付软件。
- 提高可扩展性和弹性:平台工程使组织能够构建可扩展且有弹性的系统,这些系统可以处理增加的需求并从故障中快速恢复。
- 促进协作:平台工程通过提供一个共享平台和一套通用的工具和实践来促进协作,使团队能够更有效地协同工作。
平台工程可以帮助团队快速扩展他们当前的 DevOps 流程来满足需求,而无需引入不必要的开销。平台工程不是依赖于单独的工具,而是构建了一个支持端到端交付的紧密基础。
任何平台工程团队的主要目标是促进工具和配置重用。重用代码可以使应用程序交付过程更有效率,需要的工具更少,并且可以改善代码一致性。开发人员可以专注于创新,而不是编写重复的代码。
平台工程如何优化 DevOps 效率
软件开发团队的需求通常不同。如果每个开发团队都建立自己的 DevOps 实践,您将遇到复杂性、瓶颈和安全漏洞。平台工程团队可能会承担部分 DevOps 职责,例如以下职责:
- 自动化 Git 工作流:平台团队可以自动化 git 存储库的创建、配置和管理,确保整个组织的一致且安全的版本控制实践。
- 配置测试环境:通过自动化测试环境的配置,平台团队可以减少设置和维护测试基础设施所需的时间和精力。
- 为 CI/CD 管道构建配置模板:平台团队可以为 CI/CD 管道创建可重用的模板,使开发团队能够快速采用最佳实践并在项目中保持一致性。
- 配置用于秘密管理和用户身份验证的中央存储库:集中这些功能有助于维护安全性并符合要求,同时简化开发团队的访问控制。
- 配置用于应用程序性能监控的存储库:平台团队可以设置和维护一个用于应用程序性能监控的集中存储库,该存储库可以为开发人员提供对其应用程序行为和性能的见解。
以下是您的平台团队如何优化 DevOps 效率的方法:
- 为内部开发人员构建一个工作平台:通过创建一个标准化的自助服务平台,平台团队可以简化开发流程并减轻各个团队的负担。
- 建立铺设好的道路以减少认知负荷:铺设好的道路为常见的开发任务提供了预定义的、经过充分测试的路径,从而减少了开发人员的认知负荷并最大程度地降低了错误风险。
- 简化流程、标准化流程并扩展流程:平台团队可以识别并简化复杂流程,制定标准并确保随着组织的发展,这些流程可以有效地扩展。
- 监控关键绩效指标 (KPI) 和指标:通过此监控,平台团队可以识别需要改进的领域,并做出数据驱动的决策以优化 DevOps 效率。
- 提高团队绩效,为客户提供更大价值:平台团队可以持续评估和提高开发团队的绩效,最终为客户提供更好的价值。
以下是贵组织吸引合适的工程师加入平台团队的关键策略。
- 明确目标并定义现实的时间表:明确传达平台团队的目标和期望,并设定可实现的时间表,有助于吸引与组织愿景相一致的工程师。
- 拥抱多样性,促进更好的沟通与协作:培养一个多元化和包容性的团队环境,可以促进平台工程师之间的创造力、创新和实际合作。
- 为平台团队提供合适的工具和技术:为平台团队配备必要的工具和技术,使他们能够高效有效地工作,吸引重视良好支持工作环境的熟练工程师。
DevOps 的未来在于采用平台工程,而不是传统的孤岛式实践。为了在当今瞬息万变的环境中保持竞争力,组织必须将平台工程作为 DevOps 之旅的下一步。它将塑造团队协作、集成和简化未来软件交付的方式。
随着 DevOps 的发展,平台工程将促进无缝的跨团队沟通并优化工作流。通过自助功能和自动化管道,软件更新将更快地完成,从而取代手动任务。
从 DevOps 过渡到平台工程可能是快速变化的 IT 行业中的下一个规范。一种引人注目的可能性是,新的平台有一天可能会结合并协调当代数字环境的所有复杂性。在当今快速发展的数字世界中,能够随时代变化而改变的人才能保持领先地位。
本文在云云众生(yylives.cc/)首发,欢迎大家访问。