传统的ERP系统是基于局域网设计研发的,具有套件式、紧耦合、高内聚的特点。而新一代企业数字化平台是基于互联网、IoT、微服务、中台化、大数据、AI技术基础的。
企业管理需求的产生基本上来自于各个专业系统,包括ERP、CRM、SRM、HR、费控、OA、企业商城等等,每个专业模块解决的是部门级或某个领域的管理需求,即使是覆盖企业管理全局的骨干系统ERP也不覆盖到营销和采购环节,所以需要CRM和SRM来补充,有些专业领域的深度管理需求,还需要专业系统来完成。但企业对IT系统的基本要求是作为一个整体的运营支持系统,并且满足企业迅速变化的敏捷性要求,针对不同应用可伸缩,还要满足个性化需求。
在传统IT架构中,企业的各类服务数据是通过企业服务总线ESB(Enterprise Service Bus)来完成的。
但今天的企业需要正在发生又一次重大改变,就是希望对企业内的一些通用应用进行标准化处理,使之可以让更多部门复用或调用,至少在集团内部可以共享,基于企业运营的前端和管理后台,中台概念应运而生,其核心思想就是“共享”、“复用”。尽管企业的前端应用各异,但是可以调取数据中台的数据,数据中台负责数据采集、治理、建模和各类分析服务。这些数据的来源都来自于业务中台,包括用户、产品、结算、发票、合同、流程、权限和管控等各个功能模块形成的集中管理中心。
中台概念的提出和应用堪称中国企业对信息系统理论改造升级的一个重要贡献,这个有些中国特色的概念甚至还没有一个合适的英文词汇来匹配。一方面,大家对这个概念还有达成完全的共识,另一方面,的确也没有在英文IT概念体系里面找到一个恰当的语境来做相对应的阐释。甚至某些国际厂商在面临中国企业关于如何利用其系统建设业务中台的询问中显得有些尴尬,这些厂商的阐述逻辑显然与企业的愿景产生了偏差。这或许可以解释为中国更加成熟普及的电商和移动互联网的应用环境已经在呼唤新的应用场景,而来自海外厂商的经验还没有及时完整地捕捉到这一重大变化。尽管如此,所有支持中台概念的技术环节其实还都来自于全球IT公司、互联网企业不断更新的技术进步成果。应用场景的变化与技术细节的进步再次成为一对互为推动的力量,互为因果,相辅相成。
“大智移云物”经常被称为数字技术发展趋势的具体方向。云计算是应用环境,人工智能是应用领域,大数据则是智能化的基础,物联网是探测、收集、传输数据的手段,移动化是应用场景,上述几个方面都依赖数字技术的进一步发展和广泛应用。对于用户来说,直接接触的就是各类应用,支撑这些应用的软件开发模式和开发平台是数字化应用的关键所在。今天,一系列技术的系统性变化,到了量变到质变的时候了。
首先,软件运行环境发生了很大变化。
在1990年代,传统的软件开发模式都是基于硬件设备完成的,也就是各种类型的服务器。2005年,为了提高资源利用率,以VMWare为主流的虚拟化软件开始流行,硬件服务器开始虚拟化。2015年,出现了Docker容器。在容器场景下,应用的构建无需关注服务器,操作系统,研发和IT人员可以更聚焦于应用代码本身,软件开发、部署、运维模式发生了很大变化。
容器技术的出现,使得企业IT系统的开发、实施、运维的模式都发生了巨大的变化。基于容器化云模式下开发和运维的高度自动化,有效的支撑了敏捷开发和交付,加快系统版本的迭代速度,经常是每周发布一个版本。企业系统的交付模式正在由传统的瀑布式模式,即通过数月甚至一年的从业务蓝图设计到长周期的开发测试上线的漫长过程,逐渐向小场景快速开发上线,并不断迭代演进的模式过渡。
现在,在云计算环境下的软件应用环境是大部分应用的主要环境,云服务概念会更加普及。无论是基础设施IaaS、中间平台PaaS还是软件应用SaaS都通过服务的方式提供给客户。对不同性质的企业来说,无论是公有云、私有云还是混合云,总之云部署模式将成为常态。
其次,软件应用开发交付的模式发生变化
企业应用程序通常有客户端用户界面、服务器端应用程序和数据库三部分组成,传统模式下,某个业务系统的各种业务逻辑通常都在一个应用中运行。如果对应用程序的一小部分进行修改,则需要重建和部署整个程序。随着云计算容器技术的普及,将应用程序的进行服务解耦,即所谓的微服务化的浪潮正在迅速的由互联网领域向传统企业的IT架构渗透。
微服务架构将应用程序构建为服务套件。除了服务是可独立部署和可伸缩之外,每个服务还有一个严格的组件边界,甚至允许用不同的编程语言编写不同的服务,也可以由不同的团队来管理。
因此,微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,这些服务是围绕业务功能构建的,可以通过全自动部署机制进行独立部署,组件整合在一起来就可以构建系统。组件是可独立更换和升级的软件单元,方便安装应用后的维护操作。
微服务的特点使得软件开发和修改非常便利,版本更新和迭代速度大大加快。云原生架构通常就是使用微服务构建的,利用云服务就是利用敏捷和可扩展的组件(如容器)来提供离散和可重用的功能,这些功能集成之后可以跨越不同云之间的技术边界,进行自动化地快速迭代。
随着互联网应用领域的社会化分工越来越精细,仅提供某项功能或函数的FaaS(Function as a Service)模式也越来越多,这些专业组织利用互联网对外提供某些专业的API接口(如图像识别,语音识别,天气查询等专业服务),供其他应用调用,并按使用量付费。大量的云端专业服务,将极大的丰富企业应用可以使用的第三方资源,让这些资源可以更方便的被发现,应用和集成。
微服务架构是中台理念落地的有效支撑,通过将企业应用中可复用的功能微服务化,有效避免了各应用系统重复造轮子。用户、权限、商品、订单、流程这些通用的数据管理和交易管理功能,以服务方式在容器中运行,可以灵活的被前端应用进行集成和调用。基于这些服务可以快速构建面向不同业务需求的前台系统,并且可以快速试错调整。服务的容器化运行又可以方便的被启用,复制、停用,在系统的可伸缩性和高可用方面提供了更细粒度支持和保障。
再次,软件部署和运维管理模式也发生了变化。
传统的软件企业将开发、IT运营和质量保障分三个各自独立的部门,软件开发和部署就需要紧密的多部门协作。为了按时交付软件产品和服务,DevOps(Development和Operations的组合词)管理方式就是把开发和运维打通了,促进开发、运营和质量保障部门之间的沟通、协作与整合。
但是,微服务架构使得思维方式发生了改变,从过去的“构建一个框架运行在一台服务器上,对多个事件进行响应。”变为“构建或使用一个微服务或微功能来响应一类事件。”基于云计算的Serverless理念,让开发者不用过多考虑服务器的问题,计算资源作为服务而不是服务器。一些微功能、微服务的云计算是零收费或收费很低,有助于降低整体运营费用。
大型企业利用云厂商的计算资源、技术和服务构建私有云已经成了一种趋势,逐渐在头部企业中进行尝试。