OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

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

  • 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:1912787

评论

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

Soul 云原生网关最佳实践

阿里巴巴中间件

阿里云 云原生 实践 云原生网关

更高效、更实用的跨端开发选择

FinFish

flutter finclip 小程序容器 跨端框架

2022年证券行业年度专题分析

易观分析

金融 证券 经济

what量化合约系统开发&源码丨clear合约量化系统开发技术(Demo案例)

I8O28578624

新思科技发布《2023年开源安全和风险分析》报告

InfoQ_434670063458

开源 新思科技 软件安全

首批!阿里云容器服务 ACK 顺利通过信通院云原生混部项目评估

阿里巴巴中间件

阿里云 容器 云原生

ChatGPT辅助编程

鲸品堂

ChatGPT 企业号 3 月 PK 榜

Tuxera NTFS2023版读写NTFS磁盘功能工具

茶色酒

Tuxera NTFS2023

2022 IoTDB Summit:阿里白渐《迈向物联网时代大数据计算平台——MaxCompute 基于IoTDB构建解决方案》

Apache IoTDB

大数据 时序数据库 IoTDB

纵存科技加入龙蜥社区,共建高性能存储软件栈

OpenAnolis小助手

开源 合作伙伴 龙蜥社区 CLA 纵存科技

数据库革新拐点已来——MatrixOne Beta Program Recap

MatrixOrigin

云原生 分布式数据库 MatrixOrigin MatrixOne

OpenKruise 开发者不容错过的带薪实习机会!马上加入 LFX Mentorship 计划

阿里巴巴中间件

阿里云 开源 云原生 OpenKruise

SkyWalking实现 Dubbo 微服务实现链路跟踪案例以及对接钉钉告警

忙着长大#

极客时间

ChatGPT潜能很大,问题也是

引迈信息

人工智能 低代码开发 应用开发 ChatGPT JNPF

重磅通知!OpenAI又放大招:官宣开放API接口-3.5版本 需求大涨,机遇与挑战并存,谁能拔得头筹?

加入高科技仿生人

人工智能 开源 openai ChatGPT

新思科技为三星SDS公司开源使用和风险管理提供自动治理解决方案

InfoQ_434670063458

开源 软件开发 新思科技 软件安全

软件测试/测试开发 | 测试平台开发-前端开发之Vue router路由设计

测试人

软件测试 测试开发 测试平台

架构训练营-模块六作业

Sam

架构实战营

BaseAdapter优化

二哈侠

ConversionService baseadapter viewholder

拆分电商系统为微服务

Geek_e5f2e5

ICLR 2023 | 网易伏羲3篇论文入选,含强化学习、自然语言处理等领域

网易伏羲

小程序容器作为软件中间件技术不可忽视的价值

FinFish

小程序容器 小程序技术 软件中间件

下一站,冠军|走进2022 OceanBase数据库大赛12强

OceanBase 数据库

数据库 oceanbase

隐私计算技术路线介绍及对比

隐语SecretFlow

隐私计算

使用 Pulumi 打造自己的多云管理平台

亚马逊云科技 (Amazon Web Services)

Amazon S3

ChatGPT 是真的银弹吗? | 社区征文

宇宙之一粟

Go 思考 后端 征文投稿 ChatGPT

软件测试/测试开发 | 一步一步学测试平台开发-Vue restful请求

测试人

软件测试 自动化测试 测试开发 测试平台

开心档之Swift 访问控制访问控制

雪奈椰子

开心档

软件测试/测试开发 | 测试平台开发-前端开发之Vue.js 框架的使用

测试人

微服务引擎 MSE 企业版全新升级

阿里巴巴中间件

阿里云 微服务 云原生

BI工具数据看板对比:瓴羊Quick BI与Smart BI

流量猫猫头

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