专访又拍云邵海杨:自动化运维之路如何走

原创
运维 系统运维 系统 自动化
在Velocity大会中,我们采访了又拍云的运维总监邵海杨,邵海杨老师从类车载系统、监控角度和互联网方面跟我们探讨了自动化运维的详细情况,并且还给我们自动化运维的新人提出了一些宝贵的建议……

[[118312]]

在计算机应用的发展历史中,运维工作一直是必不可少的重要环节。无论在什么年代、什么场景,保证服务的正常可持续运行都是运维的最终目标。随着规模增长,依赖手工管理自然已无力应对。许多互联网公司的服务器早已跨入几百甚至千台规模,脚本化、批量化管理占据非常大的比例,在这个阶段,自动化运维便显得尤为重要。

在Velocity大会中,我们采访了又拍云的运维总监邵海杨,邵海杨老师从类车载系统、监控角度和互联网方面跟我们探讨了自动化运维的详细情况,并且还给我们自动化运维的新人提出了一些宝贵的建议。

[[118313]]

邵海杨,又拍云(UPYun)运维总监,网名"海洋之心",新浪微博"@海洋之心-悟空",HZLUG组织者/HZGDG核心成员,资深系统运维/架构师,精通系统及网络管理,定制嵌入式系统,安全防御及CDN加速,互联网高性能网络及架构设计、NoSQL先行者、分布式文件系统、虚拟化及OpenStack云平台的研究等新技术,致力于开源软件及前沿科技的研究和探索。

以下是详细的采访内容:


51CTO:邵老师您好!在您看来一个合格的运维工程师是怎么定义?

邵海杨:运维这一块应该说最近这几年才火起来的。我2002年毕业以后在一个数据中心做,我们那时候一个月能接到的服务器差不多也就二三十台,也没有达到很大很专业的运维级别,做得更多的是系统管理和网络管理。我认为做一个合格的运维工程师首先要把系统部分,我们所说的Linux要玩得很精通;那其次是网络部分,像CCMA这种级别的话肯定是要有的,像我们公司,差不多也是跟阿里巴巴一起成长的,2008年的时候互联网迅速地扩张,手头的机器也上升到成百上千台,这个时候运维的重要性会越来越体现出来。

总的来说,基础还是建立在对系统的精通和对网络的把握,之后再去做一些自动化故障排除和其他一些特定的工作。

51CTO:一个好的团队应该具备一些怎么样的要素才能够让这个团队往更加好的方向发展呢?

邵海杨:我以前的座右铭是“无功就是过,平庸就是错”,我很讲究个人技能的修养修炼。可能这跟我那个时代也有关系,因为我们那个时代(08年之前)比较讲究复合型人才,你一个人这个也能干,那个也能干,说明这个人也还挺好。但是从08年到这段时间来看,近十年互联网的发展来看,其实分工会越来越细,然后对每一个领域的技能要求都会越来越高。当你管理的机器多了以后,就算是装系统这么简单的事情也完全是一个含量很高的东西。它需要专门的人来完成。这是从量变到质变的过程。

我现在改变了看法,我觉得个人的沟通能力远比技术更加重要,情商要更高一点。像我们团队里面的人都是喜欢交流的。如果你能够跟别人很好地沟通、合作、协调的话,就你创造出来的价值也好、威力也好,肯定是一加一大于二的。相反如果每个人都各自为政加上沟通成本的开销,你的威力会有损耗。

我还想说一点,个人能力的修养跟你团队合作是不冲突的,你个人能力的修养不断地提高,你认识人的层次就会不断地提高。比如说你的情商比较低的话,你认知的人也可能情商比较低,你找他们去做团队合作的时候,你成功的概率就会小。平时可以利用一些时间提升自己的能力,多去接触一些跟你志同道合的,或者旗鼓相当,甚至比你高一点点的人。然后你再跟人家去做沟通协调,这样效果会好一些。

51CTO:能谈一下您在自动化运维领域上的一些经验或者说是遇到的一些问题,自己总结的一些心得么?

