DevOps组织的成功,很大程度上来自于聚焦培养强有力的DevOps团队。“乌合之众:未有效地管理组织变革”是DevOps组织需要避免的六大“焦油坑”之一(详见“如何避免DevOps变革的六大‘焦油坑’”)。在“DevOps能力之屋(Capabilities House of DevOps)”(参阅图1)中,华为云DevCloud提出(工程方法+最佳实践+生态)×工具平台=DevOps能力,而基石是人与组织。因此,在DevOps变革中,企业必须选取合适的组织与企业拓扑来提升协作效能,进而提高DevOps变更的成功概率。
众所周知,DevOps的诞生根源于跨越开发团队(Dev)和运维团队(Ops)的鸿沟。通常情况下,DevOps团队最初先使用敏捷框架(Agile Framework)(例如Scrum)来定义以开发为中心的角色和活动,然后增加面向运维的角色和活动,以帮助团队成员更好地协同工作。DevOps团队的主要角色如下图所示:
如何Dev与Ops相关角色之间的协作效能,DevOps Topologies(https://web.devopstopologies.com/)提出了9种有效的DevOps团队结构或拓扑(注:DevOps Topologies模型集的许可为Attribution-ShareAlike 4.0 International License)。
模型1:Dev与Ops无缝协作,适用于具有强技术领导力的组织。潜在有效性:高。
模型2:完全共担Ops职责,适用于拥有单一的主要web产品或者服务的组织。潜在有效性:高。
模型3:Ops即IaaS(平台),适用于拥有几个不同的产品或服务、一个传统的Ops部门或者应用全部运行在公有云上的组织。潜在有效性:中。
模型4:DevOps作为外部服务,适用于运维经验不足的小型组织。潜在有效性:中。
模型5:设定有效期的DevOps组,是模型1的前身。潜在有效性:从低到高。
模型6:DevOps布道师组,适用于Dev与Ops有疏远趋势的组织。潜在有效性:从中到高。
模型7:SRE组(Google模型),适应于用于高水平的工程师和成熟度的企业。潜在有效性:从低到高。
模型8:容器驱动协作,适应于容器可以很好地发挥作用的组织。潜在有效性从低到高。
模型9:Dev和DBA协作,适应于拥有多个应用链接一个或者多个大型、中央式数据库的组织。潜在有效性:高。
从DevOps Topologies提供的模型中可以看出,DevOps团队结构不尽相同。那么从组织层面来看,DevOps组织拓扑将会如何呢?不同大小和类型的组织采用不同DevOps团队模型和拓扑结构,将在组织级上形成不同的拓扑。例如:
因此,从组织层面来看,结构更显复杂。基于DevOps团队其它模型,或者不同的模型,组织级的拓扑会更为复杂。
对于大多数企业来讲,组织变革不可能一夜之间100%完成。除了Dev与Ops团队的协作,随着DevOps变革的逐步深入,企业将不可避免地会涉及到架构、安全、UX、运营等专业领域角色如何与DevOps团队进行协同。在方法框架与实践上,DevOps团队鼓励跨功能、T/E型人才等,然而,从专业技能要求高、专家人才稀缺性、组织运作成本等角度考虑,DevOps团队全部承担相关角色的职责是不现实的,因此,尽管取决于组织的大小与成熟度,仍然需要领域专家。“DevOps组织中应用架构师的新定位与实践”一文阐述了架构师与DevOps团队的协作,架构师可以作为SME、教练与指导者在架构原则与模式、产品Backlog等方面与DevOps团队进行协作。同样,对于安全、UX、运营等专家也可以参照架构师来与DevOps团队进行协作。图6是华为某产品团队的组织拓扑图。
组织进行DevOps变革的主要目标是提升客户和商业价值的交付。DevOps组织结构不是一成不变的。组织结构的调整应该考虑组织的产品组合、技术领导力、团队人员技能水平、运作成本等角度进行综合考虑,随着DevOps实践成熟度的提升,持续地调整组织结构。在组织变革中,应牢记的最重要的一条是没有完美的DevOps组织结构。
华为云DevCloud作为一站式云端DevOps平台,集成华为近30年研发实践和前沿理念,面向开发者提供研发工具服务,让软件开发简单高效。现支持5人以下额度范围内,可以免费使用,并且可以预约免费的产品演示和技术交流,详情查看华为云官网