点击上方“朱小厮的博客”,选择“设为星标”

做积极的人,而不是积极废人

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产品,例如CircleCI和Travis CI,它们是完全托管在云端的。这些托管CI产品正变得越来越流行,尤其是对于小型公司或组织,因为它可以让工程师团队尽可能快速的开始持续集成。

总结

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

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



想知道更多?描下面的二维码关注我

好文推荐:

  • 基于数据库实现的分布式锁

  • 基于Redis实现的分布式锁

  • 为了追求极致的性能,Kafka掌控了这11项要领

  • 面试的时候遇到答不上的问题怎么办?

  • 如何在面试中介绍自己的项目经验?

>>>Learn More<<

喜欢就点个"在看"呗^_^

DevOps工程师到底是做什么的?相关推荐

  1. linux运维工程师到底是做什么的?

    linux运维工程师到底是做什么的? 如果你想要进入运维管理领域这一行,首先你应该了解linux运维工程师是干什么的.他主要是对Linux下各种网络服务.应用系统.监控系统等进行自动化脚本开发的工作, ...

  2. 测试开发工程师到底是做什么的?你真的知道吗

    目录 一二三线互联网公司对测试开发工程师的要求: 测试开发工程师的具体职责: 不要迷失方向 总结: 测试开发工程师必看视频教程: 一二三线互联网公司对测试开发工程师的要求: 现在很多测试的同事对测试开 ...

  3. SRE工程师到底是做什么的?

    尽管站点可靠性工程已经存在了一段时间,但也只是最近才在业界获得一些名声.但人们对于站点可靠性工程师(SRE)的作用仍然存在很多疑问.我们所知道的大部分内容来自谷歌的<站点可靠性工程>一书. ...

  4. 这里告诉大家,“后端开发工程师”到底是做什么的。

    后端开发,主要是服务器开发,主要是处理请求,比如,当你在浏览器地址栏上输入响应的路径,点击一个超级链接,它负责接受,并且处理它给予用户相对应的答复. 1.1-常见的服务器架构 A/S:App和Serv ...

  5. 测试开发工程师到底是做什么的?

  6. 运维工程师到底都在做些什么?

    我们群里最近讨论500台服务器安装系统的问题.我特意找了一篇高人写的文章来与大家分享,希望对大家能有所帮助哈!(以下为作者原文,未加任何修改哈) 看到chinaunix最近出的门户网站运维板块veyr ...

  7. 一位高级软件工程师的自述:这个职位到底要做什么工作?

    作者丨Joy Ebertz 译者丨核子可乐 策划丨赵钰莹 本文作者 Joy Ebertz 接触过的几乎每一家软件公司都设有技术晋升与管理晋升两条职业道路,这意味着如果只走技术方向,技术人员也完全可以在 ...

  8. 软件测试到底是做什么的?企业为什么招这么多软件测试工程师?

    测试不就是点点点?相信很多软件测试工程师或者正准备转行的都听说过这句话. 大部分人刚了解软件测试就是点点点,俗称点工.也给软件测试定义了一个标签:好入门,没有开发那么难等等,但是工资相对其他行业高.仔 ...

  9. DevOps,到底是开发还是运维?

    DevOps 自 2009 年诞生以来,至今整整过去了十年,从最初的摸索,逐步变成一种主流的软件开发交付模式.DevOps 这个词来自于 Development 和 Operations 的组合,可以 ...

最新文章

  1. Visual C++——《可视化编程技术》实验报告——绘图与文本操作
  2. java 局部性原理_程序局部性原理
  3. Java若_【JAVA基础】JAVA四种引用(强软若虚)
  4. UNIX(进程间通信):04---孤儿进程
  5. 小评几种O/R Mapping工具
  6. 任正非之女姚安娜正式出道
  7. Julia 语言可重用性高竟源于缺陷和不完美?
  8. bzoj 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚(DP)
  9. C#面试题(String和StringBuilder区别)
  10. 传统进销存软件上云势在必行
  11. 实验10.  Hadoop环境搭建
  12. 【权限维持】window服务端常见后门技术
  13. 国土档案管理信息系统【档案查借阅登记】
  14. postman“在Tests中通过data.token获取token失败”的解决方法
  15. windows 文件夹正在使用 “操作无法完成,因为其中的文件夹或文件已在另一程序中打开“ 解决办法
  16. CAD不支持实时调试
  17. 《DSP using MATLAB》Problem 7.36
  18. 关于RTL8192CU
  19. 微信小程序:uni-app页面Page和组件Component生命周期执行的先后顺序
  20. 手把手教你搭建一个【文件共享平台】系列教程第二话——环境搭建

热门文章

  1. 2019年我总结的前端面试题
  2. Linux基础命令---get获取ftp文件
  3. koa-mysql(三)
  4. mybatis+dubbo+ springmvc+zookeeper分布式架构
  5. 稍稍乱入的CNN,本文依然是学习周莫烦视频的笔记。
  6. data source from bit.ly
  7. Java-代理模式的理解
  8. ES6笔记(1) -- 环境配置支持
  9. 基于jquery的侧边栏分享导航
  10. fatal error LNK1561: 必须定义入口点问题的我是这样解决的