🚀

ついにk6のメジャーバージョンがリリースされました!

に公開

概要

こんにちは、Booostのバックエンドエンジニアのma_meです。
負荷試験ツールのk6がおおよそ9年(!)による開発期間を経て、晴れてメジャーバージョン「v1.0.0」リリースを迎えました。
この記事ではメジャーバージョンを迎えて、今後の定まった方針を紹介していきます。
リリースノート
https://github.com/grafana/k6/blob/v1.0.0/release notes/v1.0.0.md

そもそもk6とは?

負荷シナリオがJS・TSで書ける、Go製の負荷計測ツールです。
そもそもk6で何が計測できるのか、という方はこちら
【k6】システムの性能評価:パフォーマンステストのガイドと目的別簡易まとめ
https://zenn.dev/ma_me/articles/8be3f8e8cb3496

k6のメジャーバージョンポリシー

今まであいまいだった各バージョン間のサポート対応について、下記の方針が打ち出されました。

  1. 安定性の保証
  2. 正式なサポート期間
  3. 今後の開発方針

1. 安定性の保証

2. 正式なサポート期間

すべてのメジャーバージョンでは、少なくとも2年間のクリティカルフィックスの対応が約束されました。
バージョンリリースの頻度は以下の通りです

バージョン種別 リリース頻度
Major(メジャー) 1年単位
Minor(マイナー) 6週間単位
Patch(パッチ) 必要であれば適宜

参考:k6 バージョンと安定性の保証について

3. 今後の開発方針

外部ベンダー向けへのサポート

k6 が公開する API の範囲が公式に定義・公開されました。
把握するにあたって、DeepWikiのアーキテクチャ図が役に立ったのでそのまま引用します(DeepWiki便利!)。
参考:High-Level Architecture
https://deepwiki.com/grafana/k6#high-level-architecture

公式の表記 DeepWiki内の表記 備考
Options & command-line interface CLI Interface(User Interface枠内) 実行コマンドやオプションなど
JavaScript interpreter JavaScript Scripts(Core Execution枠内) k6 用の Node.js やブラウザとは異なる JavaScript 実行環境
Modules Protocol Modules(Core Execution枠内) 公式リファレンス:JavaScript API
Extensions ー(なし) GitHub: grafana/k6 配下で扱う拡張機能全てが対象
例:go.k6.io/k6/js/modulesgo.k6.io/k6/output
※対象外:go.k6.io/k6/internal
Output Output System(OutPut & Control枠内) 公式から提供されているフォーマットに沿って提供されるアウトプット
(例:JSON、CSV、クラウドメトリクス、OpenTelemetry フォーマット)
Metrics Metrics Collection(Core Execution枠内) メトリクスの名前、種類、単位がこれにあたる

参考
https://grafana.com/docs/k6/latest/reference/versioning-and-stability-guarantees/#what-is-our-stable-and-supported-api-surface

以上がメジャーバージョンを迎えたk6の主要な変更点と今後の方針です。
今後は安定して1年に1度はメジャーバージョンアップが来るようなので、楽しみにしています。

余談ですが、FrankenPHPしかり、k6しかり、気になるツールがGo製が多いので、そろそろGo勉強したいです。

Booost

Discussion