devops工程师是干嘛的

六六 TOP1 73

DevOps工程师是为了加快开发和运营团队之间的 交付效率而存在的桥梁。尽管DevOps工程师的角色各不相同,几乎所有DevOps工程师每天都会触及两件事:自动化和持续集成。

一、定义

DevOps工程师是为了加快开发和运营团队之间的 交付效率而存在的桥梁。 DevOps工程师在软件生命周期中能带来什么? 在传统的交付周期中,软件开发人员会在经年累月的编写代码后,将软件交给QA团队进行测试,然后将最终版本交给运营团队部署。 这三个阶段,即开发,测试和部署之间是缺乏协作的。 开发编写的代码最终并交给运维团队,然后运维团队来解决代码部署过程中出现的问题,或者将代码交还给开发团队来解决遇到的问题。 所有这些都导致了软件开发过程的放慢。 但是在DevOps模式下,这三个团队不再孤立。

二、日常工作

自动化:

与维护基础设施有关的大部分任务仍然是手动的。公司更喜欢使用传统的经过验证的方法,而不是自动化相同的流程,因为他们不想冒任何风险。但事实是自动化任务将有助于更快速地开发和部署软件,这意味着能加快公司从客户处赚取利益的速度。

为了阐述清楚这一点,我们可以考虑下面这个情况,系统工程师如果每天按要求手动备份所有服务两次,那么他可以通过在云端设施上编写脚本来完成这项工作而不是浪费时间来完成这项工作。通过自动执行备份过程,您可以让系统工程师更专注于重要的事情,例如对由于某些因为虚拟机问题而需要关闭的服务进行故障排除。手动执行相同的操作会导致您的系统工程师的负担过重,而这些工程师的效率将大大降低。这只是一个非常简单的例子,通过不实施自动化来阐述资源浪费的概念。

持续集成:

关于DevOps的另一个重要方面是在软件开发实践中实施持续集成(CI), CI允许开发人员不断更新自动化构建、测试使用到的资源库。

持续集成系统通常包含一个可以持续监控版本控制系统的工具。只要检测到对版本控制系统的更改,系统就会自动构建并测试您的应用程序。如果构建或测试没有通过的,系统会立即通知开发人员解决问题。

持续集成可确保持续交付,因为所有代码更改都会不断部署到构建阶段之后的测试和生产环境中。

通过持续集成,开发人员可以从人工任务中解脱出来,提高工作效率,因为现在在CI中以自动化方式完成自动构建任务,并且由于更加频繁的测试,错误和bug更容易找到和解决,从而最终用户的更新可以更快,更频繁地进行。

三、所需技能

1. 沟通能力

DevOps 倡导的核心理念就是沟通和协作,所以,难怪沟通能力会排在软实力的第一名。

在推动 DevOps 落地的过程中,你需要同时具备向上沟通、向下沟通和横向沟通的能力。提炼 DevOps 实施框架和落地价值,寻求领导层的支持,需要向上沟通;打破组织间的边界,建立跨团队的协同,需要横向沟通;引导团队快速完善平台工具能力,表明工作的意义和价值,提升大家的主动性,需要向下沟通。所以你看,其实每天的工作中都充满了大量的沟通。

需要注意的是,沟通能力不仅限于语言能力,很多时候,开发运维的沟通是基于代码完成的。所以,良好的注释风格、清晰结构化的描述方式……这些细节往往也能提升沟通的效率。

比如有一种很 DevOps 的方式,就是 ChatOps,是以 GitHub 的 Hubot 为代表的对话式运维,慢慢扩展为人机交互的一种形式。通过建立一种通用的沟通语言,打破开发和运维之间的隔阂。

2. 同理心

DevOps 希望团队可以共享目标,共担责任,但是实际上,哪个团队不想更加自动化、更加高效地工作呢?所以,DevOps 工程师要能够站在对方的角度来看问题,设身处地地想想他们的困难是什么,我能做些什么来帮助他们。这种同理心也是弥合团队分歧,建立良好的协作文化所必需的能力。

除此之外,培养团队以用户为中心的思想,也是很好的方式。这里的用户,不是外部用户,而是在交付流程中存在交付关系的上下游部门。在交付一个版本的时候,要尽力做到最好,而不是不管三七二十一,先丢过去再说。

我还是要再强调一下,同理心只有在流程和机制的保证之下才能生根发芽。

3. 学习能力

DevOps 工程师需要了解的东西真得很多,因此,能够在有限的时间里快速学习新的技能,并且有意愿主动地改进提升,也是一种能力。

在 DevOps 工程师的眼里,从来没有“完美”二字。比如完美的流程、完美的技术实现、完美的软件架构等。他们似乎天生就有一种能力,那就是能发现问题并时刻想着可以做到更好。但实际上,如果没有日积月累的思考,没有外部优秀实践的学习,没有开放的沟通和交流,是没有办法知道,原来还有一种更好的工作方式的。

很多时候,我们都在等待一个完美的时机,比方说,你打算学习一个新的知识点,但要等到工作都完成了,没人来打扰,有大段的时间投入才开始学习。但实际上,哪来这么多准备就绪的时候呢?真正的学习者都是在没有条件来创造条件的过程中学习的。所以,如果想开始学习 DevOps,我信奉的原则只有一个,那就是先干再说。

回复

我来回复
  • 暂无回复内容

联系我们
关注微信
关注微信
分享本页
返回顶部