写点什么

两位资深运维谈人生:开发和运维之间要形成你退我进的节奏

  • 2013-07-08
  • 本文字数:6511 字

    阅读完需:约 21 分钟

2013 年 4 月的 QCon 北京会场上,两位在运维界打拼多年的技术男聚首专访间,就“运维人员的终极发展目标”这个话题展开了深入的讨论。他们是:

  • 邵海杨个人页面),网名“海洋之心”,系统架构师,业余撰稿人,十多年来一直致力于开源软件及前沿科技的研究和探索,目前在又拍云存储任运维总监。杭州 LUG 组织者之一。
  • 赵建春(Coati),腾讯业务运维 T4 专家工程师,总监,技术运营通道委员。04 年大学毕业后加入腾讯,先后参与过交友、音乐、贺卡、QQ 空间等业务的开发。06 年后和团队一起专注于技术运维,负责腾讯社交网络事业群社区类 WEB 业务的运维和建设工作至今。经历了业务规模从数十台设备到数万台设备的快速发展历程。过程中 Coati 在运维环境标准化,业务 Set 化,运维自动化及多地分布式部署等方面积累了丰富的实战经验。

运维工程师的终极目标是什么?运维人员在职业发展上有哪些选择?在 DevOps 趋势滚滚而来的当下,运维应该如何应对,如何与 Dev 团队形成和谐的步调?下面的对话将尝试对上述问题进行解答。

InfoQ:今天的话题是海杨选的,整个谈话也由海杨主持。我们今天不谈那些沉闷的话题,而是聊聊运维应该如何规划自己的职业和人生。那,海杨开始吧:)

邵海杨:首先我想说,我们做运维的一定要传递一种正能量给别人。网上很多文章描述运维都用到“苦逼”这个词,有的还编了一个运维的蓝精灵之歌,都是讲运维要做搬机器,修修网络,修修电脑之类的苦活儿,但是我认为这不是运维的精髓。

我们是不是应该先把“运维”这个词重新定义一下?作为腾讯 T4 level 的运维工程师,你能否讲一讲你所经历的运维人生,给刚刚上路的运维者一些启示?

赵建春:我这边主要是比较偏软件层面的运维,硬件层面运维接触的比较少。另外,我是做开发出身的,所以和开发沟通起来比较好。

我的团队都是做偏软件层面的事情的。归根到底,我们是做什么的呢?我认为,我们是让软件活起来的人。开发把软件开发出来以后,它只是一个程序。我们运维把它部署到线上去,这才让它真正的运转起来。我们是让软件真正的活起来的、有生命的一群人。

邵海杨:我同意。运维工程师真正的终极目标就是让机器能够跳跃起来,能够滚动起来,能够把我们业务的美好的一面给展现出来。运维工程师最大的成就是什么?能够操作成千上百台机器……

赵建春:成千上万台。

邵海杨:而且还能够和睦相处。机器与机器之间也可以团结互助,比如你的机器这里有问题的,其他机器自动过来帮你分摊一下。

赵建春是的。而且这样的状态是要软件来实现的。

邵海杨:是这样的。对于有些团队来说,可能软件工程师的技能有限,无法在交付软件的时候就考虑到机器和谐共处的这些问题,这种时候就必须要靠运维工程师进行一些工作,如水平扩展、分库、分表,从业务层面上去辅助软件,做一些软件开发的工作。

你可以在开发和运维之间自如切换,这一点我真的很佩服你。我自己原来是做 PHP 的,没有接触过大型的软件开发的经历,开发方面还是偏弱一点。

赵建春这也是和自己的机遇相关的。这个是平台机遇,很难每个人都碰到一样的平台机遇。

我觉得,每个人出去找到的第一份工作肯定是各式各样的,有的人可能一不小心就成为软件工程师了,有的人一不小心就进入到了运维工程师的行业。那个时候我就告诉他,你不管进哪个行业都没有关系,因为我们前进、发展的道路是一样的——比如,都要往架构师走。架构师说白了,就是以软件为基础。运维做到一定程度,你会用更多时间去想软件要怎么改进,运维的工作量就会减少。同时,软件开发师在设计软件的时候,也会更多考虑如何让运维更加智能。无论你是在这两种岗位中的哪一个岗位上,只要能够有这种跨领域的交流,其实慢慢都会走到架构师这条路。

