从构筑大系统,到编写小应用

我们应该做个大系统!

我刚刚到学校网络服务中心工作的时候,对于学校信息化应该做点什么,以及应该如何做,并没有太多的概念。记得有一次去参加高校信息化学会的会议,听来自某知名学府的老师介绍 URP,瞬间觉得那真是一个很高大上又及其复杂的的东西。想想我们这些信息部门只有几个人的小学校,真是没法做这样的事情啊。

后来在学校里面跟同事们聊到信息化的时候,就经常有同事说,你们就应该做一个大系统,你们网络中心做,我们各个单位用。对于此,有些我是非常认同的,譬如学校的信息化的确应该一盘棋,不能乱来。但一个包罗万象的大系统,总要花很多时间很多钱吧,也许光需求调研就得几个月,研发起来就得几年,然后再投入使用……不敢想象。

在当时,做一个大系统的说法在高校的信息化界,时常被提起,也有厂商的宣传在朝着这个方向努力。于是也就真的有厂商找上门,来推销一体化学生管理系统之类的东西,把教务、学工、宿管等各个部门的需求,做在一个庞大的软件里面。他们说这样的系统最大的好处,就是天生没有数据孤岛。说真的,面对这样的说辞,还真说不定有人会很心动,做个大系统一下子把信息化推上一个台阶,那真的是大功一件,再加上没有数据孤岛,岂不是非常先进?

一个大系统真的现实吗?

作为一个每周都要写几行代码的程序猿,对于这种大系统之类的说辞,还是有一点天生的警惕的:

  • 首先,软件开发是一个非常复杂的工作,软件项目从出现的第一天开始,其失败率就远高于其它行业。譬如,我们很少听说盖房子刚盖好就塌了,但软件到期做不出来以及上线第一天就崩溃可不是什么新鲜事儿。并且,一个软件系统的复杂性,会随着功能的增加而成指数级增加,量变导致质变,用来形容一个系统功能不断增加和该系统的稳定性不断下降之间的关系,再合适不过了。

  • 其次,大系统的工期无法控制。单一软件项目的工期,通常应该控制在六个月以内,如果工期过长,无论是承包商还是相关部门的业务人员可能会因为长时间没有效果而陷入一种疲劳状态,同时软件自身的需求也可能因为业务的变化而不断发生变化,直接导致软件的工期更长,进而陷入一种恶性循环。

  • 再次,按照当今高校信息化行业对软件价格的普遍认识,很多人都认为一个软件系统四五十万就已经很贵了。但四五十万如果扣掉税,扣除销售的成本,在当今也就是一两个普通程序员一年的工资吧,而他们挣的钱不吃不喝合起来在北京这样的一线城市也就能买个厕所。请问这样的投入,能找得到做的出大系统的人吗?

  • 最后,即便是在 2010 年,人事、财务、教务、图书馆、卡务、网络中心等各种部门就已经建立了自己的管理信息系统,做一个大系统是要把它们各个部门的系统都干掉然后合在一起吗?这些完全属于不同管理领域的事情,真的能有一个公司都搞明白么?

如果一个事情在理论上就不现实,那么也就没有什么实践的必要性了。

数字校园的架构

在软件工程领域,人们一直寻找着控制软件复杂性的方法,而其中最经典的一句话,就是 UNIX 所奉行的设计哲学:* K.I.S.S. = Keep It Simple, Stupid! *

Unix 系统,就是一个典型的简单系统,系统中的每一个命令行工具,都只完成一个单一的任务,譬如 ls 就只能列目录、wc 就是用来统计单词个数,若想知道一个目录中有多少个文件,就需要用 ls | wc 这样的组合了。

数字校园,作为一个涉及不同领域,既要支撑教学、管理,又要服务学习、生活的庞大 IT 设施,其必然由各种大大小小的组件构成,但这些组件之间又必须建立联系,否则就会形成数据孤岛。在经过长时间的调研、实践和思考之后,在我们心中数字校园的整体结构和建设方式开始慢慢清晰,基本上可以用“大平台、中系统、小应用”来描述。

由于今天平台、系统、应用这些词语有着广泛的含义,因此有必要对其进行一下定义。平台,本身并不完成特定的业务工作,它的存在就是为了支撑系统和应用的正常运行,最典型的应该被称之为平台的东西就是基础服务层的如统一身份认证、展示层的如门户这些东西;系统,也就是管理信息系统,管理着某个领域的一组特定数据,并且支撑某个领域的日常工作,譬如人们熟知的教务系统、财务系统;应用,基于平台和系统中的数据,为用户提供某项特定的服务功能,门户平台中的集成的成绩查询、网费充值,都可以称之为一种小应用。

大平台和小应用的概念今天已经被很多人理解并认同,那么“中系统”指的是什么呢?

中等规模的业务数据管理系统

业务系统是数字校园中不可或缺的一部分,通常是数字校园建设过程中最早启动的那一部分,但也经常成为被吐槽最多、失败率最高的部分。如今已经有很多原本做业务系统的公司被高校玩儿死了,这是为什么呢?

  1. 预期错误:很多人认为做业务系统就是做软件,必须好看、功能全面、高大上,做个系统就要一切事情摒弃手工操作、不用 Excel。其实,信息化的根本任务在于对数据的管理,管理信息系统,就是帮助业务人员管理数据的工具。建设管理信息系统的根本,是梳理数据、优化管理,软件只要不出错、基本好用,可以保证主干业务正常运行就够了。

  2. 边界模糊:以高校中使用最为广泛的教务管理系统为例,在十四五年前大家刚刚开始做教务系统的时候,教务系统本身的功能还是很明确的,主要为了支撑学校最基本的教务运行。但随着教务处业务的不断增加,很多人就觉得诸如大创管理、计算机等级考试报名等各种各样的功能都应该增加到教务系统中来。各个软件厂商为了卖出自己的东西,毫无节操的迎合各校教务处的不合理需求,在自己的产品中加入了越来越多乱七八糟的东西,活生生把学校的“教务系统”做成了“教务处系统”。

  3. 需求泛滥:在高校做业务软件,需求调研的过程往往非常奇葩,一种最常见的做法,就是业务部门的领导会把部门内所有的工作人员叫到一起,开动员会,然后让每个岗位上的具体工作人员向厂商提出软件修改需求。这种方式,极易导致需求的泛滥和不可控。请问银行做软件会把所有柜台的服务人员都叫来跟承包商谈需求吗?正确的软件需求采集方式,应当是由部门中管理经验丰富、全面掌握业务的一两个人跟软件开发方的专家共同商讨制定。而一般的工作人员,作为软件的普通使用者,则应当按照既定的管理模式工作。

上述问题,都会使业务系统不断膨胀,一个业务系统塞进去各种有用的没用的东西。正如前文所说,随着功能的增加,软件的复杂性也会不断增加。因此,我们强调业务系统,应该是“中等规模的业务数据管理系统”,一个业务系统应该只负责处理关联极其紧密的重要的、成熟的、频繁发生的业务,其管理模型应当是业内普遍采用的。业务系统应该更多地强调数据准确性和及时性,易变的流程审批性内容,则应当向学校统一建设的 BPM 流程平台迁移。

譬如教务系统,就应该只包含学籍、培养方案、排课、选课、成绩、毕业设计管理等最基本功能和相关的学生、教师服务界面。如果教务处还有什么其它的需求,都可以做成基于学校数字校园平台和教务系统基础数据而运行的独立应用。以这种模式构筑的教务系统,由于其需求稳定、数据清晰,如果再加上合理的软件架构设计和精心地实现,就可以用很久。

应用小型化和微服务

幸运的是,今天已经有越来越多的人认识到了系统中小型化的必要性和必然性,并且在实践中按照这种方式构建系统。在互联网领域,其实也有一种应用中小型化的趋势,也就是今天很多人所说的“微服务”模型。

互联网领域所使用的“微服务”模型,实际上是将过去一套代码、一套数据库的单体软件结构,分解为每个模块一套代码,每个模块一套数据的结构,这样不同的模块可以根据自身的需要选择合适的语言编写,也可以根据实际应用的需要选择横向扩展方式。而模块与模块之间,则通过消息队列或是 API 接口等方式进行连接。

如果我们把数字校园看成一个大的互联网平台,那么今天数字校园的应用小型化趋势和互联网领域的微服务架构其实如出一辙,只不过在模块划分的粒度、实现方式的把握上,有着不太一样的标准罢了。

写在最后

任何一种技术的变革,都会多多少少带来一些问题。应用的小型化,使软件的安装部署和运维工作量迅速增加,而这样的问题该如何解决呢,敬请期待《从虚拟化向容器化迈进》


数字校园实践系列

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容