Chinaunix首页 | 论坛 | 博客
  • 博客访问: 270683
  • 博文数量: 53
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 509
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-29 10:02
文章分类

全部博文(53)

文章存档

2014年(1)

2013年(1)

2011年(14)

2010年(37)

我的朋友

分类: 系统运维

2013-08-13 14:49:52

        在这里,首先明确的是中等规模以上的运维,不到数百台服务器的规模,想必也不会有太多的需求,或者说没有太多的资源和压力来实施运维工程。

        什么是运维,这个很难说清楚,但运维主要干嘛,我认为:
                    第一、保证线上业务的稳定,保证Qos
                    第二、保证业务的需求,支持快速迭代
                    第三、控制成本

         这3点说起来容易,做起来就很难了,绝大部分公司第一点就做不好,其他的就不要谈了,那我们该如何做到呢?

         首先,运维应该由如下组成:

            ---IDC运维:负责基础设施搭建,包括IDC机房选型、服务器选型、服务器上架、网络架构设计与实施、资产信息入库

            ---系统运维:负责操作系统定制优化(包含自动化装机系统),运维基础服务搭建,主要包括(yum、ldap、svn、DNS、ldap、NTP、配置管理工具)

            ----应用运维:直接面对研发和业务,主要工作包括参与架构设计、应用上线,性能调优、troubleshooting、Qos分析与监控、容量规划等工作,需要深入了解熟悉各种开源软件,深入了解应用,如php和java

            ----CDN运维:负责CDN运维,面对应用运维和开发,负责各种内容加速(download、web、video、live),会涉及大集群管理,高并发环境

            ----DBA:负责数据库以及数据缓存层搭建,构建高可用,服务化的关系型或者key/vaule数据库,比较专业

            ----安全团队:负责安全相关工作,主要包括:网络安全、系统安全、应用安全、业务安全(电商很重要)、入侵检测、审计、安全评估、安全预警、漏洞评估和修复、安全培训(部分公司已经将安全独立与运维之外,称之为安全中心)

            ----运维开发团队:负责运维工具、运维平台的开发工作:主要包括:CMDB、监控报警系统、运维自动化平台等等

          接下来,我要谈谈运维发展的几个阶段:

          第一阶段:运维标准化自动化阶段:从网络、硬件、系统、软件等各个层面指定标准,在标准化的前提下实现自动化,包括自动化装机系统、配置管理工具,自动上线系统、监控报警系统、CMDB,如此同时搭建好各个运维基础工具,主要包括(yum、ldap、svn、DNS、ldap、NTP)等,将运维工程师从大量没有价值的重复劳动中解脱出来
图片

            第二阶段:平台化运维,精细化运维:
    
            平台化运维:重点是将上述系统整合起来,数据一次输入,其他系统相互调用,各个系统提供api,实现交互,良性运行,,并有一个统一的用户ui,为运维工程师提供服务,形成一个有机整体。

            精细化运维:构建统一的日志收集分析平台(实时和离线),加强数据收集,包括交换机日志、系统日志、应用日志、loadbalance日志等等,定时自动化多维度日志分析,监控Qos,并与监控报警系统结合,实现Qos准实时监控,并对各个服务的容量做分析和设定标准(变化的),当达到警戒值是能快速扩容,如果资源冗余能快速回收。

            做到这里,基本就完成了运维要做的三件事的中的第一件了。

            第三阶段:运维服务化和弹性计算:

            运维服务化:构建资源池,可提供各种通用组件来支持研发,将运维包装成服务,为研发提供各种解决方案,研发需要的话直接通过接口调用就行了,他们不需要关心这个服务的性能、状态。这块可实施的从前端到后端,有LB、中间件(cache层、消息队列、调度系统)、DB(mysql、kvdb)层等等。

            弹性计算:利用虚拟化技术,构建服务器资源池,并与监控报警系统联动(如当某个应用平均load达到某个值自动新增服务器,并加入到LB中),实现各个应用的自动扩容,自动故障恢复 

            在这几个阶段中有几个关键点需要注意:
1、简单即可用(好像百度最先说,但我一直很推崇)
2、变更是绝大部分故障的源泉
3、故障推动变革,不要害怕故障,但也不能容许同样的故障重复发生
4、无情的推动标准化、自动化
5、不要重复造轮子
6、谨慎引用新软件,用好现有软件(深入了解)
7、拥抱改变
8、沟通很重要
9、团队的力量很重要

            做到这里,我想运维应该已经达到一定水平了,国内可能也就BAT能有差不多的水平了。那接下来我们面临的挑战是什么呢?我想主要面临的挑战是如何体现和衡量运维的价值。

            首先,运维是保障团队,并不像销售直接产生收入,也不像研发开发产品,相反运维想要做得好,需要花大量的钱,雇佣一个niubility的运维团队相当的不便宜,并且运维还会要求采购大量的服务器、交换机、安全设备等等大量设备,花销巨大。

            其次,运维做得越好,你越是感觉不到他的存在,这点算是运维的悲哀,越做得好,越是看不到,长期看不到自然老板会想我养着这么一个团队每天在干吗呢?还花了那么多钱,也许下一步他开始考虑减少运维支出,包括购买设备和人员裁剪。

            回到本文的开始,关于运维的价值,主要体现在保证业务稳定,支持业务快速上线,如果可能尽量少花钱。在这种情况下,如何体现运维的价值?如何衡量运维的价值呢?这个是很重要的问题,这个问题处理不好,运维的地位岌岌可危,运维的出路也很渺茫。

            我想主要有以下方面来避免运维陷入上文所说的困境:

            1、图形化展现:应用图形化工具,建立运维监控墙,将不可视的运维数据变成可视的图形,实时展现各个关键业务的Qos、用户量变化、带宽等其他数据,让技术和非技术都能关注和了解(这个会给运维带来压力,因为数据是不可作假的,一旦故障,所有人都能看见)。

            2、运维数据化:将运维数据直接和业务挂钩,如网站宕机1分钟损失多少钱?网站被入侵损失多少钱?配合一些宣传海报,让大家知道保持网站稳定的价值。

            3、运维推进需要的不只是运维本身的努力,也需要公司高层的重视,相信成熟的公司高层也肯定会认识到运维的价值的

            相信以上的工作如果都做好了,大家就可以每天都在公司看看新闻,和美眉聊聊天,打打球,过过舒服的日子,做一个快乐幸福的运维工程师了。

            以上就是现阶段我对运维的认识和理解。



阅读(5143) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

alexnomi2013-10-09 08:57:35

很受启发。