DevOps 工程师实际上是做什么的?

我们之前已经讨论过许多关于DevOps和DevOps世界的最新趋势了。但是DevOps工程师到底是做什么的?

DevOps工程师以最纯粹的方式弥合了软件开发和运维团队之间的差距,以提高软件的交付率。

DevOps工程师带来了什么?

传统的软件开发流程是软件开发人员花费数周和数月编写代码,然后将代码交给QA团队进行测试,然后将最终的发布版交给运维团队去布署。所有的这三个阶段,即开发,测试,布署,之间缺乏协作。

开发者编写代码然后交给布署团队。现在由布署团队来解决代码布署过程中出现的问题,或将代码交给开发团队以修复bug。所有这些都导致软件开发过程变慢。

但是在DevOps模式下,这三个团队将不再相互隔离。大多数时候,这三个团队将合并成一个团队,工程师会在整个应用程序生命周期中工作,从开发和测试到布署到操作,并开发出一系列不限于单一功能的技能。安全团队也可以在整个应用程序生成周期中和开发和运维更紧密的合作。

为什么DevOps工程师的角色会有所不同?

DevOps工程师并不是一件新鲜事。它是一类工程师的统称,如系统工程师,自动化构建工程师,软件工程师,Linux工程师等等。

然而,DevOps工程师的工作性质因组件而异。在某些情况下,他们的工作是基础设施的自动化和维护。有些组件将他们的工作扩展到整个交付链。

DevOps工程师的角色各不相同,因为他必须通过克服传统的协作障碍与开发人员和运维人员进行协作。而且不同的组织在这个过程中会有不同的协作障碍。

DevOps工程师日常工作中最重要的两个方面

虽然DevOps工程师的角色多种多样,但是几乎所有DevOps工程师每天都会触及两件事——自动化和持续集成。

自动化

与维护基础设施相关的大多数任务仍然是手动的。公司更愿意使用传统的成熟的方法,并不是自动化的相同流程,因为它们不想冒任何风险。但事实是自动化任务将有助于加快软件的开发和布署,这意味着从客户账户到公司账户更快的现金转移。

要意识到这一点,例如,如果系统工程师的任务是每天两次手动备份所有服务器,它这是在浪费时间,因为通过编写脚本,在一些云设施中自动备份服务器可轻松实现这一点。通过自动执行备份过程,你可以让系统工程师更专注于关键问题,例如对由于某些VM问题而导致服务器关闭进行故障排除。手动执行相同操作将导致系统工程师负担过重,其效率将大幅降低。这只是一个很简单的例子来说明不转向自动化而造成的资源浪费。

DevOps可以看作是敏捷(Agile)的扩展,因为它可以降低由于开发团队,QA和布署团队之间的协作不良而可能出现的风险。DevOps通过认识到高质量软件需要包括QA和运维专家在内的所有利益相关方的持续参与和反馈的这一事实,扩展了敏捷原则的范围。

有许多事情可以通过自动化方式来完成,例如在发布时,使用新补丁更新Apache Web服务器,更新服务器上布署的开源软件的版本。

DevOps工程师可以通过创建脚本环境来自动化配置服务器的过程。你可以在一个节点上运行脚本,但如果不是数以千计的节点,则在数百个节点上运行相同的脚本将变得不切实际。脚本在这里不是可扩展的解决方案。

因此,需要以可扩展方式,跨大量节点自动化软件供应,配置管理,和应用程序布署。这就是像Chef,Puppet,和Ansible这种配置管理工具在DevOps世界中派上用场的地方。

持续集成

DevOps的另一个重要的方面是持续集成(CI),它是一种软件实践,CI允许开发人员不断更新对单个仓库的更改,从而进行自动化构建和测试。

一个持续集成系统通常包含一个监控版本控制系统的工具。每当监测到版本控制系统的更改时,持续集成系统将会自动化构建和测试应用程序。如果构建或测试未通过,系统会立即通知开发人员去解决问题。

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

使用持续集成,开发人员可以从手动任务中解脱出来,提高他们的工作效率,现在可以在CI中以自动的方式完成;由于频繁测试,错误和bug将更容易被找到和减少;可以更快速,更频繁的提供对最终用户的更新。

