专栏首页CNCFPlanetScale迁移开源Vitess测试套件|从Python到Go

PlanetScale迁移开源Vitess测试套件|从Python到Go

作者:Deepthi Sigireddi。嘉宾博客文章最初在PlanetScale的博客发表。

https://www.planetscale.com/blog/planetscale-migrates-open-source-vitess-test-suite-from-python-to-go

在过去的三个季度中,PlanetScale的团队专注于使开源Vitess易于使用和易于贡献的双重目标。这项工作的一部分是迁移所有用Python编写的集成测试到Go。

这个项目有几个原因:

  • Python测试的开发和调试非常耗时。
  • 对任何开始作为一个贡献者的人,Python测试添加额外的安装依赖。
  • 对正在使用的Python版本的支持(2.7)于2020年1月1日结束。

这是一个相当庞大的项目,需要几个人工作近四个月。该项目于2019年11月1日左右开工,2020年2月25日竣工。在39个必须迁移的文件中有197个单独的集成测试。在LOC方面,有超过24000行Python代码。

为了完成迁移,我们首先在Go中构建了一个测试框架(使用命令和测试包),它允许我们启动一个Vitess集群,并以编程方式与之交互。该框架必须支持在没有端口冲突的情况下并行运行多个测试;为所有相关流程创建不冲突的工作目录;记录足够的信息,以进行故障诊断等。一旦完成,就需要将Python测试转换为等效的Go代码。

在这个过程中,我们也能够改善Vitess的CI流水线。虽然Travis CI多年来一直为我们服务,但我们看到了转向GitHub Actions的机会。优势吗?

  • 更大的计算+内存实例类型。虽然Travis CI(以及Circle CI)将为你提供关于付费计划的更大的实例,但我们真的希望留在免费层,这样贡献者就可以使用与核心项目相同的技术和经验来运行。较大的尺寸对于Vitess非常重要,因为测试套件可以启动6个或更多的mysqld实例。
  • 没有5个并发作业的限制。我们使用Travis matrix构建的目的并不是为它们设计的——将2小时和30分钟的测试分成5个30分钟的“碎片”。这意味着我们只能有效地拥有一个并发作业,并且在高峰时期可能会有一个小时或更长时间的延迟来获得测试套件结果。我们新的GitHub Actions配置仍然使用shard,但是现在已经超过了14个shard。我们也不再被同时运行CI任务的其他开发人员阻塞。

项目的最终结果是,现在开发新的集成测试更加容易和快速。对于项目的新手来说,这也更容易开始。CI变化使我们能够更快地对拉请求进行反馈,并提高拉请求的吞吐量。

点击【阅读原文】阅读英文原文。



CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。

CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注

本文分享自微信公众号 - CNCF(lf_cncf),作者:CNCF

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用kind和GitHub Actions重建Linkerd的持续集成

    https://buoyant.io/2020/09/16/linkerds-ci-kubernetes-in-docker-github-actions/

    CNCF
  • Linkerd和服务网格接口(SMI)

    本周早些时候,微软在Kubecon欧洲发布了服务网格接口(Service Mesh Interface,SMI)。SMI是一个规范,它完全通过Kubernete...

    CNCF
  • 构建另一种服务网格:使用SMI规范的新方法

    在这篇文章中,我将通过深入研究Maesh项目背后的技术细节,探究服务网格接口(Service Mesh Interface,SMI)规范的高级概念,是什么使该项...

    CNCF
  • python如何代码集体右移

    Python中的集体右移和左移给Python这种对格式要求严格的代码带来很多方便。

    砸漏
  • 【工具】R语言学习参考图书不完全指南

    这里大部分都是英文的书。国内对于R的书籍的翻译中文几乎可以忽略的说。 1.入门级读物 R的帮助文档中提供了一些入门的读物,比如《Anintroduction t...

    小莹莹
  • Python网络爬虫-第一行代码-windows环境

    Python有强大的支持爬虫功能的库,是爬取网页数据的首选。先看看是否有Python:cmd界面执行Python

    震八方紫面昆仑侠
  • 如何用Python做词云?

    临渊羡鱼,不如退而结网。我们步步为营,从头开始帮助你用Python做出第一张词云图来。欢迎尝试哦!

    王树义
  • 关于硬科技的“新”故事

    峰会汇聚了Arm中国、云从科技、小i机器人等在内的超过三百家硬科技企业及投资机构代表共同参与,同时作为本次峰会的主办方,镁客网创始人张培青进行了开场致辞,畅谈了...

    镁客网
  • Running Python in Xcode: Step by Step第1步:安装Python 3.5第2步:找到python3第3步:创建一个Xcode项目步骤4.创建Python文件步骤5.编

    在我准备一个涉及Python编程的项目时,我需要至少掌握基本级别的Python掌握。但是,我不是交互式Python REPL的忠实粉丝:

    iOSDevLog
  • 为什么购买NVIDIA Jetson 产品不要买水货?有些门道必须要说清楚

    经常有客户问我们,淘宝有一些店的Jetson TX2开发套件都卖得比我们便宜,为什么?别的店铺可能增值税含税价格4700,甚至更低,但我们要卖到5300元。

    GPUS Lady

扫码关注云+社区

领取腾讯云代金券