解决方案
Solution
-

星瑞格数据库应用于云计算平台

 前言 

随着近年来互联网的蓬勃发展,在社交网络、电子商务、数字城市、游戏、视频直播等大规模的互联网应用发展越来越迅猛。这些新兴的应用具有数据存储量大、业务增长速度快等特点。为了解决软硬件成本与维护的问题与大规模资源管理技术的融合与发展,2006年谷歌、亚玛逊等公司提出“云计算”的构想。也就是计算机资源服务化,它为用户屏蔽了数据中心管理、大规模数据处理、应用程序部署等问题。云计算的特点可归纳如下:

1. 弹性化服务: 服务的规模可快速伸缩,因应业务负载的动态变化调整。

2. 用户按需服务: 以服务的形式提供应用程序、数据存储、基础设施等资源,并可以根据用户需求,分配资源或自动调整。

3. 资源池化: 资源以共享资源池的方式统一管理。

4. 服务可计费: 可监控用户的资源使用量,并根据资源的使用情况计费。

星瑞格数据库除具备海量大数据处理能力外,也支持高并发、高可用特性, 同时也具备SDS, Data Sharding, 网格计算(Grid)等水平扩展特性可弹性增减资源的分配与部署,更提供了多租户管理, 方便资源监控管理与记量计费服务,也支持开发工具的多样性,可以满足云计算特性,作为云计算平台大数据库。


 云计算平台 

云计算可以按需提供弹性资源,它的表现形式是一系列服务的集合。按照提供服务的形式, 其核心服务架构大致可分为以下3层。 基础设施即服务层(infrastructure as a service,IaaS), 平台即服务层(platform as a service,PaaS)和软件即服务层(software as a service,SaaS)。

IaaS提供硬件基础设施部署服务,为用户按需提供实体或虚拟的计算、存储和网络等资源的分配与部署。在使用Iaas层服务的过程中,用户需要向Iaas层服务提供商提出基础设施的配置需求、运行于基础设施的程序代码以及相关的用户数据。由于数据中心是Iaas层的基础,因此数据中心的管理和优化问题是Iaas服务的重点。另外,为了优化硬件资源的分配,Iaas层引入了虚拟化技术, 虚拟化技术近年发展迅速, 市场上已有多种选择。数据中心为云计算提供了大规模资源。为了实现基础设施服务的按需分配,需要虚拟化技术将物理服务器拆分成若干虚拟机,以提高服务器的资源利用率,减少浪费,而且有助于服务器的负载均衡和节能。基于以上特点,虚拟化技术成为实现云计算资源池化和按需服务的基础。

PaaS是云计算应用程序运行环境,提供应用程序部署与管理服务。通过PaaS层的软件工具和开发语言,应用程序开发者只需上传程序代码和数据即可使用服务。PaaS平台不仅要实现海量数据的存储,而且要提供面向海量数据的分析处理功能。由于PaaS平台部署于大规模硬件资源上,所以海量数据的分析处理需要抽象处理过程,并要求其编程模型支持规模扩展,屏蔽底层细节并且简单有效。

SaaS层是面向云计算终端用户,提供基于互联网的软件应用服务。Saas是让用户可以通过互联网直接访问云计算平台上的应用软件, 而不需要在本地计算机上安装该应用软件"这免去了用户安装,维护,升级本地应用软件的麻烦, 用户只需对资源使用量付费,而不必考虑购置、维护等问题。

星瑞格SinoDB作为云计算平台数据库,可以满足政府,企业建构云平台服务,不论是从那个层面提供服务都可采用。

 星瑞格数据库支持云平台特性 

3.1 高可用

星瑞格SinoDB可按需服务, 打造灵活的高可用性架构。它首先由备份和恢复这些基本的实用功能开始,具有非常深入的细粒度功能实现和可扩展性,能够用于您所有的数据,甚至最小的数据子集。此外,它还增加了一些额外的功能,通过高可用性数据复制(HDR)功能创建热备份,从而创建并维护生产环境的副本,或者创建备用环境的精确副本,对其进行实时维护,当主系统出现故障无法正常工作时能够立即对其进行接管。随着产品功能的增多,可用性功能选项也随之增多,通过远程备用服务器(RSS)功能,您可以获得任意数量的持续维护的副本,无论是本地的还是远程的,都可以实现全球可用性。最后,通过共享磁盘备用服务器(SDS)功能,您可以在众多服务器之间共享位于同一网络中的数据副本,对您在存储领域的投资进行扩展,使更多的SinoDB数据库服务器可以共享访问磁盘上同样的数据副本。这些可用性解决方案甚至还能为您实现更高的价值,让您在所有查询之间对工作负载进行均衡,而不会干扰或影响其可用性结构。您可以将这些解决方案整合起来,保护您的系统在发生故障或灾难时不受影响,无论是人为故障还是自然灾害。通过SinoDB,这些解决方案能够轻松实现无缝合作。

