更多云场景实践研究案例,点击这里:【云场景实践研究合集】联合不是简单的加法,而是无限的生态,谁会是下一个独角兽
从13年的费控到双向电表,传统的电力行业正向互联网转型,目前采用的方式是以小时为基准,对整体数据处理。面对千万级别数据量和数以百万计的高并发实时查询以及异构平台的接入,传统IOE企业架构难以应对。而本文的案例研究中,朗新科技借助阿里云的能力一一击破了电力行业向互联网转型过程中的诸多挑战。
“任何技术的进步无外乎两种驱动力:第一是社会进步发展的驱动;第二更多是个人用户对应用差异性体验驱动。对于公共行业的业务,在整体服务化、组件化的过程中,企业可依托阿里云平台的技术,结合本行业的流程构建整体快速开发的平台。同时在快速开发平台中也可以引申到平台设计、服务组建复用以及整体数据分析上再构,通过定制化软件,降低成本。”
——林海潮
朗新科技首席架构师
采用的阿里云产品
- 阿里云数据传输服务 DTS
- 阿里云分布式关系型数据库服务 DRDS
- 阿里云云数据库 RDC
- 阿里云消息队列 MQ (原ONS)
- 阿里云大数据计算服务 MaxCompute (原OPDS)
为什么使用阿里云
实现微应用需要依托云平台的扩展能力和服务体系
需要解决配置表、微量表访问比较频繁的问题
微应用间的交互通过消息事件驱动,在应用解耦的同时,满足应用扩展以及实时性的要求
需要依托阿里云的基础全面提升数据库层面和应用层面的的弹性扩展能力
关于 朗新科技
朗新科技股份有限公司创立于2003年,是一家专注于电力、燃气等公共事业行业从事信息技术研发、技术咨询服务与系统运营管理的大型股份制有限公司。公司致力于为公共事业企业提供领先高效的IT解决方案与服务,帮助企业应对市场变革与竞争挑战。朗新科技目前已为超过1.7亿的电力用户提供服务,是中国最大的公共事业行业关键业务解决方案和服务提供商之一。
传统企业IOE架构系统所面临的挑战
传统的企业系统多采用IOE架构,核心逻辑在数据库中实现,数据库是系统最为关键的部分。其处理方式基本是从客户端到应用中间件集群再到数据库叠加的SQL+存储过程;架构的存储横向扩展能力和实时快速处理能力不足;并且数据库多采用Oracle RAC,导致其扩展性有限,采用的国外的小型机服务器进一步增加成本。传统企业架构进行优化面临以下四个挑战:
(1)去中心化,将集中系统拆分成不同的节点,每个节点独有的开放性、完整法、独立性;
(2)实时处理,接收到数据后实时响应计算,一个小时完成三千万计算;
(3)高并发,数以百万计的实时查询;
(4)高可用,在高并发的情况下保持每个计算问题完整且平稳。
为什么选择阿里云?
在数据贮备到电费测算再到数据回写的整个过程的关键指标有两个:一是千万级别数据量计算与性能需求呈线性增长;二是数以百万计的高并发实时查询以及其他异构平台的接入。而基于以上去中心化、实时处理、高并发、高可用的四大传统企业IOE架构所面对的挑战,朗新科技借助阿里云的力量采取了多种应对机制,进行逐个击破。
微应用
朗新科技以阿里云平台为基础,依托云平台的扩展能力和服务体系,针对整体业务特点进行细小化的功能部署,保证微应用针对独立的业务。与偏向小颗粒度和较少代码的微服务相比,微应用偏向于业务应用逻辑以及对内部相互依赖或者关联度较高的业务继承,是组件化与服务化结合。
微应用开发简图
如上图所示,微应用开发过程首先把系统中业务功能组件化和服务化,然后将微应用整合到云平台形成统一的服务管理。在整体的服务化过程中,业务拆分时需要对业务进行梳理。整体业务流程繁多,从代码服务的角度考虑把耦合度降低,无须细分颗粒度相互之间的耦合度。微应用是将原业务应有场景切分成许多不同的小的服务,每个服务具有自身的特性,单个服务可以直接部署在系统中,单点故障不会影响整体系统的能力,提高系统的可用性。与传统的大型管理系统相比,微应用的形态呈现出功能少、体积轻,能够快速交付和敏捷响应需求变化。
分表分库
微应用提交数据交互内容时,正常的维度是以Hash和时间做分表分库,也可以从业务特色和业务特点进行拆分。原则上遵循两种方式:第一种,基于较大的表拆分到不同的小表,根据不同业务属性和业务关联程度分到不同的库;第二种,小表拆分的方式,现实中会产生大量小表如配置表、基础信息表,虽然这类表量不大,但是许多操作需要频繁的查询调用。此类情况应将小表以广播的方式同步复制到各个库当中,解决配置表、微量表访问比较频繁的问题。
多维度分表分库方式
事件驱动
每个微应用即是消息的生产者也是消费者。在整体微应用的调度中,通过ONS来驱动整体业务的串联。整体的数据是经过一小时左右的时延的数据,微应用集群和分布式消息集群在配置中心和协同组件的控制下进行数据交互。微应用间的交互通过消息事件驱动,在应用解耦的同时,满足应用扩展以及实时性的要求。
消息事件驱动过程
大数据
相对互联网企业而言,实际上用到的大数据并不是很多。系统跟外部关联特别多,单独专注于某一特定模块具有较大的局限性。所以系统要与短信系统、产业系统相连接,仅专注于中间层是不行的。上图是基于大数据技术对档案及电费数据分析处理的过程:数据库中,对动态数据进行全量同步和增量同步,生成与之对应的全量库和增量库,再通过ELT整合成统一库进行业务调度,然后计算引擎完成整体数据离线清洗、计算,再将同步库数据返回到整体业务数据库。在这里,统一库和同步库没有太大的差异,只是逻辑定义不同。通过整体思想,定义业务访问数量标准和规则,统一化数据的存储和使用方式。
基于大数据平台的数据分析流程
弹性扩展
整体依托阿里云的基础上,全面提升数据库层面和应用层面的的弹性扩展能力。数据库层面弹性扩展,采用数据路由方式,不同数据节点调用方式各异。整体应用层的弹性扩展,采用的阿里云对服务治理来解决服务调用的过程,微应用通过长连接到注册中心进行注册,在微应用调用方订阅注册中心的前提下,注册中心同样以长连接的方式通知不同的微应用调用方,微应用调用方直接调用提供方所提供的微应用,同时监控中心以短连接的方式对微应用进行监控,微应用提供方也可进行弹性扩展增加新的微应用。
弹性扩展架构
基于阿里云的架构优化
下图是基于阿里云的架构优化,正中间是集群,将传统服务拆成很多微服务。从营销系统将用户档案、电价参数等数据同步到费控数据库集群中,DTS负责数据传输,监听DRDS集群中数据变更的内容,并将变更的内容放到整体的集群里。在ONS集群中为了保证整体应用的协同,应定义出相应的消息包括测算通知消息、档案变动消息等。接下来把数据准备和数据分析传到ODPS集群中,ODPS集群把相应数据整体推送给采集系统,然后采集系统将消息推送到数据采集终端,发送到不同用户的电表上进行停电或者复电操作。
基于阿里云的架构优化
"任何技术的进步无外乎两种驱动力:第一是社会进步发展的驱动;第二更多是个人用户对应用差异性体验驱动。传统的行业在面向企业应用时同样做出了很多努力,包括整体资源统一、数据打通、以及面向定制化产品快速的开发。对用户层,随着海量数据处理的实现,成本逐渐降低。通过阿里云平台,企业可以实现从整体服务到整体业务应用服务再到整体的组建化、服务化的过程。 "
——林海潮
关于朗新科技的更多实践详情:朗新科技林海潮:企业应用的云上架构演变
原文发布时间:2016-2-1
云栖社区场景研究小组成员:贾子甲,仲浩。