软件规模扩大、复杂性增加,DevOps对调试基础设施使其可供开发者构建显得越来越重要。
译自 What Does a Platform Engineer Do? And Do You Need One?,作者 Lori Marshall 是一位具有软件开发、数据库开发、数据库培训、业务分析和产品负责人经验的分析软件和IT专业人员。目前担任Ambassador Labs的产品副总裁,她拥有超过...
如果你在从事DevOps工作并正在寻找新的角色,你会有大量的机会。随着软件规模的扩大和复杂性的增加,DevOps工程师对于调试基础设施使其达到开发人员可以在其上构建的可用状态变得更加重要。
但是这种需求的扩张也导致了DevOps工程师职责的增多。因此,我们现在看到该领域的子集正在成为自己角色,比如平台工程。
平台工程师的任务是为开发人员建立他们需要的高效平台。这个角色结合了深厚的技术知识,以及理解开发人员所需的软技能,和组织了解为了发展所需的领导技能。
以下是我们如何看待这个角色,以及为什么它对于希望为开发人员提供更好体验的组织来说是一个重要的角色。
在高层次上,平台工程师的角色是提高开发人员的生产力和工程速度。平台工程师为工程师提供快速、高效和安全软件开发所需的工具和环境。通过减少开发过程中的摩擦和消除障碍,平台工程师使开发人员能更关注创造创新产品,减少运营复杂性。
这意味着他们日常在做什么?平台工程师专门于创建和维护开发人员用于构建和部署应用程序的软件平台。他们关注支持应用程序开发的基础设施和基础技术,如云服务、服务器管理和数据库系统。
他们将为公司的应用程序开发人员提供一个可以轻松用于测试和部署应用程序的“平台”。根据公司的规模,部分管理可能会包装进平台工程师管理的内部开发者平台(IDP),允许开发人员自助服务他们的部署和运维需求。
这个IDP通常包括用于自动化测试、部署、监控和扩展的工具。平台工程师负责确保这个平台对开发人员来说高效、可靠和易于使用。他们与软件开发团队密切协作,以了解他们的需求,并相应地定制IDP,以促进更顺畅、更高效的开发流程。
除了这些责任外,平台工程师经常积极参与故障排除和解决出现的任何与基础设施相关的问题,从而维护系统的整体运行状况和性能。
平台工程师在工程组织中是一个相对较新角色,但这并不意味着这个角色的职责是新的。如果你当前在DevOps岗位上更侧重运维方面,那么在另一家公司你的头衔可能就是平台工程师。其他你可能会发现平台工程是职位描述的关键组成部分的头衔包括: 站点可靠性工程师、基础设施工程师、云架构师和DevOps自动化工程师等。
这些不是相同的角色,但在范式图中它们每个都与平台工程有一些重叠。如果你发现自己有这些头衔之一,转为平台工程师是一个选项。它们与传统的运维角色不同,因为它们专注于开发和优化支持整个软件开发生命周期的工具和系统。该角色需要对软件开发流程有深入的理解。这种理解使平台工程师能够创建流水线化的、自动化的工作流程,来支持和增强他们的开发团队的效率和效果。
如果你想从类似的工程角色过渡到平台工程:
由于这是一个新兴领域,这个角色会随着公司的具体需求和技术格局而改变。一个平台工程师可能会更关注基于云的解决方案和微服务架构,而另一个可能会深入参与内部基础设施和遗留系统集成。
随着公司规模的增长,平台工程师的角色可以发生巨大变化。在小公司,构建产品的工程师会选择他们的部署基础设施。随着开发人员组织成功能团队并且需要一些集中式基础设施,平台工程在大公司才真正凸显出来。
小公司
在小公司,平台工程师角色是多方面的,将亲力亲为的技术工作与战略决策相结合。这通常包括与小团队紧密合作,每个人的贡献对公司的技术基础设施和整体成功来说都是至关重要的。在那里,他们的角色可能更类似于工程领导或DevOps经理,尽管他们的职责仍反映真正的平台工程师。
角色和职责:
中型公司
随着公司的增长,中型公司的平台工程师开始专注于特定领域,更多地关注改进和扩展现有系统,而不是从零开始构建它们。在中型公司,一个平台工程师可能会专门负责监督一个功能,或者一个小团队的平台工程师会监督工作。
角色和职责:
大公司
平台工程师通常在大型组织中管理复杂的大规模系统,并参与高级战略决策。在较大的公司,他们通常专注于专用功能,并有充足的团队和预算来投入其工作。
角色和职责:
在所有公司规模中,平台工程师都对调整技术与业务需求至关重要。
不仅公司规模重要;它的文化和技术方法也极大地塑造了平台工程师的角色。在重视创新和快速增长的组织中,平台工程师可能会被鼓励尝试尖端技术。相反,在优先考虑稳定性和规避风险的公司,重点可能是加强现有的系统和流程。理解和适应这些文化细微差异对于这个角色的成功至关重要。
随着平台工程师从较小的组织向较大的组织发展,他们的影响力和职责范围也趋于增加。在较小的环境中,他们可能直接参与战术的日常运营,而对于大公司来说,他们的角色通常会发展成更具战略性的角色。这可能包括制定长期的基础设施目标、制定政策和指导初级工程师。职业发展也可以导致如技术总监(CTO)或工程主管这样的角色,在那里作为平台工程师获得的技术和领导技能的融合证明非常宝贵。
思考平台工程师所需技能的一种方法是将其分类为两组不同但必要的技能。
第一组技能是技术理解。这可能包括:
第二组技能包括所谓的“软技能”。这些技能同样重要。平台工程师必须弥合软件开发和运维基础设施之间的差距,确保两端保持一致并优化以获得最佳性能。平台工程师必须了解两端的个人和团队,并与他们合作找到最佳解决方案。这需要:
此外,平台工程师经常在实施和采用新技术(如容器化和云原生解决方案)方面发挥领导作用,以保持开发环境处于尖端水平。这种前瞻性的方法是平台工程角色的一个标志,将其标志为DevOps更广泛范围内一个独特的且越来越重要的学科。随着今年的推进,我们预计平台工程的崛起会更加明显。