使用DevOps的目的是改变和改善开发与IT运营之间的关系,倡导两个部门之间更好的沟通与协作。虽然这看起来有些简单,然后,DevOps工程师还需要做更多的工作,才能成功部署代码,并将Dev和Ops两个部分成功地绑定在一起。
从应付DevOps压力的角度出发,DevOps工程师除了需要日常技能的基础,每个工程师都必须具备多种技能。DevOps工程师除了要对脚本和编码有着强烈的热情之外,还必须具有开放的思想和协作精神,才能成功地执行该过程。
“DevOps教练”参考一些文献,已经为你设计了一个清单,列出了下面的7种必备技能,公司的DevOps工程师的招聘需求里,应该明确提出下列所有品质。
1. 灵活性
编码是一个持续的过程,不断变化,总是需要更新。要成为一个成功而有效的DevOps工程师,理想的候选人必须有能力不断地开发新的系统,并将其集成到主干代码中。DevOps工程师必须具有灵活的工作技能并适应不断变化的代码。
无论是集成、测试、发布还是部署,工程师都必须能够轻松地从一个软件构建领域迁移到另一个领域。例如,持续集成需要具备快速有效地管理变更的技术技能,并且能够在团队中协作,以保证每个人都朝着共同的目标努力。
2. 安全技能
与许多其他所熟练的领域一样,安全始终是最重要的,尤其是在编码方面。黑客进入系统的一个简单方法是利用漏洞,破坏现有的系统并获取数据。
DevOps带来了更快的代码开发和部署周期,这意味着漏洞也比以前更容易引入代码。因此,工程师必须具备编写安全代码的技能,以保护应用程序免受不期望的攻击,此外还要确保系统针对常见的网络安全漏洞建立防御机制。
DevOps工程师在受雇时必须具备安全技能,因为软件从部署一开始就内置了安全性(而不是在以后添加)是至关重要。如果从一开始就没有安全措施,那么黑客就有更多的机会通过网络注入破坏性代码。因此,在招聘下一位DevOps工程师时,确保安全性是技能列表中最重要的一项。
3. 协作
对于一个成功的DevOps工程师来说,不具备八面玲珑的和周围打成一片的能力是不行的——协作实际上是DevOps概念的核心,它将软件开发和软件运维结合在一起。DevOps工程师必须具备团队合作的能力,在DevOps流程中协作提供了更多的跨职能的联动。
4. 脚本编写技巧
尽管这一点听起来很显然,但任何开发人员都必须具备编写代码的高超技能。无论是JavaScript、Python、Perl还是Ruby,一个成功的开发工程师都必须能够编写代码。
从编写手动代码到替换手动操作流程(如分配IP地址或DNS代码),必须团队里必须具有能够编写这些代码的人员,这是完美的候选人应该能够做到的。
5. 决策
一个优柔寡断的候选人不是你想要的业务开发工程师。一个成功DevOps工程师候选人将有能力自信而迅速地作出决定,即使是在繁忙的环境工作。
代码不断变化的特性使得必须快速决定如何修复代码中任何不连贯的元素。果断性必须是雇用DevOps工程师时要考虑的一个因素,因为快速决策允许工程师保持快速开发和部署新编码更改的能力。
6. 基础架构知识
脚本编写只是开发人员应具备的关键技能之一,仅次于云和基础架构的经验。工程师应该对基于数据中心和云基础架构的各种组件的工作方式有一定了解。这包括软件如何联网、并运行在虚拟网络上等要素。
如果没有理解基础架构的能力,要成为全栈软件开发工程师可能会有些困难。整合基础架构技能将使有效的DevOps工程师能够使用最佳的平台,有效地设计和部署应用程序。还能提出优化建议。
7. 软技能
如上所述,当一名DevOps工程师不是一个人在工作,所以在这种情况下,任何未来的员工必须具备软技能和技术。在信任的前提下,DevOps文化使所有员工能够与流程进行沟通和理解,在需要的时候作出变化。
当开发人员有效地相互沟通时,应用程序可以在比某些工作人员不在上下文中的情况里要短得多的时间内交付。以及更快的进入市场,良好的通信将导致更少的错误,从而降低成本并提高代码质量。