《新浪网资深运维工程师总结的linux运维笔记 》由会员分享,可在线阅读,更多相关《新浪网资深运维工程师总结的linux运维笔记 (7页珍藏版)》请在金锄头文库上搜索。
1、运 维 工 程 师 的 职 责 和 前 景一、什么是网站运维?首先明确一下,全文所讲的”运维“是指:网站运维,与其它运维的区别还是蛮大的;然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范、知名度、服务器量级、pv 量等考虑,其它因素不是重点;因此,我们先定义服务器规模大于 1000 台,pv 每天至少上亿(至少国内排名前 10),如sina、baidu、QQ, 等等;其它小型网站可能没有真正意义上的运维工程师,这与网站规范不够和成本因素有关,更多的是集合网络、系统、开发工作于一身的“复合性人才”,就如有些公司把一些合同采购都纳入了运维职责范围,还有如 ID
2、C 网络规划也纳入运维职责。所以,非常重要一定需要明白:运维对其它关联工种必须非常了解熟悉:网络、系统、系统开发、存储,安全,DB 等;我在这里所讲的运维工程师就是指专职运维工程师。我们再来说说一般产品的“出生”流程:1、首先公司管理层给出指导思想,PM 定位市场需求(或 copy 成熟应用)进行调研、分析、最终给出详细设计。2、架构师根据产品设计的需求,如 pv 大小预估、服务器规模、应用架构等因素完成网络规划,架构设计等(基本上对网络变动不大,除非大项目)3、开发工程师将设计 code 实现出来、测试工程师对应用进行测试。4、好,到运维工程师出马了,首先明确一点不是说前三步就与运维工作无关
3、了,恰恰相反,前三步与运维关系很大:应用的前期架构设计、软/硬件资源评估申请采购、应用设计性能隐患及评估、IDC、服务性能安全调优、服务器系统级优化(与特定应用有关)等都需运维全程参与,并主导整个应用上线项目;运维工程师负责产品服务器上架准备工作,服务器系统安装、网络、IP、通用工具集安装。运维工程师还需要对上线的应用系统架构是否合理、是否具备可扩展性、及安全隐患等因素负责,并负责最后将产品(程序)、网络、系统三者进行拼接并最优化的组合在一起,最终完成产品上线提供用户使用,并周而复使:需求-开发(升级)-测试-上线(性能、安全问题等之前预估外的问题随之慢慢就全出来了)在这里提一点:网站开发模式
4、与传统软件开发完全不一样,网站一天开发上线 15 个升级版本是家常便饭,用户体验为王嘛,如果某个线上问题像 M$需要 1 年解决,用户早跑光了;应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作、服务监控、应用状态统计、日常服务状态巡检、突发故障处理、服务日常变更调整、集群管理、服务性能评估优化、数据库管理优化、随着应用 PV增减进行应用架构的伸缩、安全、运维开发工作:a 、尽量将日常机械性手工工作通过工具实现(如服务监控、应用状态统计、服务上线等等),提高效率。b、解决现实中服务存在的问题,如高可靠性、可扩展性问题等。c、大规模集群管理工具的开发,如 1 万台机器如何在 1 分
5、钟内完成密码修改、或运行指定任务?2000 台服务器如何快速安装操作系统?各分布式 IDC、存储集群中数 PT 级的数据如何快速的存储、共享、分析?等一系列挑战都需运维工程师的努力。在此说明一下其它配合工种情况,在整个项目中,前端应用对于网络/系统工程师来说是黑匣子,同时开发工程师职责只是负责完成应用的功能性开发,并对应用本身性能、安全性等应用本身负责,它不负责或关心网络/系统架构方面事宜,当然软/硬件采购人员等事业部其它同事也不会关心这些问题,各司其职,但项目的核心是运维工程师!所有其它部门的桥梁。上面说了很多,我想大家应该对运维有一些概念了,在此打个比方吧,如果我们是一辆高速行驶在高速公路
6、上的汽车,那运维工程师就是司机兼维修工,这个司机不简单,有时需要在高速行驶过程中换轮胎、并根据道路情况换档位、当汽车速度越来越快,汽车本身不能满足高速度时对汽车性能调优或零件升级、高速行进中解决汽车故障及性能问题、时刻关注前方安全问题,并先知先觉的采取规避手段。这就是运维工作!最后说一下运维工程师的职责:”确保线上稳定“,看似简单,但实属不容易,运维工程师必须在诸多不利因素中进行权衡:新产品模式对现有架构及技术的冲击、产品高频度的升级带来的线上 BUG 隐患、运维自动化管理承度不高导致的人为失误、IT 行业追求的高效率导致流程执行上的缺失、用户增涨带来的性能及架构上的压力、IT 行业宽松的技术
7、管理文化、创新风险、互联网安全性问题等因素,都会是网站稳定的大敌,运维工程师必须把控好这最后一关,需具体高度的责任感、原则性及协调能力,如果能做到各因素的最佳平衡,那就是一名优秀的运维工程师了。二、运维工作师需要什么样的技能及素质做为一名运维工程师需要什么样的技能及素质呢,首先说说技能吧,如大家上面所看到,运维是一个集多 IT 工种技能与一身的岗位,对系统 -网络-存储- 协议- 需求-开发- 测试-安全等各环节都需要了解一些,但对于某些环节需熟悉甚至精通,如系统(基本操作系统的熟悉使用,*nix,windows.)、协议、系统开发(日常很重要的工作是自动运维化相关开发、大规模集群工具开发、管
8、理)、通用应用(如 lvs、ha、web server、db、中间件、存储等)、网络,IDC 拓朴架构;技能方面总结以下几点:1、通用应用方面需要熟悉:操作系统(目前国内主要是 linux)、数据库(mysql,oralce)。2、开发能力,这点非常重要,开发语言:perl、python、php (其中之一)、shell( awk,sed,expect.等) . 所以有开发底子对学运维是个优势。3、系统、网络、安全,存储,CDN,DB 等需要相当了解,知道其相关原理。个人素质方面:1、沟通能力、团队协作:运维工作跨部门、跨工种工作很多,需善于沟通、并且团队协作能力要强;这应该是现代企业的基本素
9、质要求了,不多说。2、工作中需胆大心细:胆大才能创新、不走寻常路,特别对于运维这种新的工种,更需创新才能促进发展;心细,运维工程师是网站 admin,最高线上权限者,一不小心就会遗憾终生或打入十八层地狱。3、主动性、执行力、精力旺盛、抗压能力强:由于 IT 行业的特性,变化快;往往计划赶不上变化,运维工作就更突出了,比如国内各大公司服务器进行搬迁的时候,时间紧迫,如限 1 周内完成,这种情况下,运维工程师的主动性及执行力就有很高的要求了:计划、方案、服务无缝迁移、机器搬迁上架、环境准备、安全评估、性能评估、基建、各关联部门扯皮,7X24 小紧急事故响应等。4、其它就是一些基本素质了:头脑要灵光
10、、逻辑思维能力强、为人谦虚稳重、亲和力、乐于助人、有大局观。5、最后一点,做网站运维需要有探索创新精神,通过创新型思维解决现实中的问题,因为这是一个处于发展中的职业(国外起步比国内早)。三、怎样才算是一个合格的运维工程师1、保证服务达到要求的线上标准,如 99.9%;保证线上稳定,这是运维工程师的基本责职所在。2、不断的提升应用的可靠性与健壮性、性能优化、安全提升;这方面非常考验主动性和创新思维。3、网站各层面监控、统计的覆盖度,软件、硬件、运行状态,能监控的都需要监控统计,避免监控死角、并能实时了解应用的运转情况。4、通过创新思维解决运维效率问题;目前各公司大部份运维主要工作还是依赖人工操作
11、干预,需要尽可能的解放双手。5、运维知识的积累与沉淀、文档的完备性,运维是一个经验性非常强的岗位,好的经验与陷阱都需积累下来,避免重复性范错。6、计划性和执行力;工作有计划,计划后想法设法达到目标,不找借口。7、自动化运维;能对日常机械化工作进行提炼、设计并开发成工具、系统,能让系统自动完成的尽量依靠系统;让大家更多的时间用于思考、创新思维、做自已喜欢的事情。以上只是技术上的一些层面,当然个人意识也是很重要的。四、运维现状和发展前景运维现状:优秀运维人才的极度缺乏:目前各大公司基本上都靠自已培养,这个现状导致行业内运维人才的流动性非常低,非常多好的技术都局限在各大公司内部,如 google 5
12、0 万台机器科学的管理,或者国内互联公司 top 10 的一些运维经验,这些经验是非常有价值的东西并决定了一个公司的核心竞争力;所以具有丰富经验的运维工程师在公司里面相当抵钱,这是一个越老越值钱的职业!发展前景:1、从行业角度来看,随着中国互联网的高速发展(目前中国网民已跃升为全球第一)、网站规模越来越来大、架构越来越复杂, 对专职网站运维工程师、网站架构师的要求会越来越急迫,特别是对有经验的优秀运维人才需求量大,而且是越老越值钱。目前国内公司基本上都是选择毕业生培养,培养成本高,而且没有经验人才加入会导致公司技术更新缓慢、影响公司的技术发展;当然,毕业生也有好处:白纸一张,可塑性强,现在国内
13、一些经过在校运维培训的毕业生受到了各大公司的青睐,主要还是可以为公司省略培养成本,能更快融入和适应工作。2、从个人角度,运维工程师技术含量及要求会越来越高,同时也是对公司应用、架构最了解最熟悉的人、越来越得到重视。3、网站运维将成为一个融合多学科(网络、系统、开发、安全、应用架构、存储等)的综合性技术岗位,给大家提供一个很好的个人能力与技术广度的发展空间。4、运维工作的相关经验将会变得非常重要,而且也将成为个人的核心竞争力,具备很好的各层面问题的解决能力及方案提供、全局思考能力等。5、特长发挥和兴趣的培养;由于运维岗位所接触的知识面非常广阔,更容易培养或发挥出个人某些方面的特长或爱好,如内核、
14、网络、开发、数据库等方面,可以做得非常深入精通、成为这方面的专家。6、如果真要以后不想做运维了,转到其它岗位也比较容易,不会有太大的局限性。当然了,你得真正用心去做。7、技术发展方向:网站/系统架构师。管理发展方向:运维总监/CEO附与目前比较热的 JAVA 工程师对比:Java 工程师目前确实比较火,关键的一点在于它易学,学习难度不大,甚至 java 语言中的某些代码都可以 copy,所以导致一些学历比较低的人士也趋之若鹜,高中生,专科生更是比比皆是。目前国内比较热的培训机构北大青鸟,想必大家都听过吧,他们的 java 生源主要就是没考上大学的高中生或没读高中的初中生,加上这么多的本科院校,
15、几乎 90%的大专本科院校都开设了计算机相关专业,只要是计算机相关专业,都会开 java 程序设计的专业课,这就导致大学本科院校出来的生源计划 90%走的都是 java 方向(愿意从事 IT 行业的),这么多人才,加上外面那么多培训机构培养的人才,出去就业,稍微好一点的单位java 岗位,都会遇到千里挑一的现象,甚至出现了某个一线互联网企业的校招现场,7 个考场,90%都是 java 的井喷现状,最后很多学生都成了炮灰,现在最尴尬的现状就是二本院校的学生,他们出来就业,工资低一点的岗位都被高中生专科生抢了,工资高一点的岗位又竞争不赢 211,,985 的,最后只能勉为其难的进入一些小型企业趴着干那么几年,搞几年上不去或者跳槽不理想,基本上就告别了 IT 行业。所以给那些二本院校的学生们提个建议,如果你只是想学个技术,不想人云亦云的话的呢,还是选择一个竞争小,优势更大的方向比较好,linux 运维,C/C+等方向是目前各大公司极度缺乏的人才,java 人才真心不缺!