十年磨一剑的华为云 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 等版本,方便用户选择不同场景下的云服务。
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/06c56136a71eca1ef96822b48】。文章转载请联系作者。
评论