分享我最近半年经历的一个项目。
一、项目背景:
项目(暂且叫做CMC项目吧)包含热线服务和短信平台,属政府类行业项目,采用IT服务外包模式,用户只管理热线平台和短信平台两大主要业务。热线和短信平台的服务用户基数为50万人左右,热线主要业务为信息查询和政策咨询类、短信平台主要提供查询服务、业务提醒服务等。
项目经理L-Pm是从北漂回来的,据说干了7年开发。2014年10月份我结束了银行的项目后,就被安排在CMC项目组。此时项目热线平台已经上线运行,短信平台正在研发中。我的主要工作是完成一些功能模块以及协助解决项目中的遗留问题。截止8月中旬项目基本结束,并交付运维组进行运维工作,我则被调离负责新的项目。
二、问题记录:
在项目跟进了3个月后,基本了解了项目的整体架构以及主要业务后,发现了一些让我很头疼的问题。
1.鸡蛋都放在一个篮子里
项目包含热线服务平台(主要是业务数据的查询、工单等)、短信平台、第三方服务接口;这三个服务是日常业务最常用的,居然部署在一台服务器上,一个tomcat下,且tomcat 没有经过任何的优化;
热线服务平台、短信平台、第三方服务接口所涉及的数据表都放在同一个数据库服务下;
2. 没有备用服务
整套服务要求是7*24 小时,其中人工5*8 小时,整套IT服务没有备用的服务。
3.数据库服务不作备份
数据库服务作为一台服务器单独提供服务,只是简单地做了数据级别的周增量备份。
4.项目团队以及运营部门没有管理规范
项目团队加上运营团队攻击30人左右,已经运行1年多了,没有制定管理规范。
三、然而,以上的问题都是经过了血淋淋的教训了的:
1、5月份的一个周一,客户方组织领导过来参观,就在人员都准备就绪的时候,运营部座席反映呼入的电话无法接听,因为系统无法登陆。客户方已经到楼下了,我们几个呆住了。在后来的检查中发现是由于一名座席在登陆系统后,执行了较早时间的短信业务查询,大批量的复杂计算导致tomcat 内存溢出,服务挂掉。苦逼的五月份,被领导一通骂,全员绩效扣掉80%;事后,我向项目经理建议:热线服务平台、短信平台、第三方服务接口单独部署,互不影响,这样也便于做服务监控,然并卵。
2、 没有备用的服务;无论是哪一个平台出现问题、或者网络、或是web服务、或是服务器故障等,整个IT系统就处于瘫痪状态,一挂全挂;
3、整套服务数据库是核心,然,只有一台服务器搭载Oracle 服务,没有配备双机热备等。一次刚上班,运营部座席反映系统无法登陆,在重启服务、检查网络后均不知哪里的问题,进一步检查后发现Oracle 数据库服务挂了,无法连接。系统再次瘫痪,小伙伴着急跑去机房尝试重启Oracle 服务,然而并没又恢复,经几次尝试后,直接重启了服务器,在意识到问题的严重后,请求公司资深专家协助,发现Oracle 数据库日志文件撑爆了一个盘符,盲目的重启导致本周内的数据丢失。后果,领导一通骂,绩效扣掉30%。
4、缺乏管理规范:
短信平台部分是有短信座席的,正常的短信业务都应该是由短信座席来完成。然而,项目组的一个开发人员却充当了一次短信座席的角色,客户要求批量下发一条政策通知短信,本应由座席执行发送操作,小伙伴却亲自上阵了,一个不小心点了发送按钮,当在回头时发现短信内容项为空,通过数据监控发现,已经有3万条短信提交至上网的短信网关,短信依然在提交,情急之下小伙伴关闭了唯一的一个tomcat ,要清理队列中的数据,导致IT系统又一次瘫痪,还没等处理完客户方就打来电话,说收到了空短信。后果,领导都求我们了,绩效全无。
在经历了这一起又一起事故后,我是无语了,每起事故后,我都会根据自己的理解和经验提出最低成本的修改方案,虽不是高大上,但也算是一点优化。然而并未能执行,一个重启服务貌似更来得直接。在提出方案的时候项目经理总是以这是领导的意思来敷衍,业务经理是迫于一些压力吧~~
利用工作空闲我为整套IT系统添加了一套监控服务,包含数据库、web服务器、平台重点业务监控,然而并没有人愿意去分析、查看。就在昨天在内部群里,还看到有人说重启服务。
最后,吃颗西瓜,洗洗睡吧,明天依然美好~
2015-08-25 夜