TDSQL自动交付方案( 全球灵活部署,最快9分钟)
自动化交付方案规划
文章图片
TDSQL是基于一个分支来实现多场景、复杂关系下的自动化交付的,其实也可以说是基于三个分支去做的——TDSQL内核包,当前有三个分支:基于CPU的多分支进行发布,当前支持X86、arm、power。TDSQL对客户的发布包中,一个包自动集成了不同CPU版本的TDSQL packet——以ansible组件为基础,加上了条件检测、操作系统调优、环境依赖的解决、安全规范、兼容性问题,是TDSQL标准发布包,可针对于客户不同的场景和不同的环境做适配。
文章图片
TDSQL的组件分为四个角色,快速交付TDSQL集群,打个比方说就是把不同的鸡蛋放到不同的篮子里。鸡蛋是指这些组件;篮子就是我们准备的机器,可以是虚拟机,也可以是物理机。
首先个人体验的环境:个人体验环境更注重的是较低门槛,在这里我们只需要一台虚拟机的配置就可以达到目的。然后可以把管理节点、DB节点、数据节点和其他的节点都部署在这台机器上。当然在体验的环境下,数据节点和其他的节点这两个功能可以不进行部署。
测试环境:该环境下注重的是性能、功能。首先从管理节点来看,管理节点提供的是元数据的管理和任务的分发功能,要求的是稳定性和容灾能力。在测试环境可以稍微弱化这个要求,比如可以准备一台或者三台虚拟机、配置4C/8G普通磁盘;在测试环境下要做DB节点的话,要考虑到TDSQL的性能问题,这里推荐使用物理机;进行性能测试的时候要求一定是SSD盘,否则性能数据没有任何参考性——这也是由数据库的场景决定的,因为SSD和普通的磁盘,一方面主要表现在随机读写能力上的差距会比较大;数据节点和其他的节点方面,如果有一些客户对测试的功能要求没有那么强,就可以不部署这些节点的功能,而如果想体验完整的TDSQL的功能,则需要准备这些机器,以体验完整的TDSQL的功能;如要部署数据节点,可以选择一台机器或者三台虚拟机,以及准备较大容量的磁盘做数据节点;其他的节点,比如负载均衡和日志分析平台,TDSQL的负载均衡比较灵活,位于SQL引擎层上的上一层,这里推荐开源的LVS,当然也有很多客户会使用F5。最后,以上环境我们的推荐是部署两节点来实现容灾能力。总体而言,为了保证测试的性能,测试环境要求最多的是DB节点模块。
生产环境:生产环境中要求管理节点可以部署在三台或者五台虚拟机,但最好是跨三个机房,比如说“1+1+1”的模式或者“2+2+1”的模式,因为元数据集群是基于多数选举的机制来保障高可用,如果只有两个机房则会失去了本身容灾的意义,因此我们建议生产环境中部署三个机房;DB节点生产环境更推荐的是NVME接口的SSD,因为传统的SSD和NVME的SSD在接口性能上会有比较大的差距,而数量上推荐的是3*N台——事实上这个要去评估生产环境TDSQL集群的数据量,TDSQL是一个分布式数据库,数据量级可以根据用户机器数量实现水平拓展。
举个例子假设客户有3T数据,如果单台物理机是1T、一个set内做的是一主两备三个节点,我们此时需要三个set,三个set可以承担3T数据量,同时会有两个副本的冗余,DB节点的这些数就需要9台这样的机器,这三个set会组成group shard;数据节点的机器也是推荐物理机,同时在生产环境需要考虑容灾能力,因此推荐是三台机器以上。此外,需要一个高性能磁盘来保证回档和备份的效率;最后,访问链路上接入层是非常重要的一层,我们强烈推荐物理机来提高稳定性。
TDSQL自动化交付特征与要求
文章图片
在TDSQL真正交付过程中,为了保证交付质量,结合金融级场景的安全合规、高可用容灾考虑,我们沉淀出一些基本要求和特性:
网络:离线部署无外网依赖,机器互通;
存储:支持单磁盘、多磁盘和raid;
冷备中心:支持hdfs和挂载式分布式存储(如ceph);
机器分布:支持跨机架和跨机房上架服务器,支持多种机器分布模式下的高可用容灾;
CPU:在国产化趋势下,目前机器CPU除了适配x86,还包括arm、power ,而且首要推荐以上其中一款;
操作系统:适配支持centos、ubuntu、以及包括国产化操作系统在内的诸多主流操作系统;
在交付过程中我们只要理清楚如何把鸡蛋放到对应的篮子里即可实现自动化交付:我们先选出篮子,一组物理机就是一个篮子,随之把一组的组件DB节点放到这个篮子里。
灵活交付
当然这其中有很多细节,客户要做的,是自由决定模块的机器分布和集群规模,TDSQL可以通过模块之间的数量差异,自适应地做出单点方案和多节点高可用容灾方案。这个过程用户在操作上是无感知的。举个例子,比如TDSQL是支持HDFS作为冷备中心,如果HDFS选的是一个节点,系统会做一个HDFS的单点方案。如果是三节点的配置规划,它会自动感知到要做的是一个高可用容灾方案。HDFS用的高可用容灾方案是基于QJM的方式。
简单高效:整个部署过程最快仅需9分钟
做完部署规划,第二件事情是解决各个组件之间的一些关系,包括兼容性等问题。举个例子,如果部署的TDSQL环境是基于ARM国产服务器的操作系统的国产化环境。我们如何通过一个交付物料包去适配不同的环境?其实秘密就在这个配置文件里:
用户无需关注TDSQL较为复杂的各模块的互相依赖和配置管理问题,只需要根据实际,填写变量文件配置即可;
用户填写一个机器规格配置文件、一个变量配置文件,填写后可以适配操作系统和CPU实现一键自动化交付
操作简单用户可独立完成,自动化部署命令可重复执行,在北京信通院机构现场对TDSQL产品化的测试显示,整个部署过程最快仅需9分钟
适配与集成:国产化、全栈式
【TDSQL自动交付方案( 全球灵活部署,最快9分钟)】
文章图片
当前国产化已经成为一个趋势,TDSQL在国产化适配方面也做了很多工作,从底层的服务器到存储器、操作系统、CPU、行业软件、数据库软件等,都在相关部门指导下进行了与各个厂商合作实现从下层到上层全方位的国产化适配。在国产化的浪潮下,TDSQL作为一个腾讯自研分布式数据库,我们也是义不容辞的担当了国产化的责任。包括腾讯内部的操作系统tlinux,以及中标麒麟、银河麒麟、UOS等主流国产化操作系统,TDSQL都完成了适配。除了适配全系国产操作系统,TDSQL同时已相继完成对全系国产芯片,全系列国产服务器等的兼容适配工作。而在完成适配工作的同时,腾讯也提供了对应的技术服务,帮助行业用户更好地迁移到国产基础技术生态当中。这些是我们国产化方面的工作。
技术服务生态方面,TDSQL不仅可作为一个独立发布的产品,在TDSQL发展的历程中,也被其他很多平台厂商和合作伙伴接纳,包括腾讯内部的TCE、Tstack、MDB架构等。TCE是腾讯云金融级平台,TDSQL和TCE在部署方案、告警、用户权限等等各种维度和TCE进行了深度的集成,可为金融政务机构提供全方位的PaaS基础技术服务,在完成高性能的分布式架构转型升级的同时保障金融级稳定高可用。除了内部的平台,TDSQL许多合作伙伴的行业解决方案中也集成了TDSQL,把TDSQL的能力输入到他们自己的平台。
安全保障:秒级监测
文章图片
TDSQL在发展中对交付场景做了许多优化:
条件检测:首先会自动对规划的TDSQL集群下的所有机器做前置检测,包括机器时间同步、时区一致、端口占用、系统默认sh、机器规格等做检;
环境优化:针对关系型数据库场景,对系统50处左右进行针对性调优,并解决一些基础的依赖;
机器秒级监控:大部分的监控平台都是基于分钟级的,对于金融级数据库这种敏感场景,分钟级的监控是不够的,所以我们针对这样的场景提供了秒级监控,包括针对机器的IO、CPU、网络、内存等多个维度。
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 使用composer自动加载类文件
- 人脸识别|【人脸识别系列】| 实现自动化妆
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- win7删除新建不自动刷新
- 浅析(成人情趣用品智能无人自动售货机是新零售的下一个风口吗())
- Java代码辅助效率工具Lombok(注解|Java代码辅助效率工具Lombok(注解,自动生成代码)
- Java+Selenium|Java+Selenium Web UI自动化测试的一些小总结
- 关于自动程序的思考
- Jenkins自动化部署-前端篇|Jenkins自动化部署-前端篇 (四)