it 基础

October 31, 2014

先挖个坑.老板布置的任务.我还是先放开来说.

背景

如果要说中国最庞大复杂,最难以管理维护的 IT 系统是哪里的? BAT(百度,阿里巴巴,腾讯)?

要我来说,得在运营商和银行里面来找.

银行也确实够乱的,前段时间不是还闹出让储户1.5亿蒸发不见的事情么.银行的 IT 系统有过比较浅的接触,看起来确实可怕,不过从业务复杂度上和运营商比起来那就是小巫见大巫了.所以银行先暂时搁置不说.

中国最难以维护管理的 IT 系统得从运营商来找,原因有以下几个: * 建设早.因为建设早, IT 系统所使用的技术语言,操作系统五花八门.据我所知,九几年用 c 开发的程序还有在生产系统运行的;操作系统就像一个历史博物馆, windows AIX linux Solaris 各种古老的版本一应俱全 * 系统复杂.运营商建设最火热那几年,正好是软件行业 java 大行其道,复杂设计津津乐道的年代.一个系统你要是简洁清晰明了了,你都不好意思拿出来跟人说,高大全+复杂才是最好的设计.不管这个模块功能有没有用,为了看起来够复杂,先弄上去再说;不管接口字段有没有必要,为了看起来复杂,先加上去再说.不求最好,但求最复杂.没有任何一个人搞得懂那就是最好的.一个系统2-3k 表那是很正常的. * 厂家多,系统多.一个运行商的 IT, 后面有十多二十个系统支撑那是很正常的,这还只是上了规模的系统.其他的小系统那就是多如牛毛了.这还是省集中以后的情况了,以前一个省下面有几个市,你就还得把系统数乘以几.即便现在省集中了,各个市都还是会遗留一些自己使用的系统. * 业务复杂. 运营商的套餐,计费,业务办理,开通;不要说老百姓,行业专家看着都觉得复杂,搞不懂;而且这种业务的复杂是逐年增加的,因为业务部门总要做营销推新产品吧.业务都那么复杂了,支撑的 IT 系统的复杂度,那就就是几何倍数的增加了.哪个系统打开不都是通篇可怕的if else,关键是还没人搞得懂,也不敢轻易去改. * 环境复杂. 这里说的环境,主要是指运行软件所依赖的环境复杂.我所遇到的一个例子:必须要 aix 5.2,aix 5.3 就运行不了(这也是造成遗留古老操作系统的原因),依赖tuxedo 8.1,任何其他版本都跑不起来,依赖 weblogic 某个特定版本.对 oracle 数据库更新紧耦合,可能用到的某个特性,只有这个版本才有.让一个软件跑起来的条件如此苛刻复杂, 让人如履薄冰, 一不小心, 遇到的就是灾难性的启动不了的故障.

这个算是一个相对极端的例子, 其实其他行业也是一样,往往支撑 IT 服务的就是这样一个如同用纸牌,线团,胶水构建成的高层建筑,它是如此的精巧复杂,让人觉得不可思议. 可能仅仅抽动了一根看似无关紧要的线头,这个精巧的大厦就因此崩塌了.甚至你都不用去动它,它就自行摇摆崩塌了.

可是 IT 的东西往往是摸不着,看不见的.于是我们企业的就依赖这样一个摇摇欲坠的大厦支撑,但是大家都泰然处之,因为 看不到,感受不到

再举一个可能都会似曾相识的例子:

部门领导接到上级领导的电话,脸红心跳,坐立不安.因为被业务部门投诉了,系统打不开了,无法办理业务了.

紧急事件突发了,警报拉响, 层层调动. 一个大厅, 几百号人:n 个系统的,包括厂家的, 各级领导.大家呼来喊去, 敲键盘的声音, 人们奔走忙乱的呼喝声. 简而言之就是乱成一锅粥了,已经一个小时过去了, 可是连问题在哪里都还没定位到, 因为系统太多太复杂了. 2个小时了, 一看上级领导又打来了电话, 头上已经冒汗了, 只有小心的陪着笑脸应对.

因为找不到问题在哪里, 只有全部重启. 重启后,终于解决了问题, 长吁了一口气. 可是好死不死的, 另外几个服务怎么也启动不起来, 原因暂时还没找到!

于是 两天 过后, 终于基本恢复正常了! 大家拖着疲惫的身体回去休息了.问题在哪里始终无人知道, 大家都很辛苦, 都没有错, 也无法追责.

于是只有郑重其事的插上一炷香, 拜一拜, 保佑至少这个月不要再出问题!

解决方案

ITIL

国外早就对此设立了一系列复杂的解决规范了,我们看一下 wiki 上的截取定义:

ITIL是用来管理信息技术 (IT) 的架构设计,研发和操作的一整套概念和思想。


基础服务构想
主要精神为和谐推动及持续改善,将服务对象视为客户,强调End-to-End的服务。

ITIL最初是借由一套书籍发布。这套书籍的每一本都涵盖一个信息技术的领域。ITIL这个名称和IT Infrastructure Library都是英国政府商务办公室 (OGC)的注册商标。借由为不同的IT组织量身定制一些复杂的清单,任务,流程,ITIL为许多重要的IT时间准则给出了详尽的解释。

这是一个相当大的概念和体系了, 但是里面涵盖了针对这个问题的解决办法; 确切来说引起的混乱还是管理问题. ITIL 将IT 服务管理生命周期 (Service Life Cycle)划分为以下这几种: * 服务策略(Service Strategy, SS) * 服务设计(Service Design, SD) * 服务转移(Service Transition, ST) * 服务运营(Service Operation, SO) * 持续服务改善(Continual Service Improvement, CSI) 我这里并不建议去深入学习 ITIL, 因为学习起来相当艰深, 耗费的时间和精力那是相当的大. 然后如果学习完毕, 你会发现提升的是你的管理思路和办法, 非常完善的理论, 也很容易让人陷入教条的误区.你会发现无从下手.

这套理论体系是相当的好的, 可以作为指导和目标. 但是切记不可生搬硬套的去实施, 因为这套理论连国外那种相当严格规范的企业都没有办法照搬实施, 更别说国内这种灵活多变的环境下了.

这套理论有学习和借鉴的地方. 但是语言描述那是相当的教科, 阅读起来枯燥乏味, 太过于学术化. 时间非常充裕空闲, 可以去翻一翻.

ITSM

ITSM(IT服务管理)是一种和ITIL相关但是不完全相同的概念.

ITIL 更偏理论, ITSM 更偏实施. * 事件管理(Incident Management,ITSM) * 问题管理(Problem Management,ITSM) * 配置管理(Configuration Management) * 变更管理(Change Management,ITSM) * 财务管理(Financial Management for IT Services,ITSM)


comments powered by Disqus