InfoQ:我打断一下。我觉得刚才你们说的是一种理想的状态,而现实是很骨感的。你们看到的现状离这种理想的状态还有多少差距?

赵建春在我看来,做运维分两类人:一类就是找了份工作,一类是真心喜欢技术。

找了一份工作的人,他对技术的痴迷以及研究没有那么深刻。当他在运维过程中遇到问题时,协调能力好的人就能够通过协调的方式把这个问题解决了;协调能力不好的人,就只能打酱油。这两种人都会有一个问题:长远发展会有瓶颈。打酱油的那个肯定是不行的。有协调能力的人,他会把一个目标任务通过协调资源做好,但是对技术深度的积累就会比较差,这样他在做一些偏技术型的推进、推广的时候,就不能够去胜任,因为和他合作的人会不太信任他。

对技术特别感兴趣的人,遇到了问题,或者出了一些故障,他就会找各种各样的办法解决它,看看业界对这个问题有什么研究结果,用各种办法把它弄明白。这个时候如果有一个快速发展的平台,经常面临爆发式增长的业务,他就会在很短时间内遇到很多不同种类的问题和异常,很快成为一个很有积累的人,每个事情他都钻的很深,他会积累到别人几年时间都积累不到的经验,然后会有很多深刻的体会和感受。

这种人又分两种:一种协调能力很好;一种不怎么说话。不怎么说话的人,会成为运维领域专家,能够解决很深的技术问题。协调能力很好的人,慢慢会有自己的想法,从根本上去反推开发,和开发讲道理,探讨这个问题应该怎么样来解决。因为很深入技术,所以和开发的沟通是对等的,他认为你说的有道理。长此以往,你对开发会越来越有影响力,给整个的业务和架构带来控制和影响。

我以前招聘的时候常说,也许你做过开发,也许你没做过开发,长远的发展都是运维架构师。我们是不写代码的架构师,通过规范和约束产品的架构使它变得更好。

邵海杨:腾讯是大公司,高手多,分享又多。你们有腾讯大讲堂,淘宝有阿里大学,只要努力积极的向别人去学习,成长的空间和机会就很多了。像我们小公司呢,一方面要积极的向自己的同事去学习,另外还要多去参加社区活动。因为在小公司,毕竟个人的能力有限,你旁边有个高手,把他学到手了,还是井底之蛙。要不断的走出去。

对于现在正在运维路上挣扎的那些人,他可能想让自己的工作变得轻松一点。你对他们有什么技能上的建议?

赵建春让工作变得轻松一点?

我觉得运维这个岗位和研发不太一样,他要的知识面是广度加深度。研发往往更要求深度,除了架构师之外,大部分研发工作需要有很好的深度才能完成。运维是软件和硬件之间的一个桥梁,所以你就要懂得技术,懂得软件,懂得开发,还要懂操作系统,懂硬件,所以听上去对你的要求就会比较多,很难样样都很精深。

要让自己做得比较轻松,你要能清楚的认识自己是一个什么样特点的人。

如果你是一个技术深度没那么深的人,那就建议多做一些技术项目的推动工作。其实团队里面,很多东西都是要持续的去花一年、两年时间去推动的,把它从没有做到百分之百,这个过程中,需要很多沟通、推动的技巧。一个很闷的工程师要把一个方案推销出去,难度是很高的。但是一个很会打交道的人,他去推动这个事情就会很容易。虽然你对技术没那么精通,要做管理决策的时候会有问题,但是适合做项目的推进。

如果你对技术非常感兴趣,尤其是如果你觉得自己对协调、推动这种事情不感兴趣,那最好是走技术专家的道路,比如数据库专家,软件架构专家等等。

这两个也可以结合起来。深、广结合的人适合做管理。大多数这样深度也还不错、协调能力和沟通能力也还不错的人都走到管理上去了,这样的人发展的前景会更好一些。

不管怎样,你应该很好的认识自身的特点。

邵海杨:你刚才提到的运维人员必须表达能力要好,这一点我非常赞同。运维工程师做的两个事情,第一个是机器要听话:我们要让自己闲下来,用自动化的工具,统一管理,把流程规范掉,这样我就可以批量的去操作机器。

