做好运维工作促进电子校务应用系统开发
2015-03-18耿幼平
耿幼平, 杨 旭, 樊 春
(北京大学计算中心,北京 100871)
0 我校电子校务运维工作的内容和特点
随着高校信息化建设的发展,分工越来越细致,合作也就越来越重要,这是一个逐渐演变的过程.在信息化建设的初期,系统开发和运行维护几乎是由少数几个人全部包揽的.随着建设内容不断增加,规模不断扩大,人员队伍发展壮大,分工也越来越明确.
在电子校务建设工作中,IT运行维护是不可或缺的重要组成部分[1-2].IT运维涉及的内容主要包含运维管理和运维技术.运维技术包含了若干层面:物理层面(UPS,空调,电力,机架,承重,线缆等),网络层面(交换机的配置,管理,优化等),操作系统层面(虚拟机的应用,各种服务配置,优化等),数据库层面(数据库的配置、备份和优化等),应用系统层面(应用架构的设计,业务梳理等),集中存储层面(存储资源的供给,RAID的设计等).
我单位承担上百个项目的开发与维护工作.开发分为三个项目组,负责项目的需求分析、系统设计与实现以及测试工作.只有一个运维组,工作的职责包括:机房,网络,服务器,存储,防火墙,虚拟机,实时监控,备份,安全,操作系统,数据库环境提供和运行保障.
运维工作涉及领域多,事情杂,突发紧急情况多.在人员少,任务重,设备老化的情况下,我们不但要做好运维工作,为系统运行提供有力的保障,而且还要通过运维工作提高系统开发的水平,进而提升应用系统的产品质量,降低维护工作的成本、强度和难度,形成开发与运维工作的良性互动,这是我们追求的目标.
1 运维工作对系统开发的促进作用
在实践过程中,通过具体的案例,我们注意到了运维对应用系统架构、设计的影响,进而反馈到系统开发过程中,优化了开发流程.把运维的因素尽可能融入到开发的各个阶段,从而提高应用开发效率和系统的实用性,可以降低维护和使用成本.
1.1 优化应用系统架构与设计
案例一,选课系统与架构设计[3].针对选课系统短时间高并发的特点,选课系统的设计开发之初做了大量优化工作,测试时仍然无法承受选课压力.运维组从系统架构上做了调整,采用了应用服务器集群模式,使用了负载均衡,增加多个Apache作为集群的代理和静态资源加速,测试的效果很好.经过发掘潜力,进一步简化了架构,省去了负载均衡设备.最终,选课系统只使用了三台PC服务器和一台虚拟机,其中两台PC服务器运行Weblogic应用服务,一台运行数据库,虚拟机运行Apache和应用管理,节约了硬件成本.
当选课系统的负载不再成为瓶颈,业务层面的开发不再关注性能的问题,开发人员就可以集中精力投入到业务需求,大大提高了生产效率.
有些部门的应用系统是从第三方公司采购的,运行初期状态良好,公司也疏于维护,发生故障往往影响严重.我们接手了两个案例,解决后对自己的研发也有启发和帮助.
案例二,大数据量数据库的故障修复与历史数据的处理.一个网站的后台数据库发生故障,恢复数据库时,发现上千万条数据的表有损坏,在恢复过程中,耗费了很多时间,而该表仅仅是日志记录,在其业务系统中并不很重要,而应用系统没有设计数据的出口,几年下来,占用了大量的数据空间,提高了数据库恢复的时间成本,影响了业务的正常运转.
对照检查我们现有的应用,也有数据积累的情况存在.经过梳理并与用户沟通,制定了历史数据的归档规则,把不必要的数据定期从生产数据库迁出,保障了生产库的稳定.在开发的流程上,我们强化了针对大数据量的处理要求,从设计阶段就加以考虑,把问题解决在源头,可以减轻后期变更的工作量.
案例三,数据抢救与数据类型的选择.一个管理网站使用的后台数据库,由于数据文件损坏,导致表中的数据丢失和访问异常,不得不从剩余的文件中抢救数据.其中多个表使用了LONG类型保存XML数据,这在恢复数据时带来不小的麻烦.LONG数据类型支持的操作极其有限,从剩余数据文件中读出LONG数据后,只能转换为LOB类型保存在临时表.由于不能修改表结构,数据从临时表导入原表费了很大的周折.LONG不支持从一张表读数据直接插入新表的语句,很多方法读取LOB长度有字符数量的上限,经过多种途径的试验,才找到了可行的导入方法,但需要对每张表编程实现数据的逐条导入.
通过案例三,我们更加重视合理使用数据类型以及各种数据库对象,特别针对数据类型做了约束,进一步完善了数据库设计规范和流程,减少数据库设计的随意性.
1.2 优化开发流程
为了达到最好效果,我们把运维的因素及时融入到应用系统开发的各个阶段:需求、设计、实现及测试,特别是在早期,这样可以避免后期工作的反复变更,提高开发效率.
从应用开发的初始阶段就考虑到运维的因素.仍然以选课系统为例,在项目启动之初,我们就针对用户数量大、短时间内服务压力大的特点,开发人员、运维人员和用户充分交流,设计了合理的选课流程,使用预选加抽签的过程降低系统压力,减少使用先到先得抢票式的选课过程.可以说,合理的选课流程的确定,是选课系统顺利运转的决定性因素之一,而这是在项目初期阶段就确定的.
选课系统设计和实现的过程中,在充分认识选课业务特点的情况下,运维组把其他相关系统的情况一并加以衡量,提出了可行的意见和建议.最终设计实现的方案既满足本系统需求,又顾及了其他系统的现实情况.选课功能是从门户主页登录进入的,考虑到门户承受压力的限制,系统单独设立了登录界面,减轻门户的负担.认证服务是无法回避的环节,必须要承担用户登录的压力,为此我们对认证系统做了专门优化.此外,为避免选课系统带来的压力,与其他系统的数据交换大多都采用了异步的方案.这些工作都是和选课系统并行的,并且先于选课系统完成,没有拖延进度,也没有成为瓶颈.
2 深化运维工作效益,助力应用系统开发
深化运维管理,可以创造更大的效益.运维工作内容涵盖面广,既包含技术,又包含管理.上节介绍了从技术角度促进应用开发的工作,如果从管理的角度审视,我们可以得到更多的启发.以ISO20000为目标,参考ITIL的实践理论,借鉴兄弟院校的经验[1-2,4],充分结合自身的条件,建设和完善适应我校现有环境运维管理体系,向管理要效益,是我们运维工作的指导方向.
3 总 结
本文首先介绍了我校运维工作的内容和特点,结合具体的案例介绍了系统架构和数据库层面的运维工作在技术上对应用系统开发的积极作用,并指出运维管理对促进应用系统开发的重要性.
从事运维工作应该对开发工作的过程和特点有所了解,反之亦然.无论从事开发或者运维工作,我们都应该积极创造机会和条件,关注自己工作之外的内容.从全局的角度加深对信息化建设的理解,才能建立和实施良好的管理流程和制度,提高分工的合理性和合作的有效性,使信息化建设良性发展.
[1] 李淑娟,谢嘉宾,宓詠.高校IT运行服务中的流程管理[J].中山大学学报,2009,48(S1):220-222.
[2] 张四海,张万光.高校IT运维服务面临的挑战与机遇[J].中山大学学报,2009,48(S1):235-237.
[3] 来天平,樊春.基于优化的集群架构构建高可用高校选课系统[J].大连海事大学学报,2009,35(S2):34-36.
[4] 唐雨,孟坛魁,梁艺军.IT服务管理流程设计和执行要点[J].太原理工大学学报2012,43(10):146-149.