写点什么

TDSQL 交付要求和挑战: 快速、灵活、安全

发布于: 1 小时前

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 的投产质量。这是我们在做的事情。

用户头像

还未添加个人签名 2018.12.08 加入

还未添加个人简介

评论

发布
暂无评论
TDSQL交付要求和挑战:  快速、灵活、安全