开源负载影响服务 K6 的 CEO Robin Gustafsson 加入了 Ben Rometsch,他是开源特性标记产品 Flagsmith 的 CEO,参加了 开源的工艺 播客的第 8 集。 他们的对话提供了关于 K6 的作用、软件的开发方式以及该项目在此过程中做出的决策的有趣见解。
K6 提供负载测试服务,这意味着它可以帮助识别软件系统(如网站、Web 应用程序、API 和微服务)中的可靠性和可伸缩性问题。 换句话说,可以对 K6 进行编程以测试需要测试的任何内容,从而识别由于流量增加和超载而导致的潜在问题。
K6 分为两个实体 - 一个开源负载测试项目和一个商业软件即服务 (SaaS) 产品,该产品为付费客户提供自定义负载测试服务。
K6 的诞生
K6背后的公司于 2000 年成立,最初是一家专门从事大型多人在线游戏的游戏开发工作室,但(就像 Slack 一样)转向了网络相关产品。
2008 年,该公司进入网络监控领域,为许多不同的公司和组织提供咨询服务,其中包括该公司所在的瑞典的大型政府机构。 创始人很快意识到对基于 SaaS 的负载测试产品的需求,几年前,他们开始开发 K6。
K6 诞生于 AWS 推出前后,并成为早期的采用者,利用了 Amazon 计算和数据中心的弹性。
从专有到接近开源
最初,该软件是 100% 专有的,因为它是一个封闭的 SaaS 产品; 开源甚至不在考虑范围内。
但随着时间的推移,企业开始采用不同的质量保证和测试方法。 K6 研究了如何将产品与持续集成 (CI) 工作流程集成到自动化管道中。 该团队决定开放部分技术将使公司更容易集成负载测试、增加 K6 的用户群,并将一些开源用户转化为付费客户。
迈向开源
客户的反馈表明,他们更喜欢开源解决方案,以帮助他们避免被锁定在某项技术中。 因此,在 2016 年,K6 团队决定将负载测试工具转向开源模式,并通过云创建商业服务,提供基础设施管理,包括负载测试、存储和结果演示。 事实证明,这是一项有用且成功的服务,尤其是对于高流量客户,他们在每次负载测试中都有大量数据点。
在 K6 之前,该团队致力于用 C 编写并用 Lua 编写脚本的专有测试产品。 最终,该团队决定迁移到一种他们认为会吸引最多贡献者的语言,并且他们认为正确的选择是 Go 或 Rust。 在调查了 DevOps 工具库之后,他们发现许多流行的工具(例如 HashiCorp 的工具)都是用 Go 编写的。 因此,K6 用 Go 编写脚本。
最初,该团队试图重用 C 程序的一些编码和结构,但他们很快发现 Go 完全是另一种东西。 此外,将原始 Lua 脚本与 JavaScript 联系起来也存在问题。 因此,该团队放弃了第一次迭代并从头开始。
到 2017 年 2 月,K6 的基本开源版本已准备就绪,开发人员将其推送到 GitHub。 这是一个早期版本,但它功能齐全,可以执行负载测试任务。 早期采用者提供了有价值的反馈,这有助于 K6 专注于他们认为的主要价值:消除管理基础设施的负担,而不是流量生成。 K6 允许客户在其终端中输入命令,K6 开发团队启动基础设施,收集千兆字节的指标,并将其以易于理解的图表和图形呈现。 这比企业尝试自行管理数百台云服务器更容易、更快、更方便。
衡量成功
数据隐私和跟踪是一个棘手的问题,它影响着许多软件服务提供商。 K6 决定跟踪测试运行的总数,而不是单独的安装以及它们的使用方式。 Robin 说,他们决定收集尽可能少的数据,因为更多的数据会增加公司的责任。 缺点是他们无法回答投资者关于开源项目有多少安装或用户的问题,因为他们不知道。 相反,他们提供测试运行遥测数据,这些数据是有价值的信息,而不会过于侵入。
监控项目成功的另一种方法是密切关注其 GitHub 存储库。 许多人来到 K6 存储库,查看代码,使用开源构建运行试用版,并在几周或几个月后尝试 SaaS 产品。 事实上,GitHub 星似乎有助于人们以后成为付费客户。 K6 专注于与开发人员建立关系,然后由开发人员将 K6 带到他们工作的组织,而不是依赖传统营销。
值得注意的是,K6 云服务使用完全相同的开源二进制文件,而不是自定义二进制文件。 换句话说,如果您想使用自己的基础设施运行自己的服务,则可以使用与 K6 SaaS 使用的相同可执行文件来完成。 这是只有开源才能提供的强大功能:您可以付费让 K6 团队为您提供便利,也可以编译自己的可执行文件并构建自己的基础设施以满足特殊和定制的需求。
要全面了解 K6 在竞争激烈的 DevOps 工具领域的发展历程,请查看完整播客一集。
评论已关闭。