3.2 灵活网格(Flexible Grid)

网格(Grid) 是SinoDB的新特性。网格是由分布式环境中的一组服务器组成,是一个高度可扩展的多节点的高可用性解决方案。 通过网格架构可以应用多个数据库服务器共同运作支撑云端数据库部署,充分发挥灵活的弹性扩展(Scale-out)。网格建立在ER(Enterprise Replication)基础之上,不仅能够复制DML语句,还提供了多节点之间复制DDL的方法。 网格支持在不同的硬件、操作系统和SinoDB版本上操作。网格简单易用,具有较强的自我管理能力,通过网格可以轻松监控管理位于不同物理位置的服务器,能够极大地减轻数据库管理员的维护工作。网格的工作原理是建立在ER基础之上的,ER传播的是执行结果(逻辑日志),而Grid中传播的是执行的SQL语句。



3.3 多租户

多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:在一台服务器上运行单个应用实例,为多个租户提供服务。在SaaS实施过程中,有一个显著的考量点,就是如何对应用数据进行设计,以支持多租户,而这种设计的思路,是要在数据的共享、安全隔离和性能间取得平衡。传统的应用,仅仅服务于单个租户,数据库多部署在企业内部网络环境,对于数据拥有者来说,这些数据是自己“私有”的,它符合自己所定义的全部安全标准。而在云计算时代,随着应用本身被放到云端,导致数据层也经常被公开化,但租户对数据安全性的要求,并不因之下降。同时,多租户应用在租户数量增多的情况下,会比单租户应用面临更多的性能压力。SinoDB可以在单个实例上创建多租户数据库分离给多个客户组织使用,每个租户数据, 存储空间和处理资源都是格离开的。例如,假设要为小企业提供薪酬管理服务。您可以提供使用薪酬数据库的应用程序为小企业客户提供服务,这个薪酬数据库,就可以单独配置成租户数据库提供给这个客户使用。

SinoDB多租户的优势:

  • 单一个实例中包含了多个租户

  • 可将资源(处理器/内存)指定分配到指定的租户

  • 每一个租户的数据是隔离且安全的

  • 每一个租户都有特定的存储空间

  • 按需服务, 依服务计费

  • 各自的租户只会分配到部分的软件及硬件资源

  • 特别适用于SAAS/PAAS的环境上


云计算2.jpg

3.4 分片(Sharding)

分片(sharding)是数据库分区的一种技术,它将大量数据分成更小、更快、更容易管理的部分,这些部分叫做数据碎片。碎片这个词意思就是整体的一小部分。技术上来说,分片(sharding)是水平分区的同义词。在实际操作中,这个术语常用来表示让一个大型数据库更易于管理的所有数据库分区。分片(sharding)的核心理念基于一个想法:数据库大小以及数据库上每单元时间内的交易数呈线型增长,查询数据库的响应时间(response time)以指数方式增长。分片目的就是为突破单节点数据服务器I/O能力限制,解决数据库ScaleOut水平扩展的问题。通过Sharding可以将数据按照物理位置贴合用户分布,得到更加快速的响应;操作庞然大物总是让人头疼,Sharding将数据分块,更小的数据集操作汇总能够得到更加的体验;分片使得数据分摊在各个数据节点,对其操作实现负载均衡。Sharding按方向可以分为两类。垂直分区:以表为单位,把不同的表分散到不同的数据库上,特点是规则简单,实施方便,适合业务之间耦合度低的系统。水平分区:以行为单位,将同一个表中的数据按照某种条件拆分到不同的数据库上。

