十年磨一剑的华为云GES,高明在哪
本文分享自华为云社区《华为云GES:十年磨一剑,打造业界一流的云原生分布式图数据库》,作者:GES图引擎服务小图 。
1、浅谈云原生图数据库
图数据库(graph database)是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。该系统的关键概念是图,它直接将存储中的数据项,与数据节点和节点间表示关系的边的集合相关联。这些关系允许直接将存储区中的数据连接在一起,并且在许多情况下,可以通过一个操作进行检索。
图数据库强调数据之间的关系。查询图数据库中的关系很快,因为它们永久存储在数据库本身中。可以使用图数据库直观地显示关系,使其对于高度互联的数据非常有用。因此图数据库广泛应用在互联网、知识图谱、金融风控等需要挖掘深度关联关系的场景。
“到2023年,图技术将促进全球30%企业的快速决策场景化。需要图还是不需要?这已不再是个问题,一定是需要”,Gartner公司副总裁、杰出分析师Mark Beyer讲到。
云原生图数据库从名字看是从云原生和图数据库概念发展而来的。而云原生的概念通用意义上可以理解为应用以服务化或云化的方式提供给用户。此类云原生图数据库是在云基础架构之上进行构建的,图数据库组件在云基础设施之上构建、部署和分发。这种云原生属性是它相比于其他类型图数据库最大的特点。作为一种云平台,云原生图数据库以 SaaS(软件即服务,Software-as-a-Service)的形式进行分发。
2、云原生数据库与其他图数据库解决方案有什么不同?
从上图的图数据库VS图数据库on云服务器VS云原生图数据库的对比图我们可以看到:云原生图数据库因为具有即开即用、稳定可靠、管理便捷、弹性伸缩等优点,可以帮助用户减少图数据库总拥有成本(TCO)和运维工作量(O&M),用户可以将主要精力聚焦在核心业务上。
3、华为云GES:为什么受到客户的广泛认可?
华为云图引擎服务(GES)是一种基于华为云基础架构和平台的在线数据处理图数据库,提供即开即用、可扩展且完全托管的分析型图数据库服务。作为拥有自主知识产权的分布式原生图数据库和图引擎产品,提供一站式的图存储、图查询和图计算能力,支持业界标准图查询语言cypher和gremlin,同时支持30+高性能算法,覆盖多场景分析计算,具备10+图神经网络和图嵌入算法。广泛应用于互联网、政务、安平、税务、电力等行业,为客户的辅助决策、降本增效等提供专业、高效的服务。
从2013年预研到2015年GES内核Eywa研发内部立项再到现在,整十年的发展过程中,华为云GES始终保持高强度研发投入,已经硕果累累。GES同时提供与HCS8.X、HCSO配套的混合云版本。从2017年底华为云正式公测,到目前上线华为云国内站10+站点,海外新加坡、俄罗斯、阿联酋、爱尔兰、南非等站点,马电、法电等合营云站点,服务海内外几十家客户,目前呈现多点开花的局面,显示出GES强大的产品竞争力。
十年磨一剑,GES作为国内最早发布的云原生分布式图数据库,“云原生”优势主要体现在如下几个方面:
- 完全托管
GES是完全托管的在线图数据库服务,后台会为每个最终租户创建与之对应的资源租户,部署GES需要的计算、存储、网络等资源,均通过资源租户发放,用户只需通过GES提供的Portal界面或者API访问图数据库即可,无需关注图数据后台的底层资源。GES提供了7*24小时oncall,如果这些资源发生故障(比如所在的物理机故障),oncall会立即感知到并处理,整个过程用户无需操作,用户省心又安心。
针对部分用户希望感知到图数据库后台资源(比如CPU、内存、磁盘等)以及图数据库关键指标(响应时间、容量占用等)的诉求,GES针对每个图实例也对接了华为云的CES服务,用户可以在CES界面查看到GES的监控指标,并对关注的指标配置告警,一旦监控值超过阈值,可以及时通知到用户。
- 资源动态扩展
GES提供了在线对图实例进行扩容、扩副本的能力,实现资源动态扩展。
扩容操作一般发生在容量不足的场景,比如初始阶段申请了一亿规格的图实例,后期随着业务的增长需要扩容到十亿规格,可以简单通过界面点击完成,整个扩容过程业务不中断且支持从小规格一次性扩容到任意的大规格。
扩副本操作一般发生在并发性能有更高要求的场景,比如初始阶段申请了一亿规格的图实例,默认GES是提供一主一从两个副本部署方式,后期随着业务的增长对QPS有了更高的要求,可以扩容成一主多从多个副本。扩副本整个过程可以简单通过界面点击完成,整个扩副本过程中业务不中断,且支持一次性扩容多个副本。
- 版本在线升级
GES图实例的版本支持在线升级,用户只需要在界面点击即可升级到最新版本,新版本可能是新需求上线、漏洞修复(包括开源软件或者操作系统)、Bug修复等。升级过程由用户触发且不收取任何费用。
GES当前版本发布周期在1个月左右,也就是说用户的新需求最快可以1个月之内上线。GES新版本上线后,用户通过升级即可满足新需求。借助华为云内部强大的版本发布系统,针对严重阻塞用户的问题,GES能够做到24小时修复。比如2021年Log4J爆出的“核弹级”漏洞,GES在24小时之内完成了新版本上线,上线后用户快速升级即可完成漏洞修复。
- 容灾和数据高可靠
GES实例采用一主多从架构,主从切换业务不感知,使用多副本机制保障高可用。支持跨AZ容灾,单机房故障不丢数据、不中断业务,RTO秒级。
图实例支持手工备份和自动备份两种备份方式。手工备份用户可以在界面点击触发,一般用作重大变更(比如升级或者数据清空)前生成一个数据快照,如果变更问题可以及时将数据会退到该快照。自动备份是图数据库内部的行为,为数据可靠性服务。如果服务器发生宕机,GES后台会通过自动备份和写日志,快速进行数据恢复,确保数据不丢失。
GES实例支持跨AZ部署,用户只需要在发放图实例时勾选上启用跨AZ即可,无需额外费用。主从集群数据跨机房存放,实现单机房故障不丢数据。业务计算资源跨机房调度,单机房故障不中断业务。且在正常情况下,计算和数据在数据中心内部交互,减少机房间带宽消耗。
- KMS数据加密
如上面所讲,GES是完全托管的服务,用户的备份数据是存储到资源租户的OBS桶上面,针对部分用户数据密级较高的场景,GES提供了基于KMS服务的数据加密方案。
GES加密存储的客户数据包括两种:
1、客户原始数据:支持创建的元数据文件存储到OBS上时加密。
2、导入到图系统里面的数据:
(1)String类型的属性会存储到云硬盘EVS,支持对EVS加密。
(2)增量备份、全量备份会备份到OBS/HDFS,支持对增量备份和全量备份的加密。
GES提供了基于KMS服务的数据加密方案,如下图所示:
站在管理面视角:
❶租户管理员登录华为公有云后,在GES Console上申请创建加密实例;
❷ GES Service接收到创建加密实例请求后,向KMS Service申请主密钥和集群密钥,并生成数据库密钥下发给GES内核;
❸ GES业务实例在初始化时加载密钥,并加密保存。
站在数据面视角:
❹客户导入点、边数据集、Schema文件,支持这些数据存储在OBS时使用KMS加密;
❺ 若用户创建图备份,则在内存数据加密后生成备份数据并存储到OBS;若用户从备份恢复图,则从OBS下载备份数据,然后解密后加载到内存。
- 安全性
GES提供多个特性来保障租户图实例的可靠性和安全性,例如VPC、安全组、权限设置、SSL连接、手动/自动备份等,如下图所示:
-
- 网络隔离:VPC 允许租户通过配置 VPC 入站 IP 范围来控制连接图实例的 IP 地址段。GES实例运行在租户独立的 VPC 内。租户可以创建一个跨可用区的子网组,之后可以根据业务需要,将部署 GES的实例选择此子网完成,GES 在创建完实例后会为租户分配此子网的 IP 地址,用于连接GES实例。GES 实例部署在租户 VPC 后,租户可通过 VPN 使其它 VPC 能够访问实例所在 VPC,也可以在 VPC 内部创建 ECS,通过私有 IP 连接GES实例。租户可以综合运用子网和安全组的配置,来完成GES实例的隔离,提升实例的安全性。
- 认证鉴权:GES实例任何操作,都需要进行IAM认证鉴权。
- 访问控制:租户可以为不同的用户组分配不同的GES权限,包括GES Administrator、GES Super User、GES Operator权限。GES Administrator拥有GES的最高权限,可以对GES资源进行任意操作;GES Super User拥有除创建和删除GES实例以外的所有操作权限,包括GES实例的启动/停止、导入/导出,GES实例的访问等操作;GES Operator拥有GES实例的访问操作,无法进行GES实例的资源类操作。
- 存储加密:GES支持读取加密存储到OBS的数据,加密密钥由 KMS 管理。
- 备份与恢复:GES 提供自动/手动两种备份方法,执行备份后会对整个GES实例进行全量备份,这些备份数据存储在华为 OBS 桶中,当用户删除实例时,会同步删除 OBS 桶中的备份。用户也可以从已有的备份恢复到实例。
- 数据安全:用户删除 GES 实例时,存储在GES实例中的数据都会被删除,任何人都无法查看及恢复数据。
- 主机安全:GES基于华为云内部欧拉操作系统,做了多种加固,定期更新操作系统最新补丁。采用图实例升级的方式,用户可以及时修复OS漏洞。
- 细粒度权限控制:
在企业生产里面,权限控制尤为重要。例如,在公司里面,HR部门才能看到绩效、级别等信息;财务部门才肯看到账号、转账等信息;而其他信息公开,公司内所有员工都可以看到。
GES图实例提供了界面化的细粒度权限控制,可对特定Label的特定属性设置遍历(traverse)、读、写权限。适用于企业对不同部门的权限设置,并对用户组进行授权,权限模型如下图所示:
- 过载控制
过载,是服务或应用处理的请求超过了自身所能承载的能力,造成服务或应用自身处理请求时延变慢、错误率增加,或者请求失败,乃至服务中断。GES图实例内部集成了过载控制组件,提供了流控、降级、熔断等机制帮助业务实现过载保护。
GES按需地为每个图实例预置了系统CPU、系统内存、应用JVM内存、应用连接数、应用任务阻塞数等5种过载指标,确保整个系统不会被恶意或者无意的瞬时高并发容量冲垮。而且一旦发生过载,GES还可以根据用户诉求设置降级策略,确保这一异常情况下用户的核心业务核心API不受影响。
- 支持HCS、HCSO、华为云多种形态
针对不同客户对云形态的要求,GES提供 HCS、HCSO、华为云等多种云形态的版本,配套HCS8.X和HCSO 23.3.0、23.9.0等版本,方便用户选择不同场景下的云服务。