邵海杨:我走自动化运维这条道路稍微有点怪,2010年之前,我都是在一家嵌入式公司里做嵌入式的,比如说车载系统嵌入式系统,首先它是把小系统要做得很小,烧到部件里面去,打包出去以后,这个系统是你无法控制的。比如说我们做一个车载系统,装到汽车上去,车载系统如果固件要升级理论上你是不能远程连接上去的,因为你卖给客户了。所以我们在嵌入式里面会做很多东西,比如说系统会定制,然后升级的程序我们也会定制,就相当于有一个哨兵一样的,是长期驻留在那个车载系统里面的。当它监测到有自动更新的话,它会把固件下载下来做一些自动升级,而且是把整个固件重新刷一遍,这个就比较牛一些。所以我在又拍云公司里面也是推行这套东西的。所有的服务器现在都是用那种小系统来做,然后小系统有自我升级的能力,我们的服务器还有那种远程连接的能力这样我们可以在上面做更多的事情,比车载还要更加灵活一点。

像现在的互联网,我感觉这套思路用上去以后,压力会小很多。因为以前我们是要让我们无法控制的终端都具有自我修复的能力,而现在就相当于我那个机器是我们自有的服务器,我可以让它像车载系统一样升级,而且我也可以远程去控制它,所以工作要轻松很多。但是前提还是你要对系统了解,这样我们才可以做很多个性化或者很炫的东西。

51CTO:从监控的角度来看,自动化运维是怎么配合这个工作的?

邵海杨:监控非常重要,这一点是毋庸置疑的。监控为什么非常重要,我现在也在想这个问题,早期我们做运维也好,做系统管理也好,所谓的监控其实我可能一条命令或者一屏就看完了,但是当你发现要管理成百甚至上万台机器的时候,如果没有一个很好的监控汇报系统,你现在的显示器根本不够大。像我们现在的服务器有将近千台,理论上所有的配置文件要更新一遍,差不多都要十多分钟。你说一天能有几个,天天盯着那个看。

随着你的机器数量的增加,你脑子里面必须有一个量变到质变的过程,需要用一些辅助工具来帮助你做一些监控。从我的经验来说分三部分:

第一部分就是第三方监控,就好比我们人一样,首先你这个人不会无缘无故生病,你肯定有个先兆,比如说我今天吃了辣的东西然后明天就上火。第三方监控,比如说像cacti、nagios这样,它可以帮你做连续的健康检测。比如说这个系统出问题以后,我会发现它内存暴涨,我就知道原来是内存的原因导致它连续的监控。

还有一种监控我们称之为第一人称监控,就是事件驱动的第一人称监控。服务器本身在运行的时候是知道自己发生了哪些事情,举个例子,攻击,当攻击发生的时候,服务器是最先知道我网卡上面的流量爆增了,但是第三方监控的时候是很痛苦的。因为攻击会把你这条路堵住,你的流量你的监控数据有可能传送不出来。因为像ddos攻击可以在几秒钟或者几分钟里面就把你打爆掉。这个时候第一人称监控的话就可以做一些实时性要求更高的动作。比如说我监控到我的网卡流量爆涨以后它可能在临死之前通过一条短信也好,或者通过一条监控脚本也好,把这个节点从DMMS上面摘掉。

第三个日志监控,日志监控也很重要。过去式所有发生的行为它都会在日志里面。日志我们会收集起来汇总,会做大数据分析,你可以找出客户的哪个链接是最热的,我们会把最热的链接放到SSD里面固态硬盘里面去,这种也可以做性能监控。我们会抽取一万条记录,然后看这一万条记录里面的平均响应是多少,这个也是属于性能监控。

前面两个你可以化被动为主动,因为以前我要看一屏监控数据,现在等我的手机短信响就可以了,这样我人可以在外面跑,只要我收到短信就表示出问题了。第三个日志分析,我们会建数据模型,你是有准备的,而且是有想法的那种去看数据。这样就不会太累,因为我知道我想要什么东西。

51CTO:《运维自动化的私人定制》您做这个议题的目的是什么?

邵海杨:我觉得做运维没那么苦,也没有那么累,我们要聪明地做事情,方法得当的话,像我现在这样随便喝喝茶聊聊天,然后千台机器还在那边很稳定的。有句话说计算机永远没错,它犯错也是逻辑不对。理论上你把你的业务模型整理好,然后验算过,机器是会非常听话的做事情,不用吃饭,只要给电就可以,日复一日,年复一年,我们几台都机器都跑了五六年,上去一看都很吓人,还能好好的。

