DevOps 团队架构

不同的团队需要不同的结构,具体取决于公司的范围。

当软件团队踏上实践DevOps的道路时,必须了解不同的团队需要不同的结构,这取决于公司的更大环境及其对变革的渴望。

DevOps团队的崛起

您的公司中有DevOps团队吗?您很有可能会这样做。在我们的DevOps趋势调查中,我们发现超过三分之二的受调查组织拥有以某种身份冠以“ DevOps”头衔的团队或个人。  

随着DevOps的普及,我们经常听到软件团队现在是DevOps团队。但是,仅添加新工具或指定团队作为DevOps不足以完全实现DevOps的优势。 

在没有对DevOps及其正确实施方式的清楚了解的情况下,DevOps转换通常只能用于重组或最新工具。正确地接受DevOps会带来文化上的变化,团队必须拥有新的结构,新的管理原则并采用某些技术工具。

DevOps团队结构的类型

确定要实施哪种DevOps团队结构取决于许多因素,包括组织工作的产品数量,技术领导力以及开发和运营团队是否具有协调流程的能力。

重要的是要了解,并非每个团队都有相同的目标,或者将使用相同的实践和工具。甚至团队的组成方式也不应标准化。不同的团队需要不同的结构,具体取决于公司的更大环境及其对变革的渴望。两家公司的DevOps团队可能意味着截然不同的事情。 

为了获得DevOps的好处-加快产品上市时间,提高部署频率,改善团队文化并增强团队和部门之间的协作-了解每个团队所扮演的角色非常重要。但是,在许多组织中,团队头衔仍然多种多样,团队承担着多种角色(例如,基础架构团队既充当工具的选择者又充当工具的维护者)。这种无序扩张使领导层很难直观地看到整个组织环境并回答重要问题:我们是否拥有合适的团队?我们是否在某些领域缺乏任何团队无法解决的能力?看起来团队在自治与其他团队的支持之间是否有必要的平衡?

请记住,以下团队结构会根据公司的规模和成熟度而采用不同的形式。实际上,将多个结构或一个结构转换为另一个结构通常是最好的方法。

开发与运营协作

许多人将DevOps视为简单的开发和运营,它们紧密地协作在一起。这是DevOps的基础,并具有明显的好处,包括软件团队能够更快,更可靠地构建,测试和交付软件  
 
。这种团队结构成功的关键在于,开发人员了解运营团队维持正常运行时间的压力。最小化分辨率。对于运营团队而言,了解开发团队减少部署时间和缩短上市时间的愿望同样重要。

共同开发与运营

这种团队结构假定开发和运营坐在一起,并在一个单一的团队中运作-充当具有共同目标的统一战线。有时称为“ NoOps”,通常在拥有单个主要数字产品的技术公司(如Facebook或Netflix)中看到。这甚至可以采用“构建,运行”的形式,由同一个人开发和操作应用程序。

DevOps / SRE

由Google推广的这种团队结构是开发团队将产品交给实际运行该软件的站点可靠性工程(SRE)团队的地方。在此模型中,开发团队向SRE团队提供日志和其他工件,以证明其软件符合SRE团队支持的足够标准。开发和SRE团队根据操作标准进行协作,SRE团队有权要求开发人员在生产前改进其代码。

以平台为平台

在这种团队结构中,开发团队中的团队充当所有事物操作的专业知识来源,并与基础架构即服务(IaaS)团队进行大部分接口。这种团队结构取决于在公共云中运行的应用程序,因为IaaS团队创建了开发团队使用的可扩展虚拟服务。

DevOps作为外部参与者

DevOps作为外部方,公司可以在有限的时间内使用DevOps顾问或DevOps团队来协助开发和运营团队朝着提到的前两个团队结构(开发和运营协作以及开发和运营一起)发展。

尽管有多种方法可以执行DevOps,但也有很多方法可以不执行。团队和DevOps领导者应警惕反模式,反模式的特点是孤岛,缺乏沟通和对沟通工具的偏误。


DevOps团队的角色和职责

无论您的团队结构如何,所有实践DevOps的高绩效团队都会定期在开发和运营之间共享知识和经验,无论是在常规会议期间还是在不同团队中工作的人员,和/或让团队成员在这两个职能部门中工作。高功能团队具有DevOps的优势:缩短产品上市时间,缩短交货时间,提高部署频率,提供更高质量的交付成果,更好的团队文化以及增强团队和部门之间的协作。 

DevOps团队通常由具有开发和运营技能的人员组成。一些团队成员可能更擅长编写代码,而另一些团队成员可能更擅长于操作和管理基础结构。但是,在大型公司中,DevOps的各个方面(从CI / CD到IaaS到自动化)都可能起作用。这可以包括一个发布经理,负责协调和管理从开发到生产的应用程序,以及负责维护和自动化团队的CI / CD管道的自动化架构师。 

那么加入DevOps团队需要什么呢?加入DevOps团队的工作要求随着新技术的发展而变化,但是一支优秀的DevOps团队的素质始终是相同的。扎实的技术技能,良好的沟通能力,团队合作精神和适应能力是强大的DevOps从业人员的一些核心特征。这些的组合可能比Kubernetes或Git的百科全书知识更重要。但同时拥有两者并没有什么坏处!

成功的另一个要素是愿意向团队,协作团队和整个组织宣传DevOps的领导者。不一定非得拥有“经理人”的头衔,而是愿意说服怀疑的团队成员开始弥合团队与外部团队(无论是开发人员,运营人员还是平台团队)之间的鸿沟的任何人。
 


支持您的团队的软件

尽管团队日常执行的实际工作决定了DevOps工具链,但您将需要某种类型的软件来捆绑在一起并协调团队与组织其余部分之间的工作。

Zoom,Slack和Microsoft Teams之类的应用程序对于团队进行快速有效的通信也是必不可少的,尤其是在远程优先的世界中。过去,开发人员可以走到运营团队询问事件的状态。现在,虚拟通信应用程序提供了相同的即时通信。 

但是请记住,使团队保持协作的软件只是一种手段,而不是目的。如果您的组织想要实现DevOps的全部潜力-透明性,信任度和自治性-它需要团队,而不仅仅是工具,才能使他们实现这一目标。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