🚀
ついにk6のメジャーバージョンがリリースされました!
概要
こんにちは、Booostのバックエンドエンジニアのma_meです。
負荷試験ツールのk6がおおよそ9年(!)による開発期間を経て、晴れてメジャーバージョン「v1.0.0」リリースを迎えました。
この記事ではメジャーバージョンを迎えて、今後の定まった方針を紹介していきます。
リリースノート
そもそもk6とは?
負荷シナリオがJS・TSで書ける、Go製の負荷計測ツールです。
そもそもk6で何が計測できるのか、という方はこちら
【k6】システムの性能評価:パフォーマンステストのガイドと目的別簡易まとめ
https://zenn.dev/ma_me/articles/8be3f8e8cb3496
k6のメジャーバージョンポリシー
今まであいまいだった各バージョン間のサポート対応について、下記の方針が打ち出されました。
- 安定性の保証
- 正式なサポート期間
- 今後の開発方針
1. 安定性の保証
- 今回のv1.0.0を機に、セマンティックバージョニングが採用されます。
そしてメジャーバージョンでのみ、破壊的変更を行うようになります。 - 今後のバージョンで非推奨になる機能に関しては、事前に非推奨警告が出されるようになります。
https://grafana.com/docs/k6/latest/reference/versioning-and-stability-guarantees/#breaking-change
2. 正式なサポート期間
すべてのメジャーバージョンでは、少なくとも2年間のクリティカルフィックスの対応が約束されました。
バージョンリリースの頻度は以下の通りです
バージョン種別 | リリース頻度 |
---|---|
Major(メジャー) | 1年単位 |
Minor(マイナー) | 6週間単位 |
Patch(パッチ) | 必要であれば適宜 |
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/modules 、go.k6.io/k6/output ※対象外: go.k6.io/k6/internal
|
Output | Output System(OutPut & Control枠内) | 公式から提供されているフォーマットに沿って提供されるアウトプット (例:JSON、CSV、クラウドメトリクス、OpenTelemetry フォーマット) |
Metrics | Metrics Collection(Core Execution枠内) | メトリクスの名前、種類、単位がこれにあたる |
以上がメジャーバージョンを迎えたk6の主要な変更点と今後の方針です。
今後は安定して1年に1度はメジャーバージョンアップが来るようなので、楽しみにしています。
余談ですが、FrankenPHPしかり、k6しかり、気になるツールがGo製が多いので、そろそろGo勉強したいです。
Discussion