内容提要
Gartner将平台工程列为2024顶级战略技术趋势之一,平台工程是云原生时代为软件工程组织设计和构建工具链及工作流程的学科,旨在提供自助服务能力。平台工程师提供的综合产品通常被称为“内部开发者平台”,涵盖了应用程序整个生命周期的运营需求。通过工程化的自服务平台,开发人员可以更便捷地使用平台资源,而无需深入了解底层技术细节。平台工程代表了对传统方法的进一步沉淀和提升,为其赋予了新的表现形式和能力。
延伸解读
平台工程:云原生复杂性的解药
文章指出,云原生技术虽带来灵活性和资源效率,但也引入了技术栈、管理运维、网络、可观测性和安全等多重复杂性,给开发人员造成认知负担。平台工程正是针对开发人员与基础设施之间的模糊地带,通过构建内部开发者平台,将复杂基础设施抽象为简化服务,让开发者专注于业务逻辑。这解释了平台工程为何在云原生时代受到关注。
自服务平台:工程化的具体体现
作者将“工程”理解为动词,即对平台进行工程化,包括过程标准化、系统化和规范化。自服务平台是工程化的产物,使开发人员能直接管理资源、参与软件生命周期,同时无需关注底层细节,减少对平台团队的依赖。但文章也强调,工具层面容易标准化,流程层面却因企业特定需求而难以统一,这是自服务平台落地时的关键差异点。
平台工程与DevOps:延续与提升
针对“新瓶装旧酒”的说法,作者认为平台工程并非简单重复DevOps,而是对传统方法的进一步沉淀和提升,赋予新的表现形式和能力。平台工程通过自服务平台和工程化实践,将DevOps理念转化为更具体的工具链和工作流程,并强调在技术与人的互动中,连接和协调的重要性,软件系统应以人为本。
Q&A
平台工程到底是什么?它和DevOps是什么关系?
平台工程是在云原生时代为软件工程组织设计和构建工具链及工作流程的学科,旨在提供自助服务能力。它并非简单的新瓶装旧酒,而是对DevOps等传统方法的进一步沉淀和提升,为其赋予了新的表现形式和能力。
云原生技术给开发人员带来了哪些复杂性?
云原生技术虽然带来了灵活性和高效资源利用,但也引入了多重复杂性:技术栈复杂(容器化、微服务、CI/CD、Kubernetes等各有学习曲线且需集成)、管理和运维复杂(微服务分散导致监控、日志、故障排查困难)、网络复杂(服务间通信多,叠加容器和混合多云环境)、可观测性和监控挑战(需要复杂系统确保可见性)、安全挑战(容器安全、服务间通信安全等)。这些复杂性给开发人员带来了摩擦和认知负担。
平台工程如何解决云原生带来的复杂性问题?
平台工程专注于开发人员与底层基础设施之间的模糊交界地带,旨在缩小这一差距并简化开发流程。它通过构建和维护一个桥梁,将复杂的基础设施转化为简化的抽象,使开发人员能够专注于业务逻辑,无需深入钻研底层技术细节。同时,平台工程还将业务逻辑层的通用功能整合并下沉,进一步简化开发流程。
什么是内部开发者平台?它包含哪些核心能力?
内部开发者平台是平台工程师提供的综合产品,涵盖了应用程序整个生命周期的运营需求。云原生技术平台的核心能力包括:容器平台(容器化技术和Kubernetes编排)、微服务平台(服务治理、配置管理、API网关等)、监控平台(日志、性能指标、链路跟踪、告警和可视化)、DevOps集成平台(CI/CD、文档中心和代码质量管理)。
自服务平台在平台工程中扮演什么角色?它有什么特点?
自服务平台是工程化的产物,也是平台工程的具象化。它使开发人员能够直接管理和操作资源,参与软件整个生命周期,无需关注底层基础设施和实现细节,并减少平台团队的直接介入。它遵循“You build it, You run it”的理念,但不强求开发人员深入理解底层技术。自服务平台更像是流程和工具的结合体,工具层面可实现标准化,但流程设计因企业而异。
平台工程中的“工程化”具体指什么?
工程化是指对平台进行标准化、系统化和规范化的过程,以提高软件开发效率、质量和可维护性。具体包括:过程标准化(定义标准流程、文档标准、代码规范、复用和模块化)、系统化(工具和平台统一、自动化、服务管理系统)、规范化(质量控制标准、安全和合规性、性能标准)。随着平台工程化水平提升,开发人员能享受更高水平的自服务能力。