51CTO:对于一些刚刚步入自动化运维领域的新人的话,您对他们有一些什么样的建议?

邵海杨:这个建议有点多,就列举几个吧:

第一个脚本编程必须要掌握,前面提到你让你的机器有智能化的东西就是要辅助脚本。

第二个对网络对系统的精通,因为只有你对底层的东西非常了解你才能像庖丁解牛一样去做这个事情。才能融会贯通举一反三去做这个事情。

第三个运维现在有面对来自云的挑战,据我所知有一些初级运维什么之类的已经被阿里云或者其他的云托管商给取代掉了,所以说运维如果要跟自己的竞争力还需要掌握一些编程的技巧。比如说像node.js、python我觉得可以帮助以后自己,无论是转型也好,还是提升个人竞争力也好都非常有帮助。

第四个我觉得还是要锻炼口才。多跟外面的人去沟通去交流。因为有些问题你没有遇到,但是其他人已经遇到了。所以你可以跟他多去交流一下,你就可以获取到别人的一些解决办法。这也是我们参加大会的目的,互相切磋一下。沟通能力真的很重要,当你有一个好的主意,或者有一个问题死活讲不明白的时候你知道有多痛苦吗?

51CTO:最后一个问题,WOT峰会的时候您那一场的人超级多,真的是爆满,那么自动化运维这么火爆的原因是什么?

邵海杨:自动化运维就是互联网基因,包括现在互联网金融带来的冲击,以前我们在参加大会的时候,这种互联网的大会,银行证券公司其实很少来听的,但自从阿里推了个余额宝以后还有天弘基金以后,证券公司和银行也过来听了,这是一个很好的苗头。运维一直有,但为什么现在自动化运维这么火就是因为互联网上面承载的量,包括网民的网速也越来越好,上网条件也越来越好,互联网呈现一个爆炸式的增长。我们的机器一下从以前的几十台到几百台机器,这个时候你要再不用自动化就束手无策了,靠人根本不行。自动化也是最近这几年才被这样追捧到很高的一个地位,现在运维自动化基本上可以跟架构师甚至跟前沿的技术,程序员什么之类的比拟。看所有的大会里面都会安排一场自动化运维。

第二我想说自动化里面,你要达到自动化其实还有编程的思想在里面。包括我在WOT,包括我在今天的演讲我也会提到,运维要像程序员一样的思考,像我们运维的人员一样,其实都是有编程功底的。不仅仅只是玩玩操作系统,玩玩网络的人。因为你要搞到自动化要把它变成智能的话你肯定要写程序然后机器去做模式识别也好,做相应的行动处理也好。你会发现运维自动化本身就是一个综合性的东西,就是我们现在说的DevOps,你要懂开发,要懂编程,要懂系统、懂网络,然后要会去跟开发人员做沟通、协调。运维自动化本身就是两方面,运维是一方面,自动化是一方面,离开了编程你很难自动化。

好的,非常感谢邵海杨老师的分享!此次专访就到这里。在自动化运维方面,如果您有更多需要解答的问题,欢迎留言讨论。

责任编辑:牛小雨 来源: 51CTO
相关推荐

2023-03-31 10:02:08

Linux运维DevOps

2013-08-27 11:07:28

自动化运维运维架构师小米

2014-07-26 15:11:20

WOT2014自动化运维

2018-06-23 07:31:05

2012-10-22 14:54:48

2018-05-02 11:16:27

数据中心

2013-06-19 14:50:14

云计算

2014-08-04 10:10:35

IT运维自动化运维

2024-06-11 10:41:14

2015-06-24 10:42:19

云计算运维自动化运维ANSIBLE

2017-10-13 13:14:35

互联网

2015-05-14 13:29:42

云计算弹性自动化运维

2015-07-07 08:54:27

云计算自动化运维

2016-09-23 09:22:12

2018-07-26 13:50:37

IT架构运维

2013-04-16 14:55:21

自动化运维Puppet实战

2014-09-22 11:24:18

运维

2016-06-17 09:49:42

2015-10-08 10:55:23

云服务自动化运维 ANSIBLE

2012-11-20 17:22:57

点赞
收藏

51CTO技术栈公众号