




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
运维工程师的职责和前景 运维中关键技术点解剖:1 大量高并发网站的设计方案 ;2 高可靠、高可伸缩性网络架构 设计;3 网站安全问题,如何避免被黑?4 南北互联问题,动态 CDN 解决方案;5 海量数 据存储架构 一、什么是大型网站运维? 首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的; 然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如 网站规范、知名度、服务器 量级、pv 量等考虑,其它因素不是重点;因此,我们先定义 服务器规模大于 1000 台,pv 每天至少上亿(至少国内排名前 10) ,如 sina、baidu、 QQ,51.com 等等;其它小型网站可能没有真正意义上的运维工程师,这与网站规范不够 和成本因素有关,更多的是集合网络、系统 、开发工作于一身的“复合性人才” ,就如有 些公司把一些合同采购都纳入了运维职责范围,还有如 IDC 网络规划也纳入运维职责。所 以,非常重要一定需要明白:运维对其它关联工种必须非常了解熟悉:网络、系统、系统 开发、存储,安全,DB 等;我在这里所讲的运维工程师就是指专职运维工程师。 我们再来说说一般产品的“出生”流程: 1、首先公司管理层给出指导思想,PM 定位市场需求(或 copy 成熟应用)进行调研、分 析、最终给出详细设计。 2、架构师根据产品设计的需求,如 pv 大小预估、服务器规模、应用架构等因素完成网络 规划,架构设计等(基本上对网络变动不大,除非大项目) 3、开发工程师将设计 code 实现出来、测试工程师对应用进行测试。 4、好,到运维工程师出马了,首先明确一点不是说前三步就与运维工作无关了,恰恰相反, 前三步与运维关系很大:应用的前期架构设计、软/硬件资源评估申请采购、应用设计性能 隐患及评估、IDC、服务性能安全调优、服务器系统级优化(与特定应用有关)等都需运 维全程参与,并主导整个应用上线项目;运维工程师负责产品服务器上架准备工作,服务 器系统安装、网络、IP、通用工具集安装。运维工程师还需要对上线的应用系统架构是否 合理、是否具备可扩展性、及安全隐患等因素负责,并负责最后将产品(程序) 、网络、系 统三者进行拼接并最优化的组合在一起,最终完成产品上线提供用户使用,并周而复使: 需求-开发(升级)-测试-上线(性能、安全问题等之前预估外的问题随之慢慢就全出 来了)在这里提一点:网站开发模式与传统软件开发完全不一样,网站一天开发上线 15 个升级版本是家常便饭,用户体验为王嘛,如果某个线上问题像 M$ 需要 1 年解决,用户 早跑光了;应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作、服 务监控、应用状态统计、日常服务状态巡检、突发故障处理、服务日常变更调整、集群管 理、服务性能评估优化、数据库管理优化、随着应用 PV 增减进行应用架构的伸缩、安全、 运维开发工作: a 、尽量将日常机械性手工工作通过工具实现(如服务监控、应用状态统计、服务上线等 等) ,提高效率。 b、解决现实中服务存在的问题,如高可靠性、可扩展性问题等。 c、大规模集群管理工具的开发,如 1 万台机器如何在 1 分钟内完成密码修改、或运行指定 任务?2000 台服务器如何快速安装操作系统?各分布式 IDC、存储集群中数 PT 级的数据 如何快速的存储、共享、分析?等一系列挑战都需运维工程师的努力。 在此说明一下其它配合工种情况,在整个项目中,前端应用对于网络/系统工程师来说是黑 匣子,同时开发工程师职责只是负责完成应用的功能性开发,并对应用本身性能、安全性 等应用本身负责,它不负责或关心网络/系统架构方面事宜,当然软/ 硬件采购人员等事业 部其它同事也不会关心这些问题,各司其职,但项目的核心是运维工程师!所有其它部门 的桥梁。 上面说了很多,我想大家应该对运维有一些概念了,在此打个比方吧,如果我们是一辆高 速行驶在高速公路上的汽车,那运维工程师就是司机兼维修工,这个司机不简单,有时需 要在高速行驶过程中换轮胎、并根据道路情况换档位、当汽车速度越来越快,汽车本身不 能满足高速度时对汽车性能调优或零件升级、高速行进中解决汽车故障及性能问题、时刻 关注前方安全问题,并先知先觉的采取规避手段。这就是运维工作! 最后说一下运维工程师的职责:”确保线上稳定“,看似简单,但实属不容易,运维工程 师必须在诸多不利因素中进行权衡:新产品模式对现有架构及技术的冲击、产品高频度的 升级带来的线上 BUG 隐患、运维自动化管理承度不高导致的人为失误、IT 行业追求的高 效率导致流程执行上的缺失、用户增涨带来的性能及架构上的压力、IT 行业宽松的技术管 理文化、创新风险、互联网安全性问题等因素,都会是网站稳定的大敌,运维工程师必须 把控好这最后一关,需具体高度的责任感、原则性及协调能力,如果能做到各因素的最佳 平衡,那就是一名优秀的运维工程师了。 另外在此聊点题外话,我在这里看到有很多人要 sina、QQ 、baidu,51.com 等聊自已的运维 方面的经验,其实这对于它们有点免为其难: a、各公司自已网络架构、规模、或多或少还算是公司的核心秘密,要保密,另外,对于大 家所熟知的通用软件、架构,由于很多公司会根据自已实际业务需要,同时因为原版性能、 安全性、已知 bug、功能等原因,进行过二次开发(如 apache,php,mysql ) ,操作系统内核 也会根据不同业务类型进行定制的,如某些应用属于运算型、某些是高 IO 型、或大存储 大内存型。根据这些特点进行内核优化定制,如 sina 就在 memcache 上进行过二次开发, 搞出了一个 MemcacheDB,具体做得如何我们不谈,但开源了,是值得称赞的,国内公司 对于开源基本上是索取,没有贡献;另外,服务器也不是大家所熟知的型号,根据业务特 点,大部份都是找 DELL/HP/ibm 进行过定制;另外,在分布式储存方面都有自已解决方案, 要不就是使用现成开源 hadoop 等解决方案,或自已开发。但 90%都是借鉴 google GFS 的 思想:分布式存储、计算、大表。 b、各公司业务方向不一样,会导致运维模式或方法都不一样,如 51.com 和 baidu 运维肯 定区别很大,因为他们业务模式决定了其架构、服务器量级、 IDC 分布、网络结构、通用 技术都会不一样,主打新闻门户的 sina 与主打 sns 的 51.com 运维模式差异就非常大,甚至 职责都不大一样;但有一点,通用技术及大致架构上都大同小异,大家不要太神化,更多 的公司只是玩垒积木的游戏罢了,没什么技术含量。 c、如上面所讲,目前大型网站运维还处于幼年时期理念和经验都比较零散,没有成熟的知 识体系,可能具体什么是运维,大家都要先思索一番,或压根没想过,真正讨论也只是运 维工作的冰山一角,局限于具体技术细节,或某某著名网站大的框架,真正运维体系化东 西没有,这也许是目前网上运维相关资料 比较少的原故吧。或者也是国内运维人员比较难 招,比较牛的运维工程师比较少见的原因之一吧。 二、运维工作师需要什么样的技能及素质 做为一名运维工程师需要什么样的技能及素质呢,首先说说技能吧,如大家上面所看到, 运维是一个集多 IT 工种技能与一身的岗位,对系统-网络 -存储-协议-需求-开发-测 试-安全等各环节都需要了解一些,但对于某些环节需熟悉甚至精通,如系统 (基本操作 系统的熟悉使用,*nix,windows )、协议、系统开发( 日常很重要的工作是自动运维化相关开 发、大规模集群工具开发、管理) 、通用应用(如 lvs、ha、web server 、db、中间件、存 储等) 、网络,IDC 拓朴架构; 技能方面总结以下几点: 1、开发能力,这点非常重要,因为运维工具都需要自已开发,开发语言:c/c+(必备其 中之一) 、perl 、 python、php(其中之一) 、shell (awk,sed,expect .等) ,需要有过实际开 发经验,否则工作会非常痛苦。 2、通用应用方面需要了解:操作系统(目前国内主要是 linux、bsd) 、webserver 相关 (nginx,apahe,php,lighttpd,java。 。 。)、数据库(mysql,oralce)、其它杂七八拉的东东。 。 。系统优 化,高可靠性。 。 。这些只是加分项,不需必备,可以边工作边慢慢学,这些东西都不难。 当然在运维中,有些是有分工偏重点不一样。 3、系统、网络、安全,存储,CDN,DB 等需要相当了解,知道其相关原理。 个人素质方面: 1、沟通能力、团队协作:运维工作跨部门、跨工种工作很多,需善于沟通、并且团队协作 能力要强;这应该是现代企业的基本素质要求了,不多说。 2、工作中需胆大心细:胆大才能创新、不走寻常路,特别对于运维这种新的工种,更需创 新才能促进发展;心细,运维工程师是网站 admin,最高线上权限者,一不小心就会遗憾终 生或打入十八层地狱。 3、主动性、执行力、精力旺盛、抗压能力强:由于 IT 行业的特性,变化快;往往计划赶 不上变化,运维工作就更突出了,比如国内各大公司服务器往往是全国各地,哪里便宜性 价比高,就那往搬,进行大规模服务迁移(牵扯的服务器成百上千台) ,这是一个非常头痛 的问题;往往时间 非常紧迫,如限 1 周内完成,这种情况下,运维工程师的主动性及执行 力就有很高的要求了:计划、方案、服务无缝迁移、机器搬迁上架、环境准备、安全评估、 性能评估、基建、各关联部门扯皮,7X24 小紧急事故响应等。 4、其它就是一些基本素质了:头脑要灵光、逻辑思维能力强、为人谦虚稳重、亲和力、乐 于助人、有大局观。 5、最后一点,做网站运维需要有探索创新精神,通过创新型思维解决现实中的问题,因为 这是一个处于幼年的职业(国外也一样,但比国内起步早点) ,没有成熟体系或方法论可以 借鉴,只能靠大家自已摸索努力。 三、怎样才算是一个合格的运维工程师 1、保证服务达到要求的线上标准,如 99.9%;保证线上稳定,这是运维工程师的基本责职 所在。 2、不断的提升应用的可靠性与健壮性、性能优化、安全提升;这方面非常考验主动性和创 新思维。 3、网站各层面监控、统计的覆盖度,软件、硬件、运行状态,能监控的都需要监控统计, 避免监控死角、并能实时了解应用的运转情况。 4、通过创新思维解决运维效率问题;目前各公司大部份运维主要工作还是依赖人工操作干 预,需要尽可能的解放双手。 5、运维知识的积累与沉淀、文档的完备性,运维是一个经验性非常强的岗位,好的经验与 陷阱都需积累下来,避免重复性范错。 6、计划性和执行力;工作有计划,计划后想法设法达到目标,不找借口。 7、自动化运维;能对日常机械化工作进行提炼、设计并开发成工具、系统,能让系统自动 完成的尽量依靠系统;让大家更多的时间用于思考、创新思维、做自已喜欢的事情。 以上只是技术上的一些层面,当然个人意识也是很重要的。 四、运维职业的迷惘、现状与发展前景 运维岗位不像其它岗位,如研发工程师、测试工程师等,有非常明确的职责定位及职业规 划,比较有职业认同感与成就感;而运维工作可能给人的感觉是哪方面都了解一些,但又 都比上专职工程师更精通、感觉平时被关注度比较低(除非线上出现故障) ,慢慢的大家就 会迷惘,对职业发展产生困惑,为什么会有这种现象呢?除了职业本身特点外,主要还是因 为对运维了解不深入、做得不深入导致;其实这个问题其它岗位也会出现,但我发现运维 更典型,更容易出现这个问题; 针对这个问题我谈一下网站运维的现状及发展前景(也在思考中,可能不太深入全面,也 请大家斧正补充) 运维现状: 1、处于刚起步的初级阶段,各大公司有此专职,但重视或重要程度不高,可替代性强;小 公司更多是由其它岗位来兼顾做这一块工作,没有专职,也不可能做得深入。 2、技术层次比较低;主要处于技术探索、积累阶段,没有型成体系化的理念、技术。 3、体力劳动偏大;这个问题主要与第二点有关系,很多事情还是依靠人力进行,没有完成 好的提练,对于大规模集群没有成熟的自动化管理方法,在此说明一下,大规模集群与运 维工作是息息相关的如果只是百十来台机器,那就没有运维太大的生存空间了。 4、优秀运维人才的极度缺乏;目前各大公司基本上都靠自已培养,这个现状导致行业内运 维人才的流动性非常低,非常多好的技术都局限在各大公司内部,如 google 50 万台机器 科学的管理,或者国内互联公司 top 10 的一些运维经验,这些经验是非常有价值的东西并决 定了一个公司的核心竞争力;这些问题进而导致业内先进运维技术的流通、贯通、与借签, 并最终将限制了运维发展。 5、很多优秀的运维经验都掌握在大公司手中;这不在于公司的技术实力,而在于大公司的 技术规模、海量 PV、硬件规模足够大,如 baidu 可怕的流量、 51.com 海量数据这些 因素决定了他们遇到的问题都是其它中/小公司还没有遇到的,或即将遇到。但大公司可能 已有很好的解决方案或系统。 发展前景: 1、从行业角度来看,随着中国互联网的高速发展(目前中国网民已跃升为全球第一) 、网 站规模越来越来大、架构越来越复杂;对专职网站运维工程师、网站架构师的要求会越来 越急迫,特别是对有经验的优秀运维人才需求量大,而且是越老越值钱;目前国内基本上都 是选择毕业生培养(限于大公司) ,培养成本高,而且没有经验人才加入会导致公司技术更 新缓慢、影响公司的技术发展;当然,毕业生也有好处:白纸一张,可塑性强,比较认同 并容易融入企业文化。 2、从个人角度,运维工程师技术含量及要求会越来越高,同时也是对公司应用、架构最了 解最熟悉的人、越来越得到重视。 3、网站运维将成为一个融合多学科(网络、系统、开发、安全、应用架构、存储等)的综 合性技术岗位,给大家提供一个很好的个人能力与技术广度的发展空间。 4、运维工作的相关经验将会变得非常重要,而且也将成为个人的核心竞争力,具备很好的 各层面问题的解决能力及方案提供、全局思考能力等。 5、特长发挥和兴趣的培养;由于运维岗位所接触的知识面非常广阔,更容易培养或发挥出 个人某些方面的特长或爱好,如内核、网络、开发、数据库等方面,可以做得非常深入精 通、成为这方面的专家。 6、如果真要以后不想做运维了,转到其它岗位也比较容易,不会有太大的局限性。当然了, 你得真正用心去做。 7、技术发展方向:网站/系统架构师。 五、运维关键技术点解剖 1、 大规模集群管理问题 首先我们先要明确集群的概念,集群不是泛指各功能服务器的总合,而是指为了达到某一 目的或功能的服务器、硬盘 资源的整合(机器数大于两台) ,对于应用来说它就是一个整 体,目前常规集群可分为:高可用性集群(HA) ,负载均衡集群(如 lvs) ,分布式储、计 算存储集群(DFS,如 google gfs ,yahoo hadoop) ,特定应用集群(某一特定功能服务器组 合、如 db、cache 层等) ,目前互联网行业主要基于这四种类型;对于前两种类似,如果业 务简单、应用上 post 操作比较少,可以简单的采用四层交换机 解决(如 f5) ,达到服务高 可用/负责均衡的作用,对于资源紧张的公司也有一些开源解决办法如 lvs+ha,非常灵活;对 于后两种,那就考验公司技术实力及应用特点了,第三种 DFS 主要应用于海量数据应用上, 如邮件、搜索等应用,特别是搜索要求就更高了,除了简单海量存储,还包括数据挖掘、 用户行为分析;如 google、yahoo 就能保存分析近一年的用户记录数据,而 baidu 应该少 于 30 天、soguo 就更少了。 。 。这些对于搜索准备性、及用户体验是至关重要的。 接下来,我们再谈谈如何科学的管理集群,有以下关键几点: I、监控 主要包括故障监控和性能、流量、负载等状态监控,这些监控关系到集群的健康运行,及 潜在问题的及时发现与干预; a、服务故障、状态监控:主要是对服务器自身、上层应用、关联服务数据交互监控;例如 针对前端 web server,我们就可以有很多种类型的监控,包括应用端口 状态监控,便于及 时发现服务器或应用本身是否 crash、通过 icmp 包探测服务器健康状态,更上层可能还包 括应用各频道业务的监控,常用方法是采用面业特征码进行判断,或对重点页面进行签名, 以网站被黑篡改(报警、并自动恢复被篡改数据)等等,这些只是一部份,还有 N 多监控 方式,依应用特点而定,还有一些问题需解决,如集群过大,如何高性能的进行监控也是 一个现实问题。 b、其它就是集群状态类的监控或统计,为我们合理管理调优集群提供数据参考、包括服务 瓶颈、性能问题、异常流量、攻击等问题。 II、故障管理 a、硬件故障问题;对于成百上千或上万机器的 N 多集群,服务器死机、硬件故障概率是 非常大的,几乎每时每刻都有服务硬件问题,死机、硬盘损坏、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省2025-2026学年高三上学期开学联合考试化学试卷
- 施工方案编辑软件(3篇)
- 冬日头条活动策划方案(3篇)
- 写化学名称题目及答案
- 小学最难24点题目及答案
- 一个人在家作文400字(12篇)
- 文学经典传承:古诗文教学方案
- 市场渠道合作合同规范
- 《新编商务应用文写作》教学参考汇 李奕轩 模块1-9 商务应用文写作基础-大学生实文书
- 体会中考的作文600字7篇
- 2025年芜湖市鸠江区医院招聘16名工作人员笔试参考题库附答案解析
- T-CBDA 86-2025 建筑幕墙、采光顶及金属屋面工程质量验收标准
- 厨房消防安全培训
- 小陈 税务风险应对常见指标与答复思路
- 2025年《中华人民共和国档案法》知识培训试题及答案
- 2026年高考政治一轮复习:必修2《经济与社会》知识点背诵提纲
- 2025至2030年中国建筑膜行业市场调查研究及发展趋势预测报告
- 2025年急诊急救试题(附答案)
- 2025年北京市中考语文试卷(含答案与解析)
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 《海上风电场工程测量规程》(NB-T 10104-2018)
评论
0/150
提交评论