DevOps工程师到底做些什么?

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

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

但是在DevOps模式下,这三个团队不再孤立。大多数时间内,从开发、测试、部署到运营,相关的工程师合并成一个团队并且贯穿整个软件生命周期,开发不再限制于某一个技能而是一整套技术解决方案。当然安全团队也因此有可能在这个软件生命周期中与开发和运营更紧密地工作,及早发现安全问题。
为什么DevOps工程师的角色各不相同呢?
DevOps工程师并不是什么新鲜事物。比如系统工程师,自动化工程师,软件工程师,Linux工程师等等工程师都能成为DevOps工程师。
但是,DevOps工程师的工作性质因组织而异。比如有些是在基础设施自动化和维护中发挥作用,而在另外一些组织中却是在整个交付链中发挥作用而已。

DevOps工程师的角色各不相同,因为他必须通过克服传统协作障碍与开发和运维人员进行协作。而不同的组织有不同的障碍,因此其扮演的角色自然不同。
DevOps工程师日常工作中最重要的两个方面
尽管DevOps工程师的角色各不相同,但几乎所有DevOps工程师每天都会触及两件事 - 自动化和持续集成。
自动化:
与维护基础设施有关的大部分任务仍然是手动的。公司更喜欢使用传统的经过验证的方法,而不是自动化相同的流程,因为他们不想冒任何风险。但事实是自动化任务将有助于更快速地开发和部署软件,这意味着能加快公司从客户处赚取利益的速度。
为了阐述清楚这一点,我们可以考虑下面这个情况,系统工程师如果每天按要求手动备份所有服务两次,那么他可以通过在云端设施上编写脚本来完成这项工作而不是浪费时间来完成这项工作。通过自动执行备份过程,您可以让系统工程师更专注于重要的事情,例如对由于某些因为虚拟机问题而需要关闭的服务进行故障排除。手动执行相同的操作会导致您的系统工程师的负担过重,而这些工程师的效率将大大降低。这只是一个非常简单的例子,通过不实施自动化来阐述资源浪费的概念。

DevOps因此可以作为敏捷的扩展,因为它可以降低由于开发人员、QA和运维团队之间的非协作而可能出现的风险。DevOps通过认识到高质量的软件开发要求包括质量保证和运营专家在内的所有利益相关方的持续参与和反馈,扩大了敏捷原则的范围。
有很多事情可以通过自动的方式来完成,比如在发布新的补丁的时候更新ApacheWeb服务器,更新部署在服务器上的开源软件的版本。
DevOps工程师可以通过创建脚本环境自动完成配置服务器的过程。您可以在一个节点上运行脚本,但如果在数千上百个节点上手工运行相同的脚本将变得不切实际。脚本在这里就变得不再是一个可扩展的解决方案了。
因此,需要以可扩展的方式跨大量节点自动化进行软件配置、配置管理和应用程序部署。这是配置管理工具(如Chef,Puppet和Ansible)在DevOps世界中派上用场的地方。

持续集成:
关于DevOps的另一个重要方面是在软件开发实践中实施持续集成(CI), CI允许开发人员不断更新自动化构建、测试使用到的资源库。
持续集成系统通常包含一个可以持续监控版本控制系统的工具。只要检测到对版本控制系统的更改,系统就会自动构建并测试您的应用程序。如果构建或测试没有通过的,系统会立即通知开发人员解决问题。
持续集成可确保持续交付,因为所有代码更改都会不断部署到构建阶段之后的测试和生产环境中。
通过持续集成,开发人员可以从人工任务中解脱出来,提高工作效率,因为现在在CI中以自动化方式完成自动构建任务,并且由于更加频繁的测试,错误和bug更容易找到和解决,从而最终用户的更新可以更快,更频繁地进行。
有不同的产品和工具可以帮助您在组织中实现持续集成。有些工具可让您将CI 服务器托管在您自己的网络基础架构中。最受欢迎的是从Sun的Hudson项目更名为Jenkins的工具。
还有一些其他托管的CI产品,如完全托管在云中的CircleCI和Travis CI.这些托管的CI产品越来越受到小组织的欢迎,因为它使工程团队能够尽快开始持续集成。

总结
DevOps工程师扮演的最重要角色是弥合软件开发和运营团队之间的差距,提高软件交付速度。尽管DevOps工程师在组织中的角色各不相同,但有两个共同点:自动化和持续集成。

原文地址:http://blog.51cto.com/14084875/2331981

时间: 2024-08-28 22:57:21

DevOps工程师到底做些什么?的相关文章

大数据售前到底该做些什么????

有的时候,技术转售前的人会比较迷茫.不知道该如何下手,一如自己,做售前有大半年了.总是在摸索中前进.对于传统产品,刚有点思路,突然发现,要转型到大数据方向,顿时又有些茫然失措. 如何与客户交流?如何加深对行业的理解?如何促成项目落地?如何制定策略?可以说这四个问题完全回出来了,还只能算是半个售前吧!因为,突然发现,售前要考虑的东西太多太多,不能像市场那样只用想着完成项目,签订合同.而售前工程师相当于是半个销售,你更多的是要跟市场结合,共同去完成公司所下达的任务目标.售前的工作不像售后那样的纯技术

