免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: veyron
打印 上一主题 下一主题

[原创]门户网站运维abc [复制链接]

论坛徽章:
0
21 [报告]
发表于 2008-10-08 10:59 |只看该作者
五、运维关键技术点解剖
1、 大规模集群管理问题
    首先我们先要明确集群的概念,集群不是泛指各功能服务器的总合,而是指为了达到某一目的或功能的服务器、硬盘资源的整合(机器数大于两台),对于应用来说它就是一个整体,目前常规集群可分为:高可用性集群(HA),负载均衡集群(如lvs),分布式储、计算存储集群(DFS,如google gfs ,yahoo hadoop),特定应用集群(某一特定功能服务器组合、如db、cache层等),目前互联网行业主要基于这四种类型;对于前两种类似,如果业务简单、应用上post操作比较少,可以简单的采用四层交换机解决(如f5、foundly),达到服务高可用/负责均衡的作用,对于资源紧张的公司也有一些开源解决办法如lvs+ha,非常灵活;对于后两种,那就考验公司技术实力及应用特点了,第三种DFS主要应用于海量数据应用上,如邮件、搜索等应用,特别是搜索要求就更高了,除了简单海量存储,还包括数据挖掘、用户行为分析;如google、yahoo就能保存分析近一年的用户记录数据,而baidu应该少于30天、soguo就更少了。。。这些对于搜索准备性、及用户体验是至关重要的。
     接下来,我们再谈谈如何科学的管理集群,我认为主要从以下几点入手:
I、监控
     主要包括故障监控和性能、流量、负载等状态监控,这些监控关系到集群的健康运行,及潜在问题的及时发现与干预;
     a、服务故障、状态监控:主要是对服务器自身、上层应用、关联服务数据交互监控;例如针对前端web server,我们就可以有很多种类型的监控,包括应用端口状态监控,便于及时发现服务器或应用本身是否crash、通过icmp包探测服务器健康状态,更上层可能还包括应用各频道业务的监控,常用方法是采用面业特征码进行判断,或对重点页面进行签名,以网站被黑篡改(报警、并自动恢复被篡改数据)。。。这些只是一部份,还有N多监控方式,依应用特点而定,还有一些问题需解决,如集群过大,如何高性能的进行监控也是一个现实问题。。。。。
     b、其它就是集群状态类的监控或统计,为我们合理管理调优集群提供数据参考、包括服务瓶颈、性能问题、异常流量、攻击等问题
II、故障管理
     a、硬件故障问题;对于成百上千或上万机器的N多集群,服务器死机、硬件故障概率是非常大的,几乎每时每刻都有服务硬件问题,死机、硬盘损坏、电源、内存、交换机。。。针对这种情况,我们在设计网站架构时需要充分考虑到这些问题,并将其视为常态;更多的依靠应用的冗余机制来规避这种风险,但给系统工程师足够宽裕的处理时间。(如google不是号称同时死800台机器,服务不会受到任何影响吗);这就是考验运维工程师及网站架构师功能的地方了,好的设计能达到google所描述自恢复能力,如gfs,糟糕的设计那就是一台服务器的死机可能会造成大面积服务的连锁故障反映,直接对用户拒绝响应。
     b、应用故障问题;可能是某一bug被触发、或某一性能阀值被超越、攻击。。。情况不一而定,但重要的一点,是要有对这些问题的预防性措施,不能想当然,它不会出问题,如真出问题了,如何应对? 这需要运维工程师平时做足功夫,包括应急响应速度、故障处理的科学性、备用方案的有效等
