TDSQL交付要求和挑战: 快速、灵活、安全
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的投产质量。这是我们在做的事情。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?