第二个事情就比较难了,我需要问老板要资源。身边十台机器,用完了就用完了;再要十台的时候,就要考察你的表达能力。这一点我觉得非常痛苦。

我有个经验,老板他其实是对钱比较关心,或者对数据比较关心,你口头跟他去讲,他是没有感觉的。如果老板是懂技术的,我们就直接拿生产线上的监控图给他看,说负载已经这个样子了,他就能理解。如果老板是不懂技术的,你给他看这个数据他还真的看不懂,所以必须给他业务报表,图形化的业务报表给他看。总之,还是要动一些小聪明,去转换成老板能够理解的方式去问他要资源。你只要能够做到这两点,这个事情就能够做得很好。

赵建春一般这样的人的思维会比较清晰,说事情也会说的比较清晰。你要把一个技术问题让别人听懂,有些人还真做不到。

邵海杨:你今天上午演讲的话题,我个人感觉还是偏大,大公司里用的多。小公司,比如说我们,还是用小的自动化加Puppet 用的比较多一点。

赵建春但是我觉得小公司也要非常注意,因为我们就是从小变大的。在这个过程中,我们最终选择了这样一个路,其实回过来看也是有很多的教训,为什么早不做?为什么在很小的时候不做?在小的时候不意识到这个在大了以后会带来的麻烦和困惑有多大,你就没有这个压力和动力去做;但是等它大了以后,资源永远是有限的,尤其是咱们搞互联网的,整天都在加班处理故障,哪有时间回过头来做打扫清扫的工作。

你越早做,以后越不需要你去回过头去把这个不标准的变成标准的。

InfoQ:我插一个问题:你也不知道你会不会变大,万一白做了怎么办?

赵建春:当然是希望变大了。

邵海杨:我相信你做了标准化组件以后还真的会变大,因为你有这种想法以后,这个公司想不强大都不行。

赵建春也不一定一开始就要做标准化组件,但是一开始你要多想,最好是根据长期对比选择一两样的技术方案,而不是说什么技术方案都有。不同的人进来就会带来一套不同的技术架构,这是很不应该的,因为人员会迭代,会更替,他会走,也会来新的人。一旦人员发生更替变化之后,原来那堆系统就没人管了。开发不用管,运维你得管,因为要对用户服务。这时候痛苦的是你。

邵海杨:是的,必须要流程化。

我想问一个我比较关心的问题,当我进入一个公司以后,运维要去做一些事情,然后会牵扯到跟研发的争议。怎么去协调运维跟研发之间的节奏?

赵建春这也不见得是我个人的经验了,是公司的经验,包括我的一些体会。

我总结就是有张有弛:开发进的时候我们退,开发退的时候我们进。

我们是要服务产品、服务用户的,最终是要为用户服务好。开发进的时候,他们可能会有很多很紧急的事情,要保证这个产品按时上线,或者说抢占市场,他会产生很多需求。这个时候我要开下绿灯,那我们就退一下,全力支持好开发,去把这个做好。

但是呢,产品也会有周期,也会有波峰低谷,它有的时候比较闲,在这个时候你退我进,和开发造成一个很好的一个互动。

正式的做法是这样子的:我们运维线每年都会制订一个年度规划的大目标,比如说我们今年要做容错容灾的跨 Site 分布,这是我们的一个年度的计划。当然这一年也许完成不了,如果完成不了就延后到下一年,但是我们提前就告诉你我们要做这样的事情,明年我们在产品上做一些优化的项目,后年我们要支持一下 IPv6,这些项目我们在年初的时候就会有一些优先的一些思考,今年应该做什么,明年重点做什么。这个时候和开发沟通,最好是让两边都把这个任务考虑进去,排到自己的 KPI 里面去。这个时候我们就会和开发协商,在一年的间里面协商一些重要的事情,包括我们做这种规范化的建设,可能也会要他们来配合,那我不是说一年时间,你肯定是有忙的时候有闲的时候,忙的时间我肯定全力支持你,闲的时候你全力支持我,你进我退,我退你进,就是这样。

邵海杨:你是说运维和研发是要充分交流的?

