乐趣区

关于数据库:云溪数据库持续集成

一、Devops 介绍
DevOps 是一个残缺的面向 IT 运维的工作流,以 IT 自动化以及继续集成(CI)、继续部署(CD)为根底,来优化程式开发、测试、零碎运维等所有环节。能够把 DevOps 看作开发(软件工程)、技术经营和品质保障(QA)三者的交加。

CI Continuous Integration 继续集成:开发人员将会频繁地向骨干提交代码,这些新提交的代码在最终合并到骨干前,须要通过编译和自动化测试流进行验证。继续集成(CI)是在源代码变更后自动检测、拉取、构建和(在大多数状况下)进行单元测试的过程。继续集成的指标是疾速确保开发人员新提交的变更是好的,并且适宜在代码库中进一步应用。CI 的流程执行和实践实际让咱们能够确定新代码和原有代码是否正确地集成在一起。

CD 个别包含继续交付 ContinuousDelivery 和继续部署 Continuous Deployment。

继续交付指实现 CI 中构建及单元测试和集成测试的自动化流程后,继续交付可主动将已验证的代码公布到存储库。为了实现高效的继续交付流程,务必要确保 CI 已内置于开发管道。继续交付的指标是领有一个可随时部署到生产环境的代码库。

继续部署指主动将生产就绪型构建版本公布到代码存储库的延长,继续部署能够主动将利用公布到生产环境。

二、云溪数据库继续集成
运行平台
浪潮云软件开发服务面向开发者提供 DevOps 相干的云服务,实现从“开发 -> 测试 -> 公布 -> 运维”全流程的研发工具撑持和一站式服务。服务即开即用,随时随地在云端实现代码托管、代码质控、流水线治理、代码编译、镜像构建、利用部署、测试、公布等性能。不便开发者疾速、牢靠的构建和交付产品,紧密联系开发和运维工作。

目前云溪数据库基于浪潮云软件开发服务创立了一条流水线,将继续集成、继续公布过程中的环节进行串联,实现从代码开发、质量检查、编译构建、利用部署、利用测试到产品公布交付的流程贯通,流水线依照用户定制的流程及工作主动执行,可随时查看流水线执行进度 / 后果 / 报告 / 日志,该流水线利用以来通过对每个成员的提交都通过自动化的构建(包含编译,部署,自动化测试)来验证,从而尽早地发现了集成谬误。缩短了交付周期,晋升了交付效率。

云溪数据库流水线

次要工具:gitlab、docker、Kubernetes、benchmarksql、零碎测试自动化测试工具(基于 python 编写)、jepsen 测试工具(基于开源 jepsen 测试工具适配)、疲劳测试工具、场景测试工具(基于 Python 编写)

次要我的项目:该条流水线蕴含了代码的语义查看、编译、单元测试、集成测试、零碎测试、一致性测试、疲劳测试、场景测试及部署。

语义查看:通过执行源码包中的脚本启动容器并调用进行语义测试。

编译:通过执行源码包中的脚本启动容器进行编译。

单元测试:通过执行源码包中的脚本启动容器进行单元测试。

集成测试:通过执行源码包中的脚本启动容器进行集成测试。

零碎测试:执行命令应用编译好的二进制文件启动一个 3 节点的数据库集群;调用自动化测试脚本对部署好的集群进行零碎测试, 测试实现后会生成 HTML 格局的测试报告;

一致性测试:

1)重新启动一个 3 节点集群,应用 benchmarksql 进行 1000 仓 3000 并发继续 3 小时的 TPCC 测试,每半个小时查看一次一致性后果,如果查看失败程序退出;测试工夫默认为 3 小时可通过命令行参数自定义设置,测试数据默认应用备份好的 store,能够通过命令行参数从新加载数据。

2)将编译好的二进制文件打包到容器中,启动 6 个容器,1 个作为管制节点,5 个作为数据节点;执行 jepsen 测试工具测试脚本执行一致性测试;执行实现后进行测试后果查看,可通过浏览器拜访具体测试后果。

疲劳测试:通过执行自动化测试程序给数据库长时间发送大量的数据库拜访申请,验证数据库系统运行的可靠性,将要害指标生成 html 测试报告,当某项指标超出阈值邮件报警告诉。

场景测试:次要针对于不同行业数据库的利用场景对数据库的不同需要,对数据库进行有针对性的测试,执行场景自动化测试程序加载各个利用场景的测试数据进行测试。

部署:执行流水线脚本将编译后的二进制打包到镜像中并推送到镜像仓库。通过 HELM 将二进制打包部署到 kubernetes 测试环境和预发环境,测试人员再进行进一步的测试工作。

退出移动版