平台工程只是 DevOps 专业化的另一个术语,还是另有所指?事实可能介于两者之间。DevOps 及其相关的 DevXOps 有着浓厚的文化色彩,以各个团队为中心。不幸的是,在许多地方,DevOps 引发了新的问题,如工具激增和整个企业缺乏协调。可以说,为了应对过去非常严格的孤岛式管理和强烈的集中化,DevOps 逐渐倾向于联合——也就是团队层面的次优化,这对组织也造成了损害。规模更大、更复杂的企业对此感受最深,因为它们必须处理不同的技术堆栈,而且整个组织的成熟度也不尽相同。
平台工程正是为了应对这一全企业范围的挑战而发展起来的。它并非 DevOps 的替代品。相反,平台工程与 DevOps 相辅相成,共同应对整个企业面临的挑战,并提供一个工具平台,让各个团队更容易完成工作,而不是在试图保持整个组织一致性的同时破坏事情。
在过去几年中,由于更多的应用程序正在以更快的速度运行,IT 交付的复杂性也随之增加。这意味着组织不能依靠个人来控制复杂性;他们需要有适当工具支持的系统解决方案。这就是平台工程要解决的问题。因此,平台工程师对企业来说至关重要,因为他们的角色是实现安全和工程标准的关键。
01 平台工程师的定义
平台工程师的职责包括三个不同的部分。
最明显的是技术架构师的角色,因为他们必须建立一个连接所有工具和实现流程的工程平台。第二个方面是社区推动者,这与技术工具公司的开发人员关系角色类似。第三部分是产品经理;开发人员社区的利益和需求与平台的技术需求(如安全加固和过时组件的修补)之间的竞争需要优先考虑。
作为技术架构师的平台工程师
在技术堆栈复杂度中等或较高的企业中,构建、发布和维护软件所需的工具至少有十几种,有时甚至更多。整合这些工具并对有意义的指标进行衡量,就像整合业务应用程序一样棘手。毕竟,面临的挑战非常相似:不同的流程需要校准,数据模型需要转换以使其可用,集成点需要连接以实现端到端流程。
运行软件方面业务的系统也同样具有挑战性。平台工程师在这方面的职责是负责软件运行工具的架构,目标是让工具 “消失”,使软件的构建和发布显得简单易行。
作为社区推动者的平台工程师
软件工程师往往认为自己的解决方案比别人的更好。因此,采用工程平台是一项需要克服的挑战。告诉工程师使用特定工具往往会遇到阻力。平台工程师必须成为社区的推动者,与工程师一起推广平台,让他们相信平台的好处。在这部分职责中,沟通是双向的,因为平台工程师还必须倾听平台的问题和挑战,并找出需求量大的新功能。这就引出了角色的第三部分。
作为产品经理的平台工程师
企业的工程师和其他利益相关者对平台的需求相互竞争。以高效的方式确认这些需求的优先级是一项艰巨的任务,因为您必须在所有相互竞争的利益之间找到平衡,尤其是平台的资金本身往往就是一项挑战,因此快速实现价值对于平台的持续支持至关重要。平台工程师需要良好的谈判技巧来应对这些挑战。
02 平台工程架构概述
我们谈到了平台工程师的角色,但平台工程师要构建和维护的平台包含哪些内容呢?最简单的方法是考虑三个层次和一个目标环境:
-
最上层是开发人员体验。这些是开发人员直接使用的工具——推动整体工作流程的工具,如敏捷生命周期管理工具、服务管理工具和开发人员集成开发环境,都属于这一层。
-
底层包括基础设施组件,这些组件必须结合起来才能构建应用环境。这些组件可以来自公共云或私有云,也包括传统的数据中心技术。
-
中间层是最复杂的地方——软件工程平台。在这里,创建和交付软件所需的所有流程都要进行协调:CI/CD、安全扫描、环境配置和发布管理。
03 如何在整个 DevOps 团队中采用平台工程
一种成功的采用模式侧重于确定开发人员的旅程,以定义最小可行平台。那么,需要哪些功能才能使开发人员的旅程实现结果呢?想一想置备环境、将新 API 部署到生产环境或运行性能测试套件这样的任务。每项任务都是一个有效的开发人员旅程,其中有多个接触点,可能需要众多工具。一旦您为第一套应用或技术创建了最低可行平台,应用就会从三个维度展开:更多的应用、更多的功能和更高的成熟度,从而提高自动化和/或性能水平。
除了担心以合理的方式构建平台外,还应尽早解决其他三个方面的问题:
-
社区参与
-
提供资金
-
衡量平台成果
制定社区参与战略非常有帮助。该战略应包括如何与开发者社区共享信息、如何提出功能请求以及如何宣传平台的优势。定义论坛、交流及其各自的频率也很有帮助。
资金很快也会成为瓶颈,因此应在平台工程师采用平台的早期就商定资金策略。这可以是多种策略之一,如专项资金、为所提供的服务提供资金或对所有软件开发征收服务税。每种策略都有其自身的优势和挑战,但最重要的是要有一个不依赖于利益相关者善意的可持续长期资助战略。
最后一点,平台工程师需要能够展示成果,这意味着我们需要衡量有意义的指标,以展示为什么有了该平台,公司会变得更好。这一点往往被遗忘或事后才想到。了解组织的优先事项并使衡量框架与之保持一致,有助于获得持续的支持。不幸的是,这通常需要对多个工具的数据进行调整,而且在前期考虑时最容易实现——单个工具的数据模型保持孤立的时间越长,难度就越大。
04 结论
平台工程仍然是一个相当新的领域,但已经有很多关于它的内容,这说明它很快就引起了企业的兴趣。甚至还有一个专门的会议,始于 2022 年,有数千人参加。虽然还为时尚早,但目前的迹象表明,平台工程已迅速获得市场认可,并形成了一个充满激情的社区。与此同时,平台工程师角色的重要性也将稳步提升,这一点也已在薪酬中有所体现。
希望平台工程能继续帮助企业为开发人员降低软件开发的复杂性,同时实现 DevOps 的承诺:更快、更安全地提供更好的解决方案。