前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PlanetScale迁移开源Vitess测试套件|从Python到Go

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

作者头像
CNCF
发布2020-06-04 16:19:54
8310
发布2020-06-04 16:19:54
举报
文章被收录于专栏:CNCF

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档