本发明涉及电力信息化技术领域,特别涉及一种电力营销业务应用系统及其构建方法、平台。
背景技术:
目前,现有电力营销业务应用系统的结构包括自下而上分布的IT基础设施层、平台服务层和应用层。其中,IT基础设施层包括服务器、存储设备、安全设备等硬件设备以及操作系统、数据库、中间件等基础软件;平台服务层包括结构化数据平台、非结构化数据平台、统一目录平台、统一权限平台、企业业务总线、统一应用开发平台等,电力营销信息系统在此基础上开发应用功能或直接使用;应用层包括基础应用、专业应用、辅助决策,属于支撑营销业务运作的专业应用平台或系统,由国网营销部门根据业务需求并按照国网信息化建设原则进行构建。
然而,现有电力营销业务应用系统所依赖的基础设施采用集中式架构,数据集中存储模式,多采用小型机作为数据库服务器、X86服务器作为应用服务器;基础软件多采用Linux、UNIX等操作系统,Oracle数据库软件,WebLogic等中间件,采用SOA理念(SOA,即Service-Oriented Architecture,面向服务的架构)构建“烟囱式”的各个电力信息应用系统。每个信息化系统的IT基础设施之间无法直接进行共享,需通过转换才能实现数据共享,业务交互点对点或通过总线交互形式混合存在。一旦出现IT基础设施资源不足时,只能通过对设备扩容提升处理能力,而由于数据层面为集中式架构,其处理能力存在天花板,一旦出现业务处理波动情况,将无法满足稳定运行的需要。
另外,现有电力营销业务应用系统中的每个营销业务应用的结构均是单体结构。而随着国网电力营销业务的不断扩张,需求不断的增加以及电力用户量的不断增加,这种单块架构的优势已逐渐丧失,而且正面临着越来越多的挑战。一方面,随着电力营销业务的扩大,如何为电力用户提供可靠的电力营销服务,如何有效处理电力用户增多后导致并发请求数增多,导致的响应慢的问题,以及如何有效解决电力用户增多后带来的大数据量的问题等。另外一方面,随着国网电力营销业务的不断扩张,需求不断的增加,越来越多的人加入开发团队,代码库也在急剧膨胀。在这种情况下,单块架构的可维护性、灵活性在降低,而测试成本、构建成本以及维护成本却在显著增加。
与此同时,随着整个电力营销业务应用程序的功能越来越多,代码越来越复杂,构建和部署整个信息化系统的时间也会相应的增长。在现有部署流水线稳定工作的情况下,对单块架构应用程序做任何细微的修改以及代码提交,都会触发部署流水线,对整个应用程序进行代码编译、运行单元测试、代码检查、构建并生成部署包、验证功能等,这也就意味着流水线的反馈周期变长,单位时间内构建的效率变低。
其次,伴随着电力营销业务的增长,电力营销数据的增长,整个信息化系统的垂直扩展会变得越来越吃力,成本越来越高。当考虑水平扩展时,由于所有程序代码都运行在服务器上的同一个进程中,会导致应用程序的水平扩展成本非常高。例如,如果电力营销应用程序某部分的功能是内存密集型的,如统计查询类和决策分析类业务,需要缓存大量数据,而另外一部分功能是CPU密集型的,如电费计算类,需要进行大量的运算,那么每次实施水平扩展,运行该应用的服务器都必须有足够的内存和强劲的CPU来满足需求。因此,鉴于每个服务器都要提供该应用系统所需要的各种资源,基础设施的整体花费可能会非常高。当然,如果某些节点需要保持状态,如电力用户登陆后的会话信息等,更增加水平扩展的难度。
总而言之,一方面,电力营销系统代码的可维护性、扩展性、灵活性在降低;另一方面,电力营销业务信息化系统的修改成本、构建以及维护成本也在显著增加。随看电力营销业务的不断扩大,新的电力营销业务需求不断增多,需求功能的持续增加,单块架构己经很难满足电力营销业务快速变化的需要,对高并发业务需求下的横向扩展能力十分有限,同时无法按电力营销业务功能的不同IT基础设施资源要求进行区别对待。国网经营区域覆盖全国26个省(自治区、直辖市),覆盖国土面积的88%,供电人口超过11亿人,当前的电力营销业务应用系统所依赖的集中式基础架构和单体式应用架构支撑这种超大规模电力营销业务处理与业务拓展均存在很大瓶颈,无法适应当前电力营销业务的快速发展趋势。
综上所述可以看出,如何保证电力营销业务应用系统能够适应当前电力营销业务的快速发展趋势是目前亟待解决的问题。
技术实现要素:
有鉴于此,本发明的目的在于提供一种电力营销业务应用系统及其构建方法、平台,能够保证电力营销业务应用系统能够适应当前电力营销业务的快速发展趋势。其具体方案如下:
一种电力营销业务应用系统,包括SaaS云平台、PaaS云平台以及IaaS云平台;所述SaaS云平台上设有基于微服务架构构建的电力营销业务应用;所述电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集;所述微服务集中的每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务;其中,
每个电力营销微服务在启动时,均通过分布式服务总线进行服务注册,并在启动后,若需要与电力系统中的其他业务应用进行交互,则通过所述接口微服务与其他业务应用进行交互,若需要与外部交互对象进行交互,则通过所述API网关与所述外部交互对象进行交互;
其中,所述微服务架构的架构模式为具有独立开发、独立测试、独立部署和独立运行特性的架构模式。
可选的,所述分布式服务总线,具体通过采用具有容错性和高可用性的去中心化的分布式服务注册和发现机制,对每个电力营销微服务进行服务注册、服务刷新、服务发现、服务路由、服务监控、服务失败检查、节点同步、事件通知、节点监控、故障检查恢复以及负载均衡处理。
可选的,所述外部交互对象,包括外部营销应用和/或外部信息系统;
其中,所述外部营销应用包括位于电力营销PC端和电力营销移动端上的互动网站以及互动APP;所述外部信息系统包括银行信息系统、非金融机构信息系统、售电公司信息系统和直购大用户信息系统。
可选的,所述API网关,用于当所述外部营销应用访问所述微服务集中的任一电力营销微服务,则基于BFF模式,为所述外部营销应用分配与其应用类型相匹配的API。
可选的,所述IaaS云平台为利用云计算技术中具备IT资源弹性管理以及横向扩展能力的分布式基础架构,经过平台构建后得到的平台。
可选的,所述PaaS云平台为利用平台服务中的组件以及所述平台服务所具备的一键式部署功能、弹性伸缩功能、故障自愈功能、灰度发布功能和全链路监控功能,经过平台构建后得到的平台;
其中,所述平台服务中的组件包括数据处理组件、信息集成组件、应用构建组件和云服务中心组件。
可选的,所述微服务集包括电费管理类微服务、客户服务和客户关系类微服务、电能计量信息采集类微服务、综合管理类微服务,以及市场与需求侧类微服务。
本发明还公开了一种电力营销业务应用系统构建方法,包括构建电力营销业务应用系统中的SaaS云平台、PaaS云平台以及IaaS云平台;其中,构建所述SaaS云平台的过程,包括:
基于微服务架构构建所述SaaS云平台上的电力营销业务应用;
其中,所述微服务架构的架构模式为具有独立开发、独立测试、独立部署和独立运行特性的架构模式;所述电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集;所述微服务集中的每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务。
可选的,所述微服务集为在结合具体业务场景、业务实际应用热度、业务间耦合度、事务关联度、数据模型关联度、开发难易度以及技术成熟度之后进行微服务设计并进行微服务创建得到的集合。
本发明还相应公开了一种电力营销业务应用系统构建平台,包括SaaS搭建模块、PaaS搭建模块和IaaS搭建模块;其中,
所述SaaS搭建模块,具体用于基于微服务架构构建所述SaaS云平台上的电力营销业务应用;
其中,所述微服务架构的架构模式为具有独立开发、独立测试、独立部署和独立运行特性的架构模式;所述电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集;所述微服务集中的每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务。
本发明中,电力营销业务应用系统,包括SaaS云平台、PaaS云平台以及IaaS云平台;SaaS云平台上设有基于微服务架构构建的电力营销业务应用;电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集;微服务集中的每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务;其中,每个电力营销微服务在启动时,均通过分布式服务总线进行服务注册,并在启动后,若需要与电力系统中的其他业务应用进行交互,则通过接口微服务与其他业务应用进行交互,若需要与外部交互对象进行交互,则通过API网关与外部交互对象进行交互;其中,微服务架构的架构模式为具有独立开发、独立测试、独立部署和独立运行特性的架构模式。
可见,本发明中的电力营销业务应用系统包括三种云平台,分别为SaaS云平台、PaaS云平台以及IaaS云平台,其中,SaaS云平台上设有基于微服务架构构建的电力营销业务应用,该电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集,其中,每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务。由于本发明在构建电力营销业务应用时,是基于具有独立开发、独立测试、独立部署和独立运行特点的微服务架构来进行构建的,能够大幅降低开发复杂度,与此同时也降低了开发成本,并且每个电力营销微服务可以非常方便地根据自身业务需求的特点进行灵活扩展,使得具有较低的维护成本,另外,由于每个电力营销微服务的独立性较强,所以使得当某个电力营销微服务出现故障后,可以快速对其进行隔离,并将剩余的客户请求发送至其他备用的微服务上,实现高可用性,提升了系统的可靠性。综上可知,本发明可以保证电力营销业务应用系统能够适应当前电力营销业务的快速发展趋势。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种电力营销业务应用结构示意图;
图2为本发明实施例公开的一种电力营销业务应用系统结构示意图;
图3为本发明实施例公开的一种IaaS云平台结构示意图;
图4为本发明实施例公开的一种基础资源自动扩容示意图;
图5为本发明实施例公开的一种PaaS云平台结构示意图;
图6为本发明实施例公开的一种具体的电力营销业务应用框架示意图;
图7为本发明实施例公开的一种电力营销业务应用系统构建平台结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种电力营销业务应用系统,包括SaaS云平台(SaaS,即Software-as-a-Service)、PaaS云平台(PaaS,即Platform-as-a-Service)以及IaaS云平台(IaaS,即Infrastructure as a Service);SaaS云平台上设有基于微服务架构构建的电力营销业务应用;参见图1所示,该电力营销业务应用包括接口微服务11、API网关12以及包含多个电力营销微服务的微服务集13;微服务集13中的每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务;其中,
每个电力营销微服务在启动时,均通过分布式服务总线进行服务注册,并在启动后,若需要与电力系统中的其他业务应用进行交互,则通过接口微服务11与其他业务应用进行交互,若需要与外部交互对象进行交互,则通过API网关12与外部交互对象进行交互;
其中,微服务架构的架构模式为具有独立开发、独立测试、独立部署和独立运行特性的架构模式。
可见,本发明实施例中的电力营销业务应用系统包括三种云平台,分别为SaaS云平台、PaaS云平台以及IaaS云平台,其中,SaaS云平台上设有基于微服务架构构建的电力营销业务应用,该电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集,其中,每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务。由于本发明在构建电力营销业务应用时,是基于具有独立开发、独立测试、独立部署和独立运行特点的微服务架构来进行构建的,能够大幅降低开发复杂度,与此同时也降低了开发成本,并且每个电力营销微服务可以非常方便地根据自身业务需求的特点进行灵活扩展,使得具有较低的维护成本,另外,由于每个电力营销微服务的独立性较强,所以使得当某个电力营销微服务出现故障后,可以快速对其进行隔离,并将剩余的客户请求发送至其他备用的微服务上,实现高可用性,提升了系统的可靠性。综上可知,本发明实施例可以保证电力营销业务应用系统能够适应当前电力营销业务的快速发展趋势。
本发明实施例公开了一种具体的电力营销业务应用系统,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
上一实施例中,SaaS云平台上的电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集。
本实施例中,上述分布式服务总线,具体可用于通过采用具有容错性和高可用性的去中心化的分布式服务注册和发现机制,对每个电力营销微服务进行服务注册、服务刷新、服务发现、服务路由、服务监控、服务失败检查、节点同步、事件通知、节点监控、故障检查恢复以及负载均衡处理。
另外,上一实施例微服务集中的每个电力营销服务在启动之后,若需要与外部交互对象进行交互,则可通过API网关与外部交互对象进行交互。本实施例中,上述外部交互对象,具体可以包括外部营销应用和/或外部信息系统;
其中,上述外部营销应用包括位于电力营销PC端和电力营销移动端上的互动网站以及互动APP,例如,本实施例中,上述互动网站具体可以是95598网站,上述互动APP具体可以是“掌上电力”APP、“电e宝”APP等。上述外部信息系统包括银行信息系统、非金融机构信息系统、售电公司信息系统和直购大用户信息系统。
进一步的,本实施例中的API网关,用于当外部营销应用访问微服务集中的任一电力营销微服务,则基于BFF模式(BFF,即Backend for Frontend),为外部营销应用分配与其应用类型相匹配的API。
另外,上一实施例中的电力营销业务应用系统除了包括SaaS云平台之外,还包括IaaS云平台和PaaS云平台。
本实施例中,上述IaaS云平台具体可以为利用云计算技术中具备IT资源弹性管理以及横向扩展能力的分布式基础架构,经过平台构建后得到的平台。
另外,上述PaaS云平台具体可以为利用平台服务中的组件以及平台服务所具备的一键式部署功能、弹性伸缩功能、故障自愈功能、灰度发布功能和全链路监控功能,经过平台构建后得到的平台;
其中,平台服务中的组件包括数据处理组件、信息集成组件、应用构建组件和云服务中心组件。
在开发电力营销微服务时,本发明可以根据电力营销的不同基本业务进行相应的开发。优选的,本发明实施例中,上述微服务集具体可以包括电费管理类微服务、客户服务和客户关系类微服务、电能计量信息采集类微服务、综合管理类微服务,以及市场与需求侧类微服务。
参见图2所述,本发明实施例公开了一种更加具体的电力营销业务应用系统,该系统中包括SaaS云平台、PaaS云平台以及IaaS云平台。
其中,IaaS云平台上包括云操作系统及其管理的基础资源和网络传输;PaaS云平台上包括数据处理、信息集成、应用构建、云服务中心等平台服务组成;SaaS云平台上包括按照微服务架构技术构建的电力营销业务应用。
具体的,参见图3所示,IaaS云平台采用基于云计算技术的分布式基础架构。基于云计算技术的分布式基础架构主要包括弹性计算服务集群、对象存储服务集群、分布式数据计算服务集群、分布式关系型数据库服务集群等,可以支撑基于微服务架构的分布式业务应用,并由云操作系统负责计算、存储、网络等基础资源的统一调配,采用的PC服务器根据应用需求以虚拟机、容器或者物理机形式参与计算资源调度分配,同时提供分布式存储、网络虚拟化等服务。
其中,云操作系统为应用程序提供标准化运行环境,提供灵活的计算能力、存储空间和网络吞吐带宽。在基础资源中,通过虚拟化软件实现PC服务器、分布式存储、网络交换机等硬件资源的虚拟化。
基础资源是指软硬件资源,包括服务器资源、存储资源、网络资源和平台化软件资源等,按照云计算技术要求进行服务化封装,为上层业务应用提供软硬件资源服务。计算资源涵盖PC服务器,通过对计算资源的虚拟化,实现计算资源的聚合、灵活、高效和弹性扩展。存储资源是由集中式存储及分布式存储共同组成的混合型存储资源池,满足不同数据对存储资源的要求。随云计算技术的部署同步进行网络虚拟化,基于SDN技术(SDN,即Software Defined Network)可以建立灵活、开放的网络交换平台,能实现网络资源统一控制、动态调配、按需使用、应用需求快速响应。
网络传输是指国网互联网络,分为信息内网、信息外网和互联网接入。其中信息内、外网由骨干网和接入网构成,分为有线和无线两种形式。信息内网和信息外网之间通过网络安全隔离装置实现逻辑强隔离,信息外网和互联网之间通过防火墙实现保护,为上层业务应用的互联互通提供支撑。
基于云计算技术的云基础设施建设能够实现基础资源的快速灵活交付,解决系统上线部署周期长、平台支撑业务负载变化能力弱等问题,推动电力营销信息系统上线从申请设备向申请服务能力转变,平台资源从按需配置向按需供应转变,使得应用具备快速灵活交付的能力。比如,电力用电客户在电力缴费查询等阶段,当系统应用负载大幅提高时,通过云操作系统等实现根据用户访问情况自动扩展资源,提高系统的业务应用承载能力;系统应用负载降低,云操作系统自动回收空闲的基础资源,提高资源利用率。参见图4所示,在系统负载达到85%的过载情况下,云操作系统自动扩容,增加必要的虚拟资源,如计算资源等,使得系统的负载从85%迅速地下降到45%。
与此同时,可以对云资源实现更灵活的弹性伸缩管理机制:微服务中实现的功能是内存密集型的,如需要缓存大量数据,在每次实施弹性伸缩时,新分配的节点应该具有足够的内存;如果微服务中的功能需要进行大量的运算,那么新分配的节点具有强劲的CPU来满足需求。这样每次分配的云资源提供该微服务所匹配的资源类型,能够提高云资源分配的灵活性和实现更细颗粒度的资源管理能力。
参见图5所示,PaaS云平台包括数据处理组件、信息集成组件、应用构建组件、云服务中心组件等四个平台服务组件,并提供多个云服务能力。其中,各组件功能如下:
数据处理组件:数据处理包括分布式关系型数据库、大数据平台组件、统一数据访问和统一数据分析等组件,提供数据存储、计算、分析和复制等服务。
信息集成组件:包括分布式服务总线、分布式消息队列、统一权限、统一流程等组件,为适应未来超大规模的电力营销业务应用场景,对其提供更高性能、更加可靠的服务总线。
应用构建组件:包括集成开发环境、测试环境、应用装配和自动化部署,满足自主开发等模式,桌面、大屏和移动等终端类型,移动、大数据等多种技术应用的需求,为电力营销业务应用系统的开发、测试和部署提供支撑。
云服务中心组件:包括部署配置、监控调度和云控制台,将平台服务中的各公共组件提供的服务统一呈现给用户,实现用户与服务的连接;将平台服务内的不同服务组装编排起来,形成更高级的云服务能力;收集各服务的运行指标进行分析,保证云服务质量。
通过以上平台服务组件,结合云基础设施的云操作系统,平台服务为上层应用统一提供一键式部署、弹性伸缩、故障自愈、灰度发布、全链路监控等多种云服务能力。具体描述如下:
一键式部署:系统管理员通过管理控制台页面,基于模板填写创建资源的要求或者图形化拖拽方式,进行资源、应用的自动化部署,系统自动生成相应的资源实例,无需系统管理员额外的操作。电力营销业务应用通过云服务中心的服务完成应用部署,在云服务中心中通过在线编辑应用的网络拓扑图后,由云服务中心完成如下操作:自动申请基础资源,包括虚拟机、容器、存储、网络、服务接口、负载均衡等;对资源间的关联关系进行配置工作;将应用包部署到应用服务中间件并启动应用。通过统一管理操作系统、数据库、中间件、应用等介质,按照既定编排脚本,实现电力营销业务应用信息系统的自动部署,将大幅度地提升自动化运维能力。
弹性伸缩:弹性伸缩是根据电力营销业务需求和策略,自动调整其弹性计算资源的管理服务,达到优化资源组合的服务能力。在电力营销业务量上升时增加计算能力,当业务量下降时减小计算能力,以此保障业务系统的稳定性和高可用性,同时节约计算资源成本。具体的操作是,根据预定义的策略、运行状况检查和计划来自动启动或终止弹性计算实例,当电力营销业务应用获得更多用户请求时,将增加更多的服务器或增加现有服务器的大小来应对额外负载;同时,当获得的用户请求减少时,终止未充分利用的服务器或减少现有服务器的大小。其中,增加或者减少服务器是一种水平伸缩方式。增加更多机器,直到满足支撑前端请求量,多台机器形成处理集群和分布式架构,扩展性极强。增加或者减小现有服务器的大小是一种垂直伸缩方式。升级更高配置,提高服务器的处理性能,例如在服务器上增加CPU、内存或存储资源,不过由于硬件限制,扩展性有限。通过实现对基础资源的增加或回收,能够提升业务应用的性能。弹性伸缩满足基础资源按需供给和动态管理的需求,可以将物理资源和虚拟资源合理调配,避免资源供应不足导致服务中断,同时避免资源供给过量所导致的闲置资源空转、系统利用率降低。弹性伸缩也降低用户对于计算资源、储存资源的使用成本,用户按需使用资源,并通过如虚拟服务动态迁移、虚拟资源按需分配等定制化服务,降低维护成本、提高服务效率。
故障自愈:当电力营销业务应用系统出现故障后,根据预设的脚本、命令或流程对系统进行修复,使系统从故障中恢复到正常运行状态。自动检测支撑应用运行各服务实例的健康状态,如果发现某个服务实例出现故障,立即复制一个新服务实例代替原服务实例,保证服务整体的健康可用。
灰度发布:灰度发布是能够平滑过渡的一种发布方式。对于A、B两个系统,使一部分用户继续使用A,一部分用户开始使用B,然后逐步扩大范围,把所有用户都迁移到B系统上。灰度发布能够保证整体系统的稳定性,在初始发布阶段就可以发现和调整问题,支持业务服务版本的在线更新和下线,应用不间断持续运行。例如,电力缴费查询服务版本v1.1正常提供服务,所有客户请求相同版本v1.1;在发布v1.2时,电力缴费查询服务版本v1.2上线准备,通过“灰度发布引擎”发布新版v1.2到服务平台,“灰度发布引擎”根据发布策略,激活新版本服务,同时引导部分用户分流到新版v1.2,v1.1和v1.2同时对外提供服务;在下线v1.1时,两个版本共存一段时间,择机在线下线旧版v1.1,电力缴费查询服务v1.2完全替换v1.1,负责处理所有客户请求。
全链路监控:随着分布式架构的发展,系统间的系统调用日趋复杂。如果无法有效清理后端的分布式调用和依赖关系,故障界定将会很困难。利用全链路监控可以有效解决服务化之后系统面临的挑战。微服务架构中运行成百上千个服务节点,服务节点之间的调用关系错综复杂。微服务架构记录服务节点之间的调用关系、耗时、状态等关键的调用信息,收集从用户访问入口到基础硬件的各种监控数据,实现各指标数据自动关联及分析,为系统弹性伸缩、应用性能诊断和故障定位提供更精准更全面的信息。通过调用链跟踪,将一次电力营销业务调用的完整轨迹以调用链的形式展示出来,通过图形化界面看每次服务调用结果,以及故障信息,提升故障的定位效率。通过在业务日志中增加调用链ID,可以实现业务日志和调用链的动态关联。通过调用链进行快速故障定界,然后通过ID关联查询,可以快速地定位到业务日志相关信息,方便问题定位。通过对调用链调用路径的分析,可以识别应用的关键路径:应用被调用得最多的入口服务是哪些,找出服务的热点、耗时瓶颈和易故障点,评估最大的风险点,针对性改进预防风险。同时为性能优化、容量规划等提供数据支撑。
进一步的,本实施例中,SaaS云平台上电力营销业务应用的微服务集具体可以包括客户服务和客户关系类微服务、电费管理类微服务、综合管理类微服务、电能计量信息采集类微服务、以及市场与需求侧类微服务等。
按微服务架构目标设计的应用结构需要满足微服务设计理念。微服务设计核心理念为通过一系列的独立的服务共同组成系统,各个独立服务单独部署互不影响,每个服务实现对独立业务支撑,应用通过分布式方式实现通信与管理。
图6示出了本实施例中电力营销业务应用框架示意图。其中,企业门户是国网电力营销客服人员、业务人员、管理人员操作的应用和界面,主要是集中展示前端的界面组件。界面组件为用户提供交互访问界面,并直接调用电力营销微服务实现业务逻辑。其他国网的业务应用通过接口类微服务实现和电力营销业务应用的交互。外部营销应用,如互动网站、电力APP、营销移动作业APP等电力营销PC端和移动端,都需要通过API网关访问电力营销微服务并且适配PC端和移动渠道的差异性。同其他非国网的信息系统交互,如银行、非金融机构、售电公司和直购大用户的信息化系统,也是通过API网关进行交互,同时需要通过安装安全隔离装置和各自区域的前置机等安全防护措施保障整个电力营销业务应用系统的绝对安全。电力营销微服务,如抄表管理类、核算管理类、收费账务类等等,都通过分布式服务总线进行注册和发现,并访问对应的数据库。
本实施例中,每个微服务不仅会被其它的微服务调用,也会被其它的应用或系统来调用,但是不是所有的微服务都会被其它的应用或系统调用。因此有必要通过API网关作为对外的统一接口来屏蔽其它应用或系统对众多微服务的直接访问。API网关是对外提供的接口,作为规范定义和公开,是对微服务最直接的消费者,它和微服务的关系是,微服务在启动时进行服务注册,API网关作为特殊的微服务也需要进行访问注册。API网关的一个最大好处是封装服务群内部结构,也就是说只有API网关是对外的承诺,其内部微服务的接口及部署关系都可以进行调整而不影响从外部的访问。
当微服务被多种外部应用访问时,如不同的移动操作系统和PC端,为适应在不同类型应用中给予用户更好的体验,一般采用BFF模式,为不同的前端适配不同用户体验的专用API层,API网关将根据前端应用的类型自动匹配边界服务层中的相应的API。当静态内容多而且访问并发高的情况,通常是把静态内容与动态内容分离,把静态内容分离到页面服务器上,再通过部署在前面的反向代理的路由,把对Web资源的请求和API的调用分开到页面服务器上或API网关上。
微服务通过分布式服务总线实现微服务的注册、发现和路由等。分布式服务总线采用具有容错性和高可用性的去中心化的分布式服务注册和发现机制,不需维护一个高可用的服务注册中心,而是将其分散到集群中的每个节点。微服务注册和发现机制提供服务注册、服务刷新、服务发现、服务路由、服务监控、服务失败检查、节点同步、节点控制、事件通知、节点监控、故障检查恢复、负载均衡等功能。
本实施例中,电力营销业务应用中微服务架构的主要特点是:开发简单:一个微服务只针对其中一个业务进行开发,开发复杂度低;技术框架选择灵活:技术框架的选择可以多种多样,不受限制;服务独立无依赖:微服务部署不依赖其他微服务,自身更新不影响其他微服务;独立按需扩展:解耦后的微服务可以根据自身业务需求的特点进行横向与纵向的灵活扩展;可用性高:微服务组成的系统可用性由于分散到具体的业务功能其可用性随着节点的倍数增加,出现故障后的切换能力大幅度提高,可以更灵活的实效高可用。
例如,当出现大用户访问时,微服务架构支持快速增加服务节点分担压力。当某些服务节点出现故障时,分布式服务架构快速隔离故障节点,并将客户请求自动分发到健康的服务节点上。微服务之间调用是无中心代理地调用其他微服务,当被调用微服务失败后,主动选择其他可用微服务。
本实施例中,微服务架构将一个应用设计为多个独立的、具有业务属性的服务,每个服务运行在不同的进程中,服务与服务之间通过轻量级的通信机制互相协作、互相配合,从而为终端用户提供业务价值。同时,每个服务可以根据业务逻辑,采用不同的语言、开发框架、工具以及存储技术来解决业务问题,一种独立开发、独立测试、独立部署、独立运行的高度自治的架构模式。
结合电力营销业务应用本身,微服务的设计方法需要根据具体业务场景、业务实际应用热度、业务间耦合度、事务关联度、数据模型关联度、开发难易度、技术成熟度等多个层面综合考虑,具体的设计策略和方法如下:
优选的,本实施例中,可以对电力营销业务中热点和核心功能可以设计为微服务,如电费计算、收费账务、用电采集等基本业务,增强其水平扩展能力和业务处理能力,避免非核心功能异常时对其造成的影响。
进一步的,本实施例中,对于非热点或者相对封闭和独立的功能(也即非核心功能,与外界无交互的功能),可以按单体模块化应用的思路去设计和开发,同时通过聚合服务组装基础服务,面向前端展现的灵活服务交付。
进一步的,本实施例也可以将跨业务域应用的服务交互设计为微服务,如同财务管控、电力交易、运营监控等其他业务应用系统之间的交互。
进一步的,本实施例也可以将向外部提供的服务设计为微服务,并通过API网关对外提供服务,保障电力营销服务的安全性和隔离,如互动网站、移动应用、以及和外部系统的接口(银行系统、非金融机构、售电公司、直购大用户等)。
进一步的,本实施例也可以将电力营销中的主数据设计、共享数据、跨数据库访问等数据处理转换成系列基础服务。
进一步的,本实施例也可以将内存密集型(如统计查询类业务)和CPU密集型(如电费计算类业务)的服务设计为不同的微服务。
另外,本实施例中,在微服务设计中应尽量避免分布式事务处理的发生。
进一步的,本发明实施例还公开了一种电力营销业务应用系统构建方法,包括构建电力营销业务应用系统中的SaaS云平台、PaaS云平台以及IaaS云平台;其中,构建SaaS云平台的过程,包括:
基于微服务架构构建SaaS云平台上的电力营销业务应用;
其中,微服务架构的架构模式为具有独立开发、独立测试、独立部署和独立运行特性的架构模式;电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集;微服务集中的每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务。
本实施例,上述微服务集具体为在结合具体业务场景、业务实际应用热度、业务间耦合度、事务关联度、数据模型关联度、开发难易度以及技术成熟度之后进行微服务设计并进行微服务创建得到的集合。
另外,关于上述电力营销业务应用系统构建方法更加具体的构建过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本发明实施例中的电力营销业务应用系统包括三种云平台,分别为SaaS云平台、PaaS云平台以及IaaS云平台,其中,SaaS云平台上设有基于微服务架构构建的电力营销业务应用,该电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集,其中,每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务。由于本发明在构建电力营销业务应用时,是基于具有独立开发、独立测试、独立部署和独立运行特点的微服务架构来进行构建的,能够大幅降低开发复杂度,与此同时也降低了开发成本,并且每个电力营销微服务可以非常方便地根据自身业务需求的特点进行灵活扩展,使得具有较低的维护成本,另外,由于每个电力营销微服务的独立性较强,所以使得当某个电力营销微服务出现故障后,可以快速对其进行隔离,并将剩余的客户请求发送至其他备用的微服务上,实现高可用性,提升了系统的可靠性。综上可知,本发明实施例可以保证电力营销业务应用系统能够适应当前电力营销业务的快速发展趋势。
相应的,本发明实施例公开了一种电力营销业务应用系统构建平台,参见图7所示,该平台包括SaaS搭建模块21、PaaS搭建模块22和IaaS搭建模块23;上述SaaS搭建模块21、PaaS搭建模块22和IaaS搭建模块23分别用于搭建电力营销业务应用系统中的SaaS云平台、PaaS云平台和IaaS云平台。其中,
SaaS搭建模块21,具体用于基于微服务架构构建SaaS云平台上的电力营销业务应用;
其中,微服务架构的架构模式为具有独立开发、独立测试、独立部署和独立运行特性的架构模式;电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集;微服务集中的每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务。
另外,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本发明实施例中的电力营销业务应用系统包括三种云平台,分别为SaaS云平台、PaaS云平台以及IaaS云平台,其中,SaaS云平台上设有基于微服务架构构建的电力营销业务应用,该电力营销业务应用包括接口微服务、API网关以及包含多个电力营销微服务的微服务集,其中,每个电力营销微服务与电力营销中相应的一个基本业务唯一对应,并且,任一个电力营销微服务均为对相应的基本业务进行微服务开发后得到的微服务。由于本发明在构建电力营销业务应用时,是基于具有独立开发、独立测试、独立部署和独立运行特点的微服务架构来进行构建的,能够大幅降低开发复杂度,与此同时也降低了开发成本,并且每个电力营销微服务可以非常方便地根据自身业务需求的特点进行灵活扩展,使得具有较低的维护成本,另外,由于每个电力营销微服务的独立性较强,所以使得当某个电力营销微服务出现故障后,可以快速对其进行隔离,并将剩余的客户请求发送至其他备用的微服务上,实现高可用性,提升了系统的可靠性。综上可知,本发明实施例可以保证电力营销业务应用系统能够适应当前电力营销业务的快速发展趋势。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种电力营销业务应用系统及其构建方法、平台进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。