SinoDB可以对表中的数据和索引进行分片,主要是为了提高应程序的效率,由于SinoDB可以并行地扫描多个磁盘上的数据,从而实现内部查询的并行操作,因此采用“分片”技术可以提高查询效率。内部查询的并行化有助于减少对一个复杂查询的响应时间。“表分片”技术与并行数据查询(PDQ)特征联系在一起使用,这样SinoDB可以分配多条线程,从所有数据分片上并行地选取数据。此外,还可以仅仅对包含“目标数据”的数据分片进行扫描。数据库Sharding通过对数据库进行水平扩展,缓解单一数据库的性能问题。具体来说,Sharding的效果是将存储了海量数据的表的数据,按某种规则切分到多个数据库服务器上。



 星瑞格应用于云平台 

4.1 某全国性连锁超市

某全国性连锁超市利用星瑞格云计算平台管理全国各城市数据库服务器, 结合各城市各个节点构建一个云端网格数据库,用户可以通过深圳节点管理操作整个网格上各城市数据库,总公司可以发布一些基本信息到各地区数据库,直接插入或异动,总公司也需要了解各地区营销状况,通过网格可以调用各区数据库数据,管理者也可以从管理节点同步维护各地区数据库。大幅降低管理维护成本。


云计算4.png


4.2 电力系统

电力系统云计算平台是由通过网络相互连接的多种设备和用户组成的一个复杂实体,云计算平台可以分为两个主要部分即云计算控制中心和被云计算平台整合的各种计算资源设备。云计算控制中心的主要功能是根据用户的请求,将用户的计算任务分成若干子任务,再动态地将各子任务通过网络分配给被云计算平台整合的计算设备,各子任务完成后,其计算结果将通过网络重新汇总到控制中心,最后再反馈给用户。此外云计算控制中心还负责将各种需要存储的数据通过网络利用分片技术分配给至数据库存储设备,并在需要时将数据从各数据库中读取出来,利用虚拟化和分片技术,上述计算和数据存储任务的调度分配过程对用户而言是完全不可见的,云计算平台通过网络与由大量传感器和其他数据采集设备组成的数据采集网络相连接,对电力系统而言,未来的数据采集网络既包括传统的SCADA系统的传感器,还可能包括PMU和安置在终端用户家中的智能电表,甚至是各种智能家电的嵌入式系统,这些装置能够提供全方位的系统信息。此外电力系统云计算平台也可以和其他的数据源,例如,区域气象数据库相互连接,以获取温度、湿度、风速、日照等数据,由这样一个大规模的网络所采集的数据量将是惊人的只有凭借云计算平台强大的计算能力才能进行存储和分析。考虑到很多电力系统分析任务对实时性要求较高,可以考虑构造专用高性能网络来连接云计算平台和数据采集网络以提高数据传输的可靠性。


云计算5.jpg



4.3 某铁道公司

某铁道公司总共有 55个站点,总营运铁道长度为 2800 公里。每个站都有一个小型数据库和维护该站的营运数据,总部数据库维护整个铁道公司的列车运营,人力资源,帐户管理,订票管理和库存管理等。总部会将属于各站点或需要发布的数据实时同步到各站数据库,各站也会实时回报各项信息,从所有55个站的信息汇总到总部数据中心。总部除了在站级执行的任务进行各种活动。所有管理相关的报告,无论是从操作部分,无论是从账目,库存,店铺,人力资源等,都在总部产生和管理组织级别的决策。此外,在总部也必需产生利润, 亏损,账表等的年度报告。

面临的挑战, 从前所有55个站的信息是在工作日结束时更新到总部数据中心服务器。因此,在营业期间的任何时间点,在总部数据中心服务器上可用的数据为前一天的信息。如果管理单位想要产生一个账户报告或想看看在当前人力资源运营状况,库存统计等,只能依据前一天数据产出,的因为现有的数据不是最新的(即当前的)。此外,由于整个铁道公司的数据是集中数据库,有系统宕机或不可用的数据的风险存在,因此,需要高可用性的解决方案。节日期间时间和在假期/假日期间,有一个峰值负载,这可能会导致较慢的响应和延迟确认。他们需要寻找一个更好的向外扩展和工作负载均衡机制。

构建一个云平台,从各站的信息的更新将会实时同步更新到中央数据库服务器。任何报告或查询任何信息(无论是运营,人力资源管理,存储,库存,客户,财务等),可以获得准确的实时数,如果查询属于各站自己的数据,在各站的数据库即可查询获得。总部数据中心也会将共用数据或需要通知该站的数据发布到各站,另外为了提升高可用性方案,将部署额外的备援服务器(HDR同城灾备服务器与RSS远程灾备服务器)作为灾害备援。


云计算6.jpg