III、自动化
     自动化:简而言之,就是将我们日常手动进行的一些工作通过工具,系统自动来完成,解放我们的双手及枯燥的重复性劳动,例如:没有工具前,我们安装系统需要一台一台裸机安装,如2000台,可能需要10人/10天,搞烂N张光盘,人力成本更大。。。而现在通过自动化工具,只需几个简单命令就能搞定、还有如机器人类程序,自动完成以往每天人工干预的工作,使其自动完成、汇报结果,并具备一定的专家系统能力,能做一些简单的是/非判断、优化选择等。。。这些好处非常明显不再多说。。。应该说,自动化运维是运维工程师职业化的一个追求,利私利公,虽然这是一个异常艰巨的任务:不断变更的业务、不规范化的应用设计、开发模式、网络架构变更、IDC变更、规范变动等因素,都可能会对现有自动化系统产生影响,所以需要模块化、接口化、变因参数化等。。。。。。因此,自动化相关工作,是运维工程师的核心重点工作之一,也是价值的体现

[ 本帖最后由 veyron 于 2008-10-8 17:34 编辑 ]

论坛徽章:
0
22 [报告]
发表于 2008-10-08 14:39 |只看该作者
运维部是网络工程师、系统工程师、安全工程师、测试工程师的集合。楼主所说的什么都会的运维工程师可能不会有很高的运维质量。

论坛徽章:
0
23 [报告]
发表于 2008-10-08 15:16 |只看该作者
原帖由 jerryma 于 2008-10-8 14:39 发表
运维部是网络工程师、系统工程师、安全工程师、测试工程师的集合。楼主所说的什么都会的运维工程师可能不会有很高的运维质量。


网络、系统、安全工程师应该是系统部的范畴,他们更多关注的是系统、网络层面,独立于上层应用,他们提供的是一个通用框架和规范;安全工程师也更多的是基于网络、系统的整体安全策略的制度与规范,如网络入口安全规划、系统层面的安全(如iptables通用规则、内核加固、通用工具的安全评估)、网络安全审计等等,基于应用层安全如逻辑上的bug\漏洞他们是鞭长莫及的,而运维是基于系统部工作的基础上,针对上层应用服务的岗位,就好像系统部提供的是一堆积木,而运维将他们组装成玩具;还有重要一点,我没有强调运维工程师什么都要会,但关联岗位工作一定要了解,否则会有困难,对某些方面需非常熟悉,并有自已的专攻,就像我正在写的运维技术讨论,全是运维工程师的核心职责及技术;
    另外,测试工程师更多是与开发紧密配合的岗位,与系统部更没联系了

[ 本帖最后由 veyron 于 2008-10-8 15:23 编辑 ]

论坛徽章:
0
24 [报告]
发表于 2008-10-08 15:29 |只看该作者
恭贺楼主的文章被加为精华!

期待楼主后续佳作~!

论坛徽章:
0
25 [报告]
发表于 2008-10-08 16:10 |只看该作者
原帖由 hawking8987 于 2008-10-8 15:29 发表
恭贺楼主的文章被加为精华!

期待楼主后续佳作~!


谢谢大家、蜘蛛,貌似还是本版第一个精华贴,好荣幸~~

论坛徽章:
0
26 [报告]
发表于 2008-10-08 21:49 |只看该作者
感觉到很多熟悉的东西

论坛徽章:
0
27 [报告]
发表于 2008-10-09 09:55 |只看该作者
呵呵,楼主把运维想的有些复杂了,至少网站架构你只有建议权,真正的设计者是架构师而不是你!你只是执行者!

论坛徽章:
0
28 [报告]
发表于 2008-10-09 10:40 |只看该作者
貌似现在系统工程师, 系统管理员, 运维工程师是同一个概念

论坛徽章:
0
29 [报告]
发表于 2008-10-09 10:52 |只看该作者
原帖由 evil_knight 于 2008-10-9 09:55 发表
呵呵,楼主把运维想的有些复杂了,至少网站架构你只有建议权,真正的设计者是架构师而不是你!你只是执行者!


这种情况在各公司还是很普遍的,主要是由于运维还不成熟(刚起步),或经验缺乏,只能做简单的执行者,而在网站设计、架构、开发中运维会没有发言权,这是正常现象。当然,我这里说的是一种比较理想的运维职业状态,也是一个奋斗方向吧

[ 本帖最后由 veyron 于 2008-10-9 10:54 编辑 ]

论坛徽章:
0
30 [报告]
发表于 2008-10-09 11:03 |只看该作者
受教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP