作为面向企业信息系统搞IT的人,最大的困难可能不是搞定某个技术问题,而是向你的领导或投资人解释这个技术为什么重要,IT圈子有个坏习惯就是喜欢层出不穷地制造概念,让圈子外的人难以理解,那么这恐怕是比技术问题更大的问题。
本文尝试用人体类比企业信息系统,用不那么精确的方式试图让圈子外的读者理解一点IT名词,例如什么是中台、网关、服务编排,让没有IT背景的人也能理解一个现代的企业信息系统应该有哪些组成。
如果企业级信息系统是一个人体
如果企业级信息系统是一个人体,那么它应该是如下这个样子:
大脑 vs 中台
中枢神经系统在脊椎动物包括大脑和脊髓,而一个企业级信息系统也应该有中枢神经系统——由中台和网关组成,中台就是大脑,网关就是脊髓。
大脑的功能就是控制身体的其他器官,例如调制肌肉的运动模式,分泌荷尔蒙来控制人体,让人对环境的变化做出迅速而一致的反应,有些可能是一些基本的反应,也可能是基于多种感官输入,有心智、有目的的动作,要通过大脑中枢的整合能力才能控制。
中台起着同样的作用,一般说到中台,是由业务中台和数据中台组成,业务中台负责控制和调度,而数据中台负责记忆和计算,例如厨师需要在大脑中记录各种食材、操作手法等厨艺数据(数据存储),并根据自己的经验对做菜中的每个环节进行判断(数据计算),这就是数据中台的作用。
业务中台在企业中实现多个业务板块之间进行协同和调度,按照企业的战略进行决策和响应,输出企业的战术动作。业务中台因为要融合多个业务功能板块的能力,所以要具有服务编排这项能力,所谓服务编排,其实可以类比于厨师做菜时根据食材的颜色(视觉)、火力的大小(触觉)、菜锅中的气味浓烈程度(嗅觉),大脑根据这一系列的外部刺激(请求),再根据自己的经验(历史数据),按照炒菜的工艺(业务规则),通知人体的手、腰、腿上的肌肉(前台)作出如加料、调解火候、翻炒等动作(响应),服务编排的运作过程是类似的——调度企业级信息系统的每个功能模块,按照预订的企业战略和战术规则,作出对应的反应。
这种依靠统一调度进行服务编排的运作模式,在微服务技术领域还有一个专有名词,叫“Orchestration”,而这个名词又来自于管弦乐队,指由一个统一的指挥者来协调团队里所有的成员。
脊髓 vs 网关
人体中的脊髓是脑部与躯干四肢的神经信息传递渠道,而网关是中台与前台、后台的数据传递渠道,承担着一个企业级信息系统南北向和东西向的数据流量,南北向是企业级信息系统与外部交互的流量,如同体育运动中,运动员的脊髓要接收躯干四肢上的外部信息,传递给大脑;而东西向是企业级信息系统内部的信息传递,如人体运动就会出汗,这就是人体内部的各个器官在互相沟通,并自行调解。
如同人体的脊髓必须坚韧且可靠,网关面临着四面八方的用户请求,首先必须必须能扛流量,所以经常使用分布式技术保证其可靠性;其次职责就是作为统一的出口对外提供服务,将外部的请求根据适当的规则进行过滤和匹配,在路由到对应的资源上,这里“资源”或者是中台,或者是前台,或者是后台。
肌肉 vs 前台
有时我们也会看到“前台”这个名词,如果说中台是大脑,那前台是什么呢?其实前台就像人体上的肌肉,千万不要以为我在乱对比,其实两者真的非常相似,在企业级信息系统中,前台是用户直接交互的功能系统,提供给用户输入、查询和展示,比如商品查询模块、订单系统模块等等,而人体每个与外部交互的动作,包括说、听、看、跑,也都需要控制肌肉进行。
涉及到前台的文档时,我们经常会看到“单体应用”或“微服务”这两个名词,它们的区别如下图
怎么样,是不是很形象?想必你一下就理解了“单体应用”与“微服务”的区别,单体应用就是只有一块肌肉(肥肉?),如同宅男那臃肿、厚重的身躯,而微服务就如同男神核心上的多块肌肉,可以适应各种运动,灵活地作出各种动作,这里的“运动”就就是各种技术文档里出现“应用场景”,肌肉越多,运动能力就越强,微服务相比单体应用可以更灵活地组合,所以应用场景就越广泛。
技术文档里伴随着微服务化改造经常出现“提供可复用的公用能力、避免重复建设”的字眼,这就类似于人体的减脂增肌,通过消除重复建设的功能模块(脂肪),让每个微服务(肌肉)都具有独立的价值,从而增强整个企业级信息系统的稳定性(健康值)。
之所以越来越多的企业选择微服务,是因为大量的企业开始走上数字化转型道路,在原来的经营模式之外可能还有数据运营和增值服务的需求,甚至有第三方接入的这种开放性需求,与原来宅在一个固定的房间里就有吃有喝不同,这种经营模式就像参加野外活动,面临更多不确定性的挑战,所以信息系统架构上要能快速灵活地调整和改变。
另外还有一个名词“前端”,虽然与“前台”只有一字之差,但两者含义不同,如果说前台是肌肉,则前端就是皮肤,是最直接面向外部的一层组件。
内脏器官 vs 后台
相对于前台的肉眼可见,后台就像人体中的内脏器官,不可见但却是支撑系统健康运行的必须组成,各种不同内脏器官有不同的功能,心脏负责推动循环系统中血管的血液,提供身体氧气以及养分,协助身体移除代谢废弃物;肝脏负责除去毒素,储存糖原(肝糖),分泌蛋白质合成;肺负责呼吸供氧,企业级信息架构中的后台也一样:
企业管理系统(ERP)主要负责对企业内部人、财、物等资源进行综合平衡和优化管理,协调企业各部门,共同围绕市场导向开展业务活动;
客户关系管理系统(CRM)主要用于收集、管理、分析和利用客户信息数据,记录营销和销售过程,提供各类数据模型,为后期的分析和决策提供支持;
办公自动化系统(OA)主要负责数字化地创建、收集、存储、处理、传播工作所需的信息;
生产管理系统(PMS)不仅仅是制造业的必须,能源生产和调度也需要生产管理系统,它整合销售、合同、采购、库存、生产、产品等环节的过程监督和管理功能
......
血液 vs 数据
如同血液负责在人体中传送氧份,在企业级信息系统中传送价值的是数据,无论一个多么简单或多么复杂的信息系统,总有三个方面的问题要解决——数据的处理、数据的存储、数据的传输。
数据的处理:信息系统处理数据一般有两种方式,流式处理和批式处理。流式处理就像血液的流动,是连续不断的;而批式处理就像心脏的跳动,是离散而有规律的。
数据的存储: 数据一般分为结构化数据和非结构化数据,这两种类型数据的存储方式差异比较大,结构化数据一般用关系型数据库(RDMS)存储,非结构化数据一般用键值对(Key-Value)类型数据库存储。
数据的传输:数据传输过程中一般最需要注意的问题是安全问题,有恶意的攻击者通过DNS欺骗、中间人攻击、跨站脚本攻击等手段,这就有点像血管破裂,出现了出血问题,需要加固处理。
这篇文章来自我在思考如何描述企业级信息架构时的一个灵感,部分内容参考了周志明的《凤凰架构》和陈皓的极客时间专栏的《分布式系统关键技术:服务调度》,如果你觉得这篇文章有点益处,请帮忙转发。