赵建春我们是交流很多的,很多任务是共同协商里面就要认同去做的。说白了,我们是支持开发的,是服务他们的,但我们要争取他们的服务,在理论上要是对等的,不能我们一味的服务你,你不服务我。如果形成良好的互动以后,他就会互相支持。

邵海杨:不过,在我公司里也有这种情况:技术员有点水平,就开始有点脾气了,我们运维人员还得去迁就。

赵建春这是有可能的。但是,这也跟我们中午讨论的一个话题有关,就是看能不能和开发形成良好的互助互信任的一个机制。而且我觉得除了刚才说的,也要高层来制订一些在技术线上的一些长远的目标。

邵海杨:我曾经在一个公司做的很开心,就是因为有高层支持。我们特别成立了一个研究组——我不知道你那边腾讯叫什么?类似技术委员会?

赵建春技术委员会是做直接晋升那种。

邵海杨:我们成立了一个研究组,这个研究组有个运维总监,就比如说我,然后还有个研发的头,还有一个就是做业务这一块的,还有一个就是产品经理。我们发现我们四个人坐在一张桌子上办公的时候效率特别高,因为沟通只要跟上面的 Leader 沟通就好了。最怕就是什么呢?就是前期没沟通,等到要上线了再跟你来说,每个人心里都会抵触一下。我发现那个时候坐在一起的时候效率特别高,而且我们互相之间都学到了东西,一些好的 Idea,好的技术,马上就可以去做一些研究跟进。

赵建春我们运维和研发 Leader 在和总监一起的时候就经常会讨论一些问题,最近运维需要我们支持帮你们做什么推动和改进。然后过年的时候交换一下信息,你明年重点做什么,然后互相留下时间。但是呢,不要在开发很忙的时候去强制他做一些事情,这样会使他会反感很大,他觉得你不理解他,他压力也很大。

邵海杨:下一个问题,我想问一下,你认为运维工程师最需要的一种品质是什么?

赵建春我先说一个非技术的,就是能够受委屈。为什么这么说呢?因为不管什么地方发生了故障,都和运维有关,你都逃不了干系,都是你有一定的责任。所以有时候,你觉得自己很委屈,这个事真的和自己没关系,甚至是公司有些处罚或者什么的时候,他一定会把你涵盖进去,这时候觉得做这个工作很没意义,很痛苦。

但这个也不能这么想。实际上,确实是所有的问题都可以归结为一条:监控不到位。

还有,胸怀是被委屈撑大的,心胸放开阔了以后,那这些问题都不是问题,每一个问题都是一次学习的机会。

第二,我比较喜欢技术,我认为还是要有钻研精神,要去学习深入了解技术。因为我们做运维的纯粹是做技术的,我们不是做产品,不是做销售。刚才我讲的这个协调项目型的人,团队里确实需要,但是不需要太多,一个团队有那么几个就够了。还是希望团队的同事更多去更深入的研究和学习技术,然后这样我们和开发才能有一个对等的沟通和交流,否则开发可能真的是会懒得跟你讨论问题,他觉得我们两个不在一个频道上,沟通起来会很难。

我们每双周都有团队内部的分享。我曾经尝试过两次,第一次失败了,组织了一堆人要去分享,让你第一次讲,他第二次讲,他第三次讲,这样安排的发现不行,分享了三四节课以后断了。第二次做的时候,我就亲自出马,自己提前准备了四门课,组织起来以后,如果哪里没人讲了,我就讲。同时我在底下去找一些 Leader,找一些骨干的同事,和他们讨论他们有什么可以贡献的,希望他们来讲。这时候再去大方向的撒网说,谁愿意讲来找我,给大家来提前准备,我就去提前把两、三个月的分享的议题先统计下来。你可能没做好 PPT,那我就问他你要不要讲,他说要讲,沟通一个大概时间,他给我一个承诺以后他就去准备,这个时候等快断粮的时候再去收集一下。

现在这个机制保持的比较好,我们已经坚持了两年时间,有时候一周不止一次。

邵海杨:这点说到我心坎里去了。运维人员要不断的学习新技术,同时还要分享,我一直认为一个人的学习是有限的。