有多种产品和工具可以帮你在组织中实现持续集成。

有些工具可以让你在自己的网络基础架构中托管CI服务器。最流行的一个是Jenkins,它是由Sun公司的Hudson项目重新命名而来。

还有一些其它的托管CI产品,例如CircleCITravis CI,它们是完全托管在云端的。这些托管CI产品正变得越来越流行,尤其是对于小型公司或组织,因为它可以让工程师团队尽可能快速的开始持续集成。

总结

DevOps工程师扮演的最重要的角色是弥合了开发团队和运维团队之间的差距,增长软件交付率。

虽然DevOps工程师的角色因组织而异,但有两个常见的方面:自动化和持续集成。

DevOps 工程师实际上是做什么的的更多相关文章

  1. DevOps工程师到底做些什么?

    我们之前已经听到很多谈论DevOps和DevOps世界的最新趋势的事情,但是就DevOps工程师本身,到底干些什么呢? 在最纯粹的存在形式上来说,DevOps工程师是为了加快开发和运营团队之间的交付效 ...

  2. DevOps 工程师成长日记系列五:部署

    原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-5-deploy ...

  3. DevOps 工程师成长日记系列四:打包

    原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-4-packag ...

  4. DevOps 工程师成长日记系列三:版本

    原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-3-versio ...

  5. DevOps 工程师成长日记系列二:配置

    原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-2-config ...

  6. DevOps 工程师成长日记系列一:必备知识与技能组合

    原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-366097df7737 ...

  7. 优秀DevOps工程师必会的33个面试题

    DevOps面试问题 01 您能告诉我们DevOps和Agile(敏捷)之间的根本区别吗? 答:尽管DevOps与敏捷方法(这是最流行的SDLC[Software Development Life C ...

  8. 2020年DevOps工程师入门指南

    DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...

  9. DevOps工程师的成长路线图

    DevOps工程师的成长路线图 我们推崇的是 Reducing the gap between Devs and Operation teams. 来自kamranahmedse you built ...

随机推荐

  1. div里包含img底部多出3px的解决办法

    如果将一个img放在div里面,你会发现在img下面无端端的就多出3px的空白出来.padding.margin.border都设为0,无效!那么怎么解决这个问题呢? 问题图: 解决后的效果: 这个B ...

  2. Hadoop 学生平均成绩

    1.实例描述 通过一个计算学生平均成绩的例子来讲解开发MapReduce程序的流程.输入文件都是纯文本文件,输入文件中的每行内容均为一个学生的姓名和他相应的成绩,如果有多门学科,则每门学科为一个文件. ...

  3. 利用RTL2832u电视棒芯片追踪民航飞机轨迹

    我国民航飞机通讯的频率为1090Mhz,而rtl2832u电视棒芯片可以接受的频率范围为24 – 1766 MHz(通过改制Q通道可以接收0-30Mhz的短波)下面开始介绍利用rtl2832u电视棒芯 ...

  4. [Swift]LeetCode245.最短单词距离 III $ Shortest Word Distance III

    This is a follow up of Shortest Word Distance. The only difference is now word1 could be the same as ...

  5. [Swift]LeetCode552. 学生出勤记录 II | Student Attendance Record II

    Given a positive integer n, return the number of all possible attendance records with length n, whic ...

  6. Json数组转换字符串、字符串转换原数组......

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. MySQL casting from decimal to string(mysql decimal 转 varchar)

    今天群里一个哥们问我mysql怎么将decimal转成varchar,经过查阅资料发现,mysql好像不能将decimal直接转换成varchar,但是可以转成char,原文链接:http://sta ...

  8. HBase篇--初始Hbase

    一.前述 1.HBase,是一个高可靠性.高性能.面向列.可伸缩.实时读写的分布式数据库.2.利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量 ...

  9. android 缩放平移自定义View 显示图片

    1.背景 现在app中,图片预览功能肯定是少不了的,用户基本已经形成条件反射,看到小图,点击看大图,看到大图两个手指开始进行放大,放大后,开始移动到指定部位~~~ 我相信看图的整个步骤,大家或者说用户 ...

  10. Python内置函数(52)——range

    英文文档: range(stop) range(start, stop[, step]) Rather than being a function, range is actually an immu ...