本文首发于 Nebula Graph Community 公众号
在 #云原生# 主题分享中,来自 Nebula 云组的 Cloud 专家乔雷同大家分享云的相关知识,本文整理自该次主题直播。
云原生是什么
这里简单介绍下云原生是什么,包括 DBaaS 又是什么?它在云的整套体系内又处于一个什么样的层级?
云原生从本质上来说,是一个不断演进的技术理念。一开始并不存在云原生这一概念,它从早期的虚拟化 VM 演进到容器化,再发展到到今天的 FaaS,逐步发展成一整套体系化的事物。换而言之,云原生便是将基础设施打包在一起构建成的整套技术,而这套技术在不断地向周边延伸。可以看下云原生金字塔这幅图,IaaS 层基于硬件虚拟化提供存储、计算、网络,安全防火墙等产品;再上层是 CaaS 层,基于 Kubernetes 编排系统提供容器化产品;最上层是基于云原生理念构建的应用服务,整套组合构成了云原生概念体系。
某种技术产生一定是服务某项业务,所以我们要明白,云原生最终要服务于什么?云原生是希望更好地将业务同基础设施进行解耦,让大家更专注于业务层面的开发,无需去关心运维操作,比如:机器资源不够;流量爆发时,进行资源的扩容;流量高峰期过后进行缩容…这些常见的运维操作都是可以把它沉淀到整个基础设施体系内的。
DBaaS 是什么
DBaaS 是依托云原生技术体系内的一个概念,就是 Database as a Service。DBaaS 的理念是希望规模化我们理解的单机版数据库应用技术,使其用起来更简洁、更轻量,让用户感受到开箱即用、用完即走。虽然用户是用完即走,但 DBaaS 的平台运行也是要依托于这套云原生体系,所以我们可以把 DBaaS 依托在 PaaS 层上构建,使用容器的相关技术使数据库具备快速弹性的能力,使用硬件虚拟化技术,提升数据库的性能,这些技术组合使用作为 DBaaS 平台的基座。
Nebula Graph Cloud
下面结合 Nebula Graph 的 DBaaS 产品来直观地讲解下 DBaaS 平台应该是什么样子。
上图为 DBaaS 平台架构,用户角色分为云用户、运营人员、运维人员、开发人员。DBaaS 平台是面向多类人群的,既面向云用户,也面向运营人员、开发运维人员。平台会针对不同的用户角色呈现不同的视图。
举个例子,云用户通过简单的操作点击、选择所需规格实例之后,会有一套完整的流水线作业创建实例并初始化配置,实例就绪后用户可以登录到 Portal 进行图探索、图查询操作,但是实例如何创建、节点如何扩容、数据如何备份用户是无感知的。这里也体现了 DBaaS 概念中很重要的一点,通过 DBaaS 平台将数据库应用跟基础设施分离,用户尽可能地关注数据库层面的操作,数据库运维管理等复杂的工作全部都由 DBaaS 服务商来完成。这样,用户使用 Nebula Graph 的时候会更加方便。
Nebula Graph Cloud 实例
上图为 Nebula Graph 实例创建后,登录可查看到的视图,在左侧的菜单栏可以针对创建的实例进行数据库层面的操作,比如权限管理或者用户管理。
在上图所示的【Applications】页面,页面中罗列了社区用户比较熟悉的 3 款产品:Nebula Studio、Nebula Dashboard、Nebula Explorer,点击上图的【Open】即可登录到对应的应用连接图数据库进行操作。
如果你想更简洁地通过类似终端的方式来使用 Nebula Graph,在 Connectivity 界面我们对接了 Azure 的 VLink,你可以感受到一个直连终端的体验。
Nebula Graph Cloud 的应用
可以直观地感受到,其实在云上使用 Nebula Explorer 和本地部署一套可视化 Nebula Explorer 组件,体验并无差别。
上图为另外一个可视化产品——Nebula Dashboard 展示的监控数据大盘,可以通过数据大盘看到整个集群的机器状况,你也可以基于 Nebula Dashboard 进行简单的运维操作管理。
Nebula Graph Cloud 背后的 Operator
整套 Nebula Graph Cloud 体系基于 K8s 生态实现,通过 Nebula Operator 管理数据库产品。支持下列功能:
- 实例创建、删除
- 实例扩容、缩容
- 实例滚动升级
- 实例备份恢复(开发中)
- 实例监控、告警
- 实例故障自愈
- 实例日志查看
- 实例配置参数变更
基于上述产品规划,可将运维人员可能遇到的部署、升级问题,比如:通过 rpm 包安装了 Nebula Graph,修改配置文件之后启动失败,需要捞取日志定位问题;某个机器数据库版本过低需要升级版本…交由 Nebula Operator 自动完成,节省运维人力。目前来说,Nebula Graph Cloud 和 Nebula Operator 都处于持续迭代中,如果你有其他的产品建议可以前往:https://discuss.nebula-graph.com.cn/ 同我们交流。
Nebula Graph Cloud 背后的基础设施
为了将云服务器、网络等云端资源实现安全自动化的创建、配置和组装,这里使用了基础设施及代码(IaC)工具 。不仅仅是上图展示的 Terraform,每个云厂商都提供相对应的产品。像 Azure 的 ARM 模版,AWS 的 Cloud information,但每个云厂商的模版语言并非是通用语言,而是类似 DSL 的语言。如果要多云对接的话,可以使用 Terraform 定义成一套作业流水模板,在初始化基础设施后,再基于此搭建 DBaaS 平台。
社区用户的云交流
这里摘录了部分社区用户的提问,你可以观看视频:https://www.bilibili.com/video/BV1rR4y1T73V 或文末的视频查看本次所有的互动提问。
Nebula Graph Cloud 解决了什么问题
目前同大家见面的 Nebula Graph Cloud 其实是一个 DBaaS 平台,采用全托管模式,用户通过简单的配置在云市场(目前是 Azure)订阅服务,DBaaS 用户为用户创建一整套数据库产品,用户登陆账户即可使用图数据库 Nebula Graph。在未来规划中,会推出半托管的产品,即用户在最近的云租户下选择 Nebula 官方提供的 Nebula 模版,模版里提供了相关的数据库配置参数,通过参数来起对应的 graph、storage、meta 节点,所有相关的数据由用户拥有,可对其进行管理。
总的来说,Nebula Graph Cloud 是屏蔽同业务无关的操作,专注于业务层面的开发,繁琐的部署、运维工作交给 Nebula Graph Cloud 实现。
Nebula Graph Cloud 的未来规划
今年年底之前,会对接国内大家比较熟悉的云厂商,比如阿里云、腾讯云、华为云…,海外的话,我们也会争取在 AWS 上线 Nebula Graph Cloud。