赵建春而且这样的一个氛围会带动周围的人去学。那些刚开始没有想着去分享的人,看到别人都在分享,如果这个人有上进心,他会觉得自己落后了,是不是考虑要分享一下。

邵海杨:而且可以帮助他们锻炼口才,就把交际能力这一块也给提上去了。

赵建春很多人很乐意分享。我们团队里面有很多同事分享了好几次,他有些课题他要一次讲不完,他要分好几次讲,比如 Hadoop,或者是 Linux Container,一次讲不完,他就分几个章节来讲。

邵海杨:所以我对运维工程师只强调两点,第一点就是运维自动化,一定要让自己闲下来,才有更多的时间和精力去学习新知识;第二个,一定要坚持学习,尤其是 Linux,因为很多新技术都是先在 Linux 上被实现的,所以你要坚持每天学习一点点。最关键的是一定要学会分享,因为你一旦会分享了以后,你会发现你的交际能力也变强了,你的口头能力也变强了。

赵建春也提升了影响力。

邵海杨:这些能力提升以后,以后我们去问老大要资源,就会变得很 Easy。

2013-07-08 13:1912893

评论

发布
暂无评论
发现更多内容

2021年公有云市场的5大趋势

云计算

低代码应用:软件开发的一体化最新形态!

优秀

低代码

我愿意招什么样的产品经理?

石云升

产品经理 招聘 9月日更

dubbo-go github action 集成测试

apache/dubbo-go

dubbo-go Apache Dubbo Dubbo3

汽车之家基于dubbo-go云平台的探索和实践

apache/dubbo-go

dubbo dubbo-go dubbogo Dubbo3

区块链军事应用探析

CECBC

JavaScript进阶(七)call, apply, bind

Augus

JavaScript 9月日更

网络攻防学习笔记 Day144

穿过生命散发芬芳

高可用 9月日更

玩转TypeScript工具类型(下)

有道技术团队

typescript 大前端 网易有道

服务实体经济,银行区块链应用正在画一个更大的圆

CECBC

Mp3文件结构全解析(一)

轻口味

android 音视频 9月日更

Golang正确使用kafka的姿势-细节决定成败

OpenIM

金融级分布式事务解决方案DTC

tom

和声是容介态——为《链政经济:区块链如何服务新时代治国理政》一书作序

CECBC

通俗易懂 即时通讯初学者入门 WhatsApp技术架构

OpenIM

银行数字化转型指南:《区域性银行数字化转型白皮书》完整版重磅发布

百度开发者中心

最佳实践 银行数字化转型

【音视频专题】音频质量评估方法那些事

声网

算法 音视频

与顶级互联网公司技术大佬面对面聊聊RocketMQ

阿里巴巴云原生

阿里云 RocketMQ 云原生

谈 C++17 里的 Observer 模式 - 4 - 信号槽模式

hedzr

c++ 算法 设计模式 Design Patterns c++17

矿山中的鸿蒙花开

脑极体

Go 语言嵌入和多态机制对比

程序员历小冰

后端 引航计划

Tapdata 实时数据中台在智慧教育中的实践

tapdata

直播预告|如何节省30%人工成本,缩短80%商标办理周期?

京东科技开发者

商标 企业服务 灵活用工

【初恋系列】那年的雨还在下...

人工智能~~~

漏洞挖掘:一次反序列化漏洞学习

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

🔥[深圳/北京/社招] 字节跳动-中台测试部门-移动端专项测试或测开,急招极速面试

管理员账号

招聘 社招

人类高质量家庭成员:会自己赚钱的成熟卡车香吗?

脑极体

字节跳动灵魂拷问算法,三轮面试结局我哭了,但下次还敢

android 程序员 移动开发

Go 语言网络库 getty 的那些事

apache/dubbo-go

dubbo Go 语言 Dubbo3

云栖大会抢先看,提前探秘云栖数字谷

阿里巴巴云原生

阿里巴巴 云原生 云栖大会

国庆高质量出行,可视化开启智慧旅游

ThingJS数字孪生引擎

大前端 物联网 可视化 旅游 数字孪生

两位资深运维谈人生:开发和运维之间要形成你退我进的节奏_DevOps & 平台工程_邵海杨_InfoQ精选文章