流程和工具很重要,但最终决定企业能否成功转型为DevOps组织的是人。无论你如何组织DevOps角色——无论是组建专门的专家团队还是将DevOps技能融入现有工作职责中——请确保你的组织具备以下专业知识领域,以加快你走向DevOps成功之路。


01 软件开发
代码是DevOps流程的核心,编写代码的人是DevOps组织的核心。复杂的是,并非所有开发人员都同样适合DevOps实践。
理想情况下,你的DevOps策略由具有两个主要特征的开发人员提供支持。首先,他们在开发工具集上很灵活。他们了解多种编程语言,熟悉不同的应用程序开发策略,例如敏捷方法。这种灵活性将帮助你的团队不断调整和改进。
其次,支持DevOps的开发人员必须至少了解代码部署后会发生什么。他们不一定要是系统管理专家,但他们应该知道如何管理生产环境,并认识到IT团队在部署代码后管理代码时面临的复杂性。他们需要这些知识来打破将开发与运营分开的孤岛结构。
02 IT工程师
作为DevOps中的Ops,IT工程师对流程至关重要。DevOps需要在IT操作方面有能力的系统管理员,但理想情况下,他们不止于如此。他们了解软件开发过程的工作流程,并可以与开发人员协作,以减少开发人员分发部署代码时产生的摩擦。
寻找知道如何编码的IT工程师。理想情况下,他们不仅要有编写简单系统管理脚本的经验,还要有编写应用程序代码的经验。
03 系统架构师
DevOps不需要特定类型的架构。成功并不取决于你是在本地还是云中托管工作负载,也不一定取决于你使用哪种操作系统。尽管如此,想要设计DevOps友好型架构的团队仍应牢记某些目标。
由于自动化是DevOps的基础,因此选择可以自动配置的系统。你希望实现架构灵活性,这样架构就不会限制DevOps团队持续改进实践的能力。在系统架构中构建弹性、冗余和自动故障转移,这些功能减轻了持续集成/持续交付 (CI/CD) 周期中不可避免的故障造成的中断。了解配置管理的来龙去脉也是一个加分项。
了解这些要求的系统架构师在DevOps组织中发挥着重要作用。
04 QA工程师
为了最有效地支持DevOps,QA工程师应该了解如何维护软件质量并尽量减少中断。尽管近年来开发人员更直接地参与软件测试,但质量保证(QA)工程师仍然发挥着宝贵的DevOps作用。
QA工程师特别关注如何在软件投入生产之前定义性能、可靠性和其他因素的质量标准。他们有责任设计和运行测试,评估每个新版本在通过 CI/CD 管道时是否满足这些要求。
在某些方面,QA工程师的工作似乎与其他DevOps目标相悖。低效的软件测试会延迟CI/CD过程,这妨碍了DevOps持续交付的基本目标。为了最有效地支持DevOps,QA工程师应该了解如何维护软件质量,并尽量减少对其他DevOps流程的干扰。有多种方法可以做到这一点。
一种技术是采用右移测试来测试非临界特征。这允许在部署代码后执行某些测试,从而减少运行预部署的测试数量,并更快地将新版本投入生产。此策略不适合关键功能 (关键功能应在部署前进行测试),但它适用于测试较小的应用程序组件,如果这些组件在部署后测试中失败,不会导致严重问题。
优秀的QA工程师还可以编写快速自动运行的高效测试。他们应该了解测试自动化框架的来龙去脉,例如 Selenium,并熟练地编写涵盖很多领域但不需要很长时间运行的测试。他们还必须知道如何快速解释测试结果,并传达给开发人员如何修复导致故障的任何原因。即使在测试失败时,开发人员和QA工程师之间在这方面的有效沟通对于维持 CI/CD管道流也至关重要。
05 用户体验工程师
用户体验工程师不一定是立即想到的DevOps角色。但是,能够确保软件取悦最终用户的专家可为你的 DevOps流程增加价值。
这一点尤其重要,因为它很容易专注于DevOps的技术方面,例如团队发布软件的频率或每个版本周期运行的测试次数。目标不应该只是提供满足用户需求的好软件——你需要满足用户的软件。用户体验工程师可以帮助DevOps团队的其他成员保持这种专注。
06 安全工程师
安全工程师(尤其是那些了解DevSecOps并且能够将其原则付诸实践的工程师),是DevOps组织的另一个核心部分。他们为流程带来了一组特定且重要的技能。
要制定DevSecOps,组织必须设置工具和流程,使开发人员、安全工程师和IT专业人员能够参与安全操作。所有三组利益相关者都应了解安全问题,以便他们能够以协作方式解决这些问题。同样,开发人员应准备尽早与安全工程师沟通,并经常帮助设计从一开始就安全的代码。IT工程师应与安全团队密切合作,确保他们的部署和管理流程遵循应用和基础设施安全方面的最佳实践。
07 DevOps布道者
不是每个人都会明白DevOps的含义,或者为什么组织应该投资于支持它所需的新工具、流程和人员。DevOps布道者可以帮助消除对DevOps采用所需的技术和组织变革的异议,还可以为构建以DevOps为中心的文化提供一般指导。
在大多数情况下,这项工作更像是DevOps的角色,而不是职位描述。选择一些担任其他DevOps角色的团队成员,并要求他们担任组织的DevOps拥护者。
08 非技术DevOps角色
为了充分利用DevOps,企业应该让组织内的其他团队参与进来,包括那些成员没有担任技术角色的团队。例如,销售和营销团队应该了解DevOps的好处如何加强销售和营销目标。法律团队可能需要插入 DevOps流程,以确保软件即使在持续发布时仍然合规。
这并不是说你组织中的每个员工都需要了解DevOps和软件需求的来龙去脉。尽管如此,在核心DevOps团队和非技术角色的同事之间建立战略联系是值得的。