译者 |布加迪
审校 | 重楼
随着公司继续以前所未有的速度扩展规模,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行业面临的下一个常态。新平台有一天可能会结合和协调当下数字环境的所有复杂情况。只有那些在当今快速发展的数字世界中能从容应对的组织,才能够与时俱进。
原文标题:How Platform Engineering Takes on DevOps Challenges,作者:Kenn Hussey