近日,IPFS官方发布了Testground v0.5,强化了可靠且可重复地测试点对点(p2p)系统的能力,这是一个巨大的里程碑,有望(作为一个社区)为去中心化的未来设计p2p和分布式系统的方式带来巨大飞跃。 什么是Testground? Testground是一个用于大规模测试、基准测试和模拟分布式和p2p系统的平台。它设计为多语言且与运行时无关,可根据需要从2个实例优雅地扩展到10k个实例。 Testground旨在支持各种测试工作流程,例如实验/迭代开发、A/B测试、向后/向前兼容性测试、互操作性测试和CI工作流程。 在Testground之前,分布式测试曾用来暗示部署守护程序队列。您将通过API公开每个单独的内部组件、方法和配置参数,并通过充当伪装者的外部脚本命令和控制它们。但是在Testground中,您编写测试计划就像编写单元测试一样。 Testground方法对开发人员而言非常简单自然。因为测试计划直接调用您的内部API,并且它们利用分布式同步API与参与测试运行的其他实例进行协调。因此,测试用例变成遵循精确编排的分布式状态机。 目前,用户可以在Go语言中编写测试计划。但是为另一种语言/运行时实现Testground SDK实在是太简单了!实际上,社区正在为节点和浏览器改用TypeScript SDK。 因为真正的去中心化系统受网络状况的影响,所以Testground可以通过翻转连接,在运行时更改IP地址或设置延迟、抖动、带宽等来影响网络流量。 而且,由于并非所有测试方案都需要数千个实例,因此您可以在本地将测试计划作为可执行文件或Docker容器运行,从而在需要扩展到约300个以上实例时节省了簇集部署的开销、时间和成本。对于较大的情况,Testground开箱即用地支持Kubernetes。 为了说明上述内容,请考虑一个200实例的测试运行。使用Kubernetes,可能需要1-2分钟才能将Docker映像运送到远程注册表,安排Kubernetes作业并等待工作负载开始。使用本地Docker运行程序,该开销为零,并且运行是即时的。听起来似乎并不多,但是开发人员知道,这样的延迟会对一个人的生产力和工作流程造成上千次的削减。 最重要的是观察管道(实验性的)。测试计划可以记录有关被测系统的原始数据点或汇总指标(直方图,EWMA,计数器等),并发出任意输出资产。Testground平台将收获它们并将其用于一站式收集。 接下来会发生什么? Testground团队每两周进行一次灵活的进度冲刺。 在接下来的几周中,我们计划通过扩大整个代码库的测试覆盖率来巩固Testground的基础。我们亲切地称此阶段为“测试试验场”? 在该次测试的结尾,我们将生成v0.7的Testground Core,它将用作我们计划开发的下一个功能的管道: 分时群集部署。 与GitHub紧密集成(以便开发人员可以@mention Testground并自动测试其PR)。 更好的基于矩阵的形式以可视化测试运行结果。 请看下图规划,欢迎您提出改进建议。 背景:Testground是如何产生的 几个月以来,我们(IPFS和libp2p核心团队)一直在设计和讨论想法,以提高DHT的性能,保护我们的pubsub协议并加快内容传输。 多数讨论导致了实质性的重新设计提案,最终又回到了百万美元的问题: 我们如何在不影响实时网络的情况下进行测试? libp2p和IPFS项目的工程师倾向于采用科学方法。这是我们的DNA。我们阐明假设、收集证据、提出假设、对设计进行推测,并通过基准测试和量化其对系统的影响来对建议的更改进行迭代。 提出和合并影响核心子系统的请求并不是一件容易的事。我们努力采取坚实的步骤。然而我们缺乏能够做到这一点的工具,这正在减缓我们的进展。 合并看似健全的补丁并引起副作用或退化的风险正在恶化。微观级别的单元测试和基准测试不足以在宏观级别(具有跨越复杂网络拓扑的数十万个节点)预测或预测去中心化结构化或非结构化网络的突发行为的变化。 我们需要具备以下能力: 在数千个节点的专用网络上启动测试工作负载。 行使任意的提交或分支以获取有关其行为的指标。 对变更集A和B进行迭代,启动相同的测试计划以将结果与基准进行比较。 衡量网络对客户流失和连接问题等情况的反应。 测量节点升级对整体网络运行状况的影响。 验证旧节点和升级后的节点可以有效地互操作(避免分区)。 模拟变化的网络状况,例如IP地址更改,延迟,带宽等。 以一致、可复制的方式进行所有这些操作。 我们正在寻找现有的工具来释放我们的进度,但是找不到能够使我们做到这一点的平台。因此,我们建立了Testground。它站在Kubernetes、Docker和Redis等OSS巨头的肩膀上。我们也有以前的实验,例如InterPlanetary TestLab(IPTB)可以学习并进行迭代。 从Day Zero开始,我们意识到Testground对于更大的分布式系统和p2p社区的价值。因此,我们从一开始就使其与项目无关。 尽管是从IPFS和libp2p项目中诞生的,但Testground中的任何内容都不取决于libp2p或IPFS:总共有零个导入。您不必使用IPFS或libp2p即可从Testground中受益以测试您的p2p网络(无论是dapp,区块链还是其他p2p协议)! 我们希望Testground能像对我们一样加速你的开发和试验,并帮助您获得信心和保证,使你只需改进系统,进行承诺、公关和发布。 —- 编译者/作者:引擎矿机 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
里程碑官方启动Testgroundv0.5强化点对点系统测试能力
2020-05-07 引擎矿机 来源:区块链网络
LOADING...
相关阅读:
- 卡尔达诺凭借雪莱硬叉赢得了权力下放2020-08-03
- 波卡周报 | DOT 转账功能将于下周二进入执行阶段2020-08-03
- 区块链游戏文摘7月27日至8月2日2020-08-02
- 辉神解币:8.2比特币趋势分析2020-08-02
- 区块链上的鲜血:令牌化可以使捐赠更有效2020-08-02