1.1 简单产品组件交付

首先咱们想讲的是TDSQL的交付挑战,咱们也是以三个方面去开展,第一个咱们遇到的挑战是咱们TDSQL产品架构所带来的特点:一是产品化不断完善带来的特点——组件多,包含领有数据库内核,工作散发、冷备核心、平台告警、性能诊断等;二是组件之间相互依赖关系比较复杂。

首先从档次上把这些组件进行划分:赤兔、监控采集、OSS、metacluster、扁鹊、onlineddl等能够划分为一个角色,叫治理节点。对业务来说,理论拜访数据库的过程是,先是负载平衡层,而后到SQL引擎层,而SQL引擎层会间接拜访底层DB,DB上会部署Agent。图中左侧列这些叫做治理节点;右侧列如冷备核心、音讯队列、多源同步等,个别划分为数据节点。而日志剖析平台其实是一个其余模块,可划分为其余的节点。

这些节点之间的依赖关系比较复杂。比方治理节点,其次要负责元数据管理,元数据包含比方以监控采集模块为外围的监控数据、以工作散发零碎为外围的工作节点数据;第二是DB模块,DB会和治理节点有一些交互——除了DB节点,还有其余的节点都会向治理节点发送监控信息;而治理节点也会下发工作,比方客户在前台进行的垂直扩容、程度扩容、主备切换等变更动作,也会到理论的DB进行交互;数据节点会向治理节点发送数据,和DB节点做一些交互……

所以其实各个组件之间的依赖关系比较复杂,这对于交付带来肯定的难处。

1.2 多场景适应性交付

第二个挑战来自于TDSQL多个场景。

TDSQL多个场景次要来源于应用TDSQL的对象是不同的,包含集体、企业、第三方平台。不同的对象应用TDSQL的需要和场景也不同。集体应用可能更想低门槛疾速上手产品。企业应用最次要是POC测试和生产场景,关注的是整个产品的性能和性能,包含高可用性、容灾能力、国产化适配等。

不同场景的需要如何高效满足?是要做多个分支去适配不同的场景,还是用一个分支去适配不同的场景?当然咱们是用一个分支去适配不同的场景。

1.3 TDSQL交付品质保障:平安、合规、多层级扫描

第三个挑战是,因为工夫的推移,负责TDSQL交付的人产生了变动。晚期TDSQL由产品研发团队、DBA同学去现场给客户做交付。产品研发团队和DBA团队,大家都是一个团队,团队内因为长期的单干协同造成了规范和品质牢靠。而随着TDSQL产品化做大做强,用户规模不断扩大当前,交付人员会发生变化。不同的交付施行方,他们的操作和应用如果不够标准化,则容易带来隐患,体现在几个方面:

第一个是平安。比如说环境的平安,咱们晓得数据库场景是对内存、CPU、硬盘、IO等能力都是要求比拟高的场景,包含对TCP的内核参数优化等这些工作都是作为潜在危险来对立思考。

第二个是监控。对整个集群、过程、机器的监控,以及主动拉起,即机器级别故障之后,疾速复原的能力,这些都要作为欠缺的体系来思考。其余比方定时工作,包含定时清理一些日志,清理一些历史数据,否则磁盘就会撑满,这在生产的环境上也是危险很大。最初是如何保障整个集群的高可用性、容灾能力;如何杜绝潜在旧版本带来的隐患,检测这些版本的破绽等方面,都是交付质量体系中须要解决的问题。

其实TDSQL交付品质服务和保障就是围绕着上述的各方面问题,实现由不同的施行人、施行方去交付TDSQL产品,都能保障TDSQL的投产品质。这是咱们在做的事件。