转Rollback后undo到底做了些什么?

转自:http://biancheng.dnbcw.info/oracle/309191.html Rollback后undo到底做了些什么? 从概念上讲,undo正好与redo相对.当你对数据执行修改时,数据库会生成undo信息,这样万一你执行的事务或语句由于某种原因失败了,或者如果你用一条rollback语句请求回滚,就可以利用这些undo信息将数据还原到修改前的样子.Redo用于在失败时还原事务(即恢复事务),undo则用于取消一条语句或者一组语句的作用.与redo不同,undo在数据库内

想做web前端工程师应该学习些什么?

偶然间看到这篇文章,感觉博主写的挺不错的,如果你想做web前端工程师的话,建议您阅读以下这篇文章,其实web前端工程师所做的工作其实就是网站设计,有些小公司的美工其实就是做web前端的.这篇文章对于想学web前端工作的人有很大的帮助,如果您是做SEO的,也建议您学习下博主推荐的这些课程,或许对你以后的职业.薪资都有很大的帮助! 遇到很多新手,都会问,如果要学习web前端开发,需要学习什么?难不难?多久能入门?怎么能快速建一个网站?工资能拿到多少?还有些让我推荐一些培训机构什么的要去学习.我建议是

转载:年薪50万美金的工程师到底牛在哪里?

年薪 50 万美金的工程师他们究竟做哪些事情,或是拥有哪些技术,让他们如此值钱?这些东西有办法"学"吗? 之前 Business Insider 出了一篇某个 Google 工程师拒绝年薪 50 万工作,因为 Google 每年附他 300 万美金的文章,有个对这数字很有兴趣的人就上 Quora 问了,我要怎么作才会跟他一样?我也要到 Google 上班然后年薪 300 万美金这样(谁不想啊?) 这位叫 Amin Ariana 的创业家就上 Quora 写了一则被赞到破表的回答,本文译

年薪50万美金的工程师到底牛在哪里?-- 转

[年薪50万美金的工程师到底牛在哪里?-- 转] 年薪 50 万美金的工程师他们究竟做哪些事情,或是拥有哪些技术,让他们如此值钱?这些东西有办法“学”吗? 之前 Business Insider 出了一篇某个 Google 工程师拒绝年薪 50 万工作,因为 Google 每年附他 300 万美金的文章,有个对这数字很有兴趣的人就上 Quora 问了,我要怎么作才会跟他一样?我也要到 Google 上班然后年薪 300 万美金这样(谁不想啊?) 这位叫 Amin Ariana 的创业家就上 Qu

写给想成为前端工程师的同学们―前端工程师是做什么的?

前端工程师是做什么的? 前端工程师是互联网时代软件产品研发中不可缺少的一种专业研发角色.从狭义上讲,前端工程师使用 HTML.CSS.JavaScript 等专业技能和工具将产品UI设计稿实现成网站产品,涵盖用户PC端.移动端网页,处理视觉和交互问题.从广义上来讲,所有用户终端产品与视觉和交互有关的部分,都是前端工程师的专业领域. 2005年的时候大多数网页长这样: 现在的网页一般是这样的: 前端工程师的发展之路和前景是怎么样的? 前端是一个相对比较新的行业,互联网发展早期(1995年~2005

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

原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-5-deploy-83e790545c23 原文作者:Igor Kantor 翻译君:CODING?戴维奥普斯 让我们简要回顾下我们的 DevOps 之旅: 在第一篇,我们介绍了 DevOps?文化以及相关的基础技能: 在第二篇,我们讨论了如何为将来的代码部署奠定基础: 在第三篇,我们讨论了如何有组织地管理代码:

5000字创业日记:创业4个月,我到底做了哪些事情

创业满四个月 累.神经衰弱睡不好觉 需要处理的工作细节问题越来越多巨想有分身 产品遇到的瓶颈萦绕心头,每时每刻跟幻灯片儿似的一抬眼就是 想闭会眼睛一堆事等着解决,画了新的产品图恨不得明天就能做好回收用户反馈 5.1过节别人的状态是“耶,过节出去玩”,我的状态是“fuck,又耽误3天时间” 以上是一个没什么背景的.马上而立之年的,创业4个月,收入少,睡眠少,创业前景未知,鸡血用完了空血fighting的北京屌丝创业者的真实生活状态. 今天写这篇文章,算是对这几个月的历程做一个记录,一来为日后回忆起

AFNetworking到底做了什么?

前言 作为一个iOS开发,也许你不知道NSUrlRequest.不知道NSUrlConnection.也不知道NSURLSession...(说不下去了...怎么会什么都不知道...)但是你一定知道AFNetworking. 大多数人习惯了只要是请求网络都用AF,但是你真的知道AF做了什么吗?为什么我们不用原生的NSURLSession而选择AFNetworking? 本文将从源码的角度去分析AF的实际作用. 先从最新的AF3.x讲起吧: 首先,我们就一起分析一下该框架的组成. 将AF下载导入工