DevOps工程师在做些啥?
我在本文中将探讨DevOps工程师的定义,IT部门实施DevOps需要的技能,IT专业人员需要掌握的技能,以及招聘到合适专业人员的关键。 http://www.ITILchina.cn/a/172.files/image002.jpg DevOps:它是一种方法还是一种角色? 按照维基百科所下的定义,DevOps是“一种文化,一种潮流,一种实践,强调软件开发人员及其他IT专业人员之间的合作和沟通,同时使软件交付和基础设施变化这个流程实现自动化。”业界确实通常往往声称,DevOps是一种“方法”或“文化”。但是,如果你看一下招聘岗位,会看到专门招聘“DevOps工程师”的空缺岗位。 怎么回事?这么说吧,理论跟现实是两回事。DevOps既是一种方法,又是一种角色。在Logz.io,我们最大限度地运用DevOps――它是一群特定类型的工程师采用的一种具体方法。 在我们简化的软件开发、集成和交付流程中,我们采用了DevOps工具和方法,以保持产品质量,缩短我们响应用户请求的时间,并理顺日常运作。 为了向想进一步了解基于DevOps的IT环境的那些人着重阐述我们采用的做法,我在本文将讨论DevOps工程师的定义,IT部门实施DevOps需要的技能,IT专业人员需要掌握的技能,以及招聘到合适专业人员的关键。 DevOps的定义 如果说DevOps工程师是特定的人群,那通常是资深工程师,在开发和运营方面都拥有丰富的经验。除了这些传统的职责外,他们还需要具备业务技能和人际交往技能。如今越来越多的公司在招聘拥有这个头衔的人,因为它们认识到让一个人在整个企业负责DevOps的重要性。这确保了整个交付流程高效、自动化。 在关于这个话题的好多篇文章中,马丁·福勒(Martin Fowler)说道: 把具有共同技能的人聚集起来,支持技能共享,让企业可以把这个团队当成提供商,提供单一类型、明确界定的工作,开发人员没必要是全栈开发员(不过这值得称赞),但团队应该是。 好多值得关注的Twitter消息回复了这篇文章,有一则消息来自亚当·雅各布(Adam Jacobs),他是Chef公司的著名首席技术官: 我很想说,“DevOps工程师”知道如何在一支全栈跨职能团队中工作。 DevOps宣传官们会声称,DevOps“其实[不能]沦为单单一种角色。要说有什么区别的话,它更注重团队的构成,而不是个体角色。”但是要建立这样一支团队,你仍然需要确定在同一个阵营需要哪些角色,构建并维护你的交付管道(delivery pipeline)。这个团队可能包括任何或所有下列成员:除了安全等领域的IT管理专家外,还要有开发人员、测试人员和运维人员。 最后,决定招聘一名单独的“DevOps工程师”还是设立一支专门的“DevOps团队”,将因每家企业而异。 DevOps工程团队 对于许多企业来说,设立一支专门的团队来管理其IT运营是一项重要且值得的投入。据《2015年DevOps状况》报告声称(2016/03/25/puppet-labs-launches-state-devops-survey/),基于DevOps的企业部署代码的频次比没有设立DevOps团队的企业最多要高出13倍。 那么,DevOps团队成员又需要什么样的技能呢?下面这个例子描述了实际的DevOps职位说明: 招聘将效力于我们的数据平台和云支持技术团队的DevOps工程师。我们在寻求这类求职者:热衷于开发和生产环境自动化,并且喜欢从事于高度分布式虚拟环境这一挑战。 在这个岗位上,你将帮助设计和运营支持快速开发和部署的环境,同时实现高可用性。除了拥有系统性方法外,我们还在寻找这种求职者:能够以新颖、创新的方式运用DevOps这套方法,并且热衷于探究新技术,以改善我们的整个环境。 主要的职责和技能: · 你负责在公司的统一数据架构和云软件团队里面制定一套DevOps实践。· 你要帮助设计和运营在大型分布式虚拟环境下的高可用性软件。· 由度量指标驱动,专注于持续改进。· 擅长与分布式团队合作。· 在利用众多开源技术方面要有扎实的专长。· 自动化应成为你的理念。· 系统和IT运营。· 持续部署。 一支专门设立的DevOps团队包括几个专业人员,他们各自负责不同的方面。这个团队有两种主要角色:高级DevOps工程师(担任团队负责人)和DevOps工程师。 高级DevOps工程师负责规划整个交付流程,并设计架构,另外还要规划使用哪些工具。实际上,这个人监管整个运营,并且了解整个环境。而其他工程师负责实施和维护这个交付流程。 当然,测试人员和开发人员也是这个流程中的一个必要组成部分,他们负责确保开发的代码以最快的速度交付,并确保拥有最高的质量。每个人还都应该使用易于沟通和协作的工具,聊天运维(ChatOps)就是一种日益流行的实践。 如何成为一名DevOps工程师? 想涉足DevOps领域,开发人员和运营人员就需要学习更多的技能,并且根据需要积累多个方面的经验:编程、云平台(比如亚马逊网络服务)、自动化测试及交付工具,以及日志和监控工具。 我建议多与你团队内外的同事/同仁接触和交流,更深入地了解你的研究开发工作,以及如何有助于提高集成和部署方面的效率。重要的是记住这一点,DevOps工程师并没有特别的日常工作或任务。相反,其工作是不断寻找让整个软件部署流程更高效的先进技术和机会。 最终,DevOps方面的目标是,加快并改善交付流程,既满足用户的预期目标,又满足公司的业务目标。 DevOps职位描述 成为DevOps工程师或加入DevOps团队是扩大你IT技能的大好机会,因为DevOps职位描述实际上包括同时监管运营和整个软件交付流程。 企业对拥有这种高级技能组合的人的需求越来越大,所以这对个人的职业生涯发展来说,同样蕴含着大好的机会。如果你已经是一名IT专业人员,并且在贵公司内部寻找更重大的角色,那么接受培训,成为贵企业DevOps团队的一分子也许正是你需要接受的那种挑战。(Emanuel Peri原创)
页:
[1]