美女裸体无遮挡永久免费视频网站
本文转载自微信公众号「匠心独运维妙维效」,作宗派据库处罚团队。转载本文请关系匠心独运维妙维效公众号。
EverDB是G行自有常识产权、与合营伙伴共研的一款基于中间件的远离式数据库产物。在远离式架构上风下完毕了数据库的可推广性,但与上风并存的是,远离式架构组件多,集群界限大,组件或节点间有着多样调用或相互依赖,使得系统相等事件的发生概率大幅攀升。
为尽早发现系统薄毛病,做出弥补雠校,咱们在远离式数据库测试中引入了迂缓工程表面。通过在系统环境中模拟故障,来细察故障的发生对系统产生的影响,以期提前发现系统潜在的问题与风险,针对性的对系统进行加固戒备,这种测试样式被称为迂缓测试。本文为世界共享基于GitLab CI的自动化迂缓测试试验。
迂缓测试技巧架构为完毕迂缓测试的敏捷性、生动性和自动化,咱们遴荐了云原生技巧有盘算推算,所有迂缓测试运转于k8s平台,使用容器化技巧Docker完毕EverDB集群的容器化部署、Chaos Mesh完毕故障注入、Argo workflow完毕迂缓测试经由编排、Prometheus+Grafana完毕监控数据汇集存储和可视化。它们在k8s上的部署及衔接关系如下图1所示。
图1 EverDB迂缓测试部署架构图
其中,Argo workflow是所有迂缓测试经由的总更始单位,非论是集群拉起已经故障注入,任何一个任务武艺都在Argo workflow中进行措施界说。Argo-server会依据咱们界说的任务经由更始k8s资源(包括job,Statefulset,Chaos等)。
自动化经由想象完毕现时,EverDB代码库托管于GitLab平台。EverDB每次发版前通过GitLab CI进行功能纪念测试。为保持技巧有盘算推算长入,咱们将迂缓测试集成到GitLab CI,由斥地人员在代码提交后自动触发试验,完毕了EverDB发版前的自动化迂缓测试。同期,有计划bug触发的偶发性,迂缓测试也被设置为周期性任务,通过叠加实验考据数据库的可靠性。
图2 EverDB迂缓测试经由想象
上图2便是EverDB的迂缓测试经由想象,完毕依托于GitLab和k8s两大平台,Chaos Mesh、Argo workflow两个枢纽技巧组件。主要包括Gitlab CI设置、EverDB集群部署、测试用例拉起、故障注入、测试论说生成和可视化追踪六个部分。
Gitlab CI设置EverDB容器化集群及Chaos Mesh故障注入等组件均嘱咐在k8s环境中,为了方便更始,咱们将CI任务的试验器(GitLab CI runner)也部署到k8s环境中,由它在k8s环境中调起测试经由。GitLab CI runner任务如下图3。
美女裸体无遮挡永久免费视频网站
图3 Gitlab CI任务经由
GitLab CI任求本体是试验了一个python剧本调起了一个迂缓测试责任流。该剧本完成的责任有四部分:
参数明白处理,读取用户在CI任务中的设定的实验参数、设置文献并明白;
责任流模板渲染,期骗第一步读取的设置参数,按照责任流模板渲染生成责任流;
责任流部署,将责任流部署到k8s平台运转;
不竭搜检责任流景色,将责任流的运转景色,收效与否反应到CI平台。
EverDB集群部署源代码提交时触发CI任务进行EverDB集群部署,包括源代码编译、制作镜像上传至镜像仓库、使用最新镜像在k8s平台上部署EverDB集群。关于迂缓测试周期性任务,则从镜像仓库中拉取最新的EverDB镜像进行部署。
图5 EverDB源码编译打包上传美女裸体无遮挡永久免费视频网站
测试用例拉起EverDB集群部署完成后,综合久久CI任务会按如实验编排有序拉起测试用例。测试用例分为功能、性能和高可用三类,通过对比EverDB在平常运转态和故障注入后运转态的各项测试方向,考据数据库对多样相等场景的处理能力和健壮性。
美女裸体无遮挡永久免费视频网站
测试用例
测试内容
压力测试
Sysbench
OLTP基准测试
数据库一致性测试
Bank
并发转账,考据测试完成后账户余额总和
Bank2
加多事务竞争度甩手的Bank测试
Pbank美女裸体无遮挡永久免费视频网站
纪录每次读写事务的操作以及复返已矣
Tpc-c
五种事务模子并发试验
数据库终止级别测试
Elle
并发读写寄存器,搜检是否违抗一致性模子
高可用测试
Hatest1-18
测试多样故障场景,考据数据库高可用性是否安妥预期
表1 测试用例表
故障注入故障注入通过调用PingCAP开源的迂缓测试器用Chaos Mesh完毕。Chaos Mesh使用Kubernetes CRD来界说Chaos对象资源,在EverDB迂缓测试中,不错径直更始这些Chaos资源,模拟直快的故障场景,也不错对这些基础Chaos资源进行编排,构造更复杂的故障场景。
图6 故障注入救助类型
而今年,我们则期望不要被公司“炒鱿鱼”就好。
据介绍,Python 语言广泛应用于科学计算等,开发者常常通过代码复用提高开发效率。但 Python 程序运行环境复杂,依赖于 Python 包、系统库和特定版本的 Python 解释器。缺少程序依赖或者依赖版本不兼容,会导致程序构建失败和运行错误。
自监督预训练在自然语言处理方面取得了惊人的成功,其基本思路中包含着掩码预测任务。前段时间,何恺明一作的论文《Masked Autoencoders Are Scalable Vision Learners》提出了一种简单实用的自监督学习方案 MAE,将 NLP 领域的掩码预测(mask-and-predict)方法用在了视觉问题上。现在来自 Facebook AI 研究院(FAIR)的研究团队又提出了一种自监督视觉预训练新方法 MaskFeat。
测试论说生成测试用例在所有测试周期内不竭运转,完毕数据库能力测试有盘算推算的同期,也会汇集测试方向数据并进行转储。测试收尾后,测试论说生成模块会进行数据汇集、分析、论说生成及存档。当今测试论说包括测试论断、环境参数和EverDB集群设置等信息,后续会跟着迂缓测试试验的深化,对已矣信息进行丰富和优化。
图 7 测试已矣汇集
可视化追踪除了输出测试论说除外,咱们也不错使用可视化的Dashboard、监控系统等器用,对所有迂缓测试过程进行及时追踪和细察。
图8 一个EverDB迂缓测试责任流示例
总结与期待EverDB通过引入迂缓测试,已在可靠性耕作上有了一定的测试效果,同期咱们对迂缓测试的改日也进行了思考与有计划。在测试推广方面,不停丰富测试用例、编排更复杂的故障场景、完善测试论说内容;通过确立迂缓实验平台使迂缓测试常态化、粗拙化;同期建立迂缓测试文化,使其在G行远离式架构转型中浮现更大的作用。