从 DevOps 到平台工程:构建自助服务平台的六个步骤

为了解释为什么平台工程是 IT 界的热门话题,我将以我作为 DevOps 工程师的经历为例。过去,我作为 DevOps 工程师的工作是自动化整个部署过程,为暂存和生产环境构建可重复且无摩擦的发布流水线。我常常与开发人员密切合作,帮助他们打包应用程序,并自主发布他们的更改。根据我的经验,大多数开发人员对基础架构和自动化的工作方式不感兴趣。当然这也不怪他们,因为我们各自都有任务要做。

我主要的顾虑是当他们的应用程序由于不稳定的代码而无法部署时,我需要花费很多时间去试图弄清楚发生了什么。由于缺乏适当的工具,开发人员很难知道问题是否来自他们的终端。在这里,我们看到了新兴的对开发人员友好的 APM、可观察性和跟踪解决方案,比如 Datadog 和 NewRelic。一旦由 SRE 或 DevOps 团队设置,开发人员就可以自主对他们的应用程序进行故障排除并对其负责。这对开发人员和运维人员来说是一个巨大的胜利。

图片

DevOps 是平台工程的一部分

这就是平台工程愿景,旨在使开发人员在其应用程序部署过程中能够更加自主。平台工程师构建并提供平台,使开发人员能够自主部署他们的应用程序、克隆环境和测试新功能,同时还保持安全并遵守组织内部实施的最佳实践。

开发人员能够更自主的开发,将促进更快的发布周期和更好的团队协作。

01 平台工程之路

图片

定义、设计、构建、验证和重复

第 1 步:将开发人员视为您的客户

平台工程需要改变 DevOps 团队的思维方式。在传统方法中,开发人员识别并请求 DevOps 提供的更改。但在平台工程中,平台工程师将主动评估端到端流程、工具和技术。他们不仅会识别当前工作流程中的瓶颈,还会与开发人员协调实施解决方案。为此,他们需要将开发人员视为客户并了解他们的需求。换句话说,平台工程师必须采取主动的方法来改进工作流程,而不是等待开发人员发现一些问题。

由于平台工程的主要交付是为开发人员提供自助服务平台,因此平台工程师需要站在开发人员的角度考虑并确定应围绕自助服务平台构建哪些工具和流程。一个成功的平台工程团队会查明问题区域并选择正确的工具和流程,以使开发人员从编码到交付的过程更加轻松快捷。

第 2 步:定义

平台工程师将开发者和内部团队作为客户后,需要设定目标,然后展开以下的工作:

  • 了解开发人员当前使用的环境、工具、框架和工作流。这其中包括开发人员如何管理源代码合并、如何处理分支、如何测试更改、如何使用部署环境等。

  • 识别额外的流程、不需要的批准、工具的复杂性以及导致当前工作流程变慢的任何因素

  • 了解开发人员面临的各种问题以及他们想到的解决方案

  • 定义具体目标,提高开发者们的开发体验

平台工程师需要根据企业来设立合适的目标,因为每个企业都有独特的需求和流程。平台工程师将定义一组自定义目标以开发成自助服务门户。一些目标的示例如下:

  • 将 Git 策略从 GitHub 流更改为 git-flow 或基于主干的流

  • 添加一些库或框架来自动化开发人员当前手动执行的操作

  • 从静态共享环境迁移到动态、短暂的环境

  • 将自动化测试添加到集成测试套件中

第 3 步:设计

平台工程师设定好目标后,下一步就是设计解决方案,而不是直接开始实施。您应该根据上一步中设定的目标来设计解决方案,并将这些目标呈现为易于理解的解决方案。您的听众将是开发人员。设计可以是流程图、幻灯片、显示现有流程与建议流程的插图、当前与新工具、当前与预测收入等的组合。这样做的目的是从开发人员那里获得关于他们如何响应的初步反馈这个设计。根据帕累托法则(二八定律),实施 20% 的需求即可满足 80% 的客户需求,但前提是必须正确识别需求。所以你需要向开发团队展示解决方案设计,获得他们的反馈,并将其重新纳入设计中。你的设计越精致,就越容易实现它。

第 4 步:构建

下一步是平台的实际实施。平台工程师将利用他们在不同编程语言、工具、API、GitOps、安全控制等方面的知识,为开发者开发自助服务平台。这将是一个迭代和渐进的过程。与其一口气开发整个平台,不如先开发一个 MVP 版本,以获得开发人员的初步反馈。如果第一个版本不完美也没关系,即便没有完全完善,但将解决方案设计描述为具有端到端流程的工作版本的基本目的达成就可以。同时我不建议在第一个版本中添加昂贵的集成或模块,相反,您应该尽最大努力使用试用版和沙盒帐户来快速启动和运行您的 MVP。等到平台逐渐成熟时,再将这些模块或集成添加进来。

第 5 步:验证

在为平台开发了一个小型但有效的解决方案后,您可以将其推销给内部利益相关者,例如开发人员,也许还有 QA 工程师。以便获得他们的初步反馈并将其纳入解决方案。内部团队将验证:

  • 该解决方案是否解决了之前发现的问题;

  • 该解决方案是否支持开发人员的工作流程及其用户体验;

  • 解决方案是否实现了之前设定的目标。

该步骤是一个迭代过程,您将重复和改进步骤 3(设计)和步骤 4(构建)。不断的重复和改进,直到自主服务平台变得稳定和成熟。

第 6 步:重复

最后一步实际上是前面步骤 1-5 的重复,因为您需要解决方案随着时间的推移而演变和进化。随着技术的迅速发展,每天都有新的工具和框架出现。同时,开发者的需求也随着时间的推移而变化。平台工程师需要适应开发人员的发展方式。每隔几次迭代重新审视您的设计并更新解决方案是很正常的,因为您需要跟上变化。

02 结  论

企业正在迅速采用平台工程来提高开发人员的生产力并赚取更多收入。作为一名优秀的平台工程师,需要具备许多技能。平台工程师需要了解产品开发,并为开发人员开发产品。平台工程师还需要掌握编程技能、GitOps、网络安全、云编程、容器化和许多其他技能。然而,最重要的是平台工程师能够理解开发人员的需求并确定正确的工具和流程集作为解决方案。这是一个长期过程,需要不断地学习和练习。一个理想的平台工程团队将构建一个自助服务解决方案,使开发人员能够在不依赖运营团队的情况下自主发布代码。

毫无疑问,这种变化将成为主流,成为所有技术驱动企业的必然需求。

原文链接:

https://www.qovery.com/blog/from-devops-to-platform-engineer-6-things-you-should-consider

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值