要約

  • 2019年5月の創設者による説明は、2つの似た計測計画が並立していること自体を最大の問題とした。互換ブリッジを優先し、旧計画を年内に読み取り専用にする目標を示した。
  • 2023年5月のOpenTelemetryの発表は、7言語でOpenCensusとの機能同等性に達したとして、大半の旧リポジトリーを7月31日に保存庫化する予定を示した。opencensus-pythonには明示的な例外が残った。

同じ配線工事を2回頼む仕組み

分散したサービスの内部を知るには、アプリケーションだけでなく利用するライブラリーも、処理の経路や計測値を記録して送り出さなければならない。OpenTracingとOpenCensusは、それぞれこの共通作業を肩代わりしようとした。設計は異なったが、協力を求める相手は重なっていた。ライブラリーの保守者は片方に対応するか、両方に対応するか、決着を待つかを迫られる。運用者は、各依存ライブラリーが下した判断を本番環境で引き受ける。

Ben SigelmanとMorgan McLeanが2019年に書いた統合の説明は、気まずい点を正面から述べた。両計画の最大の問題は2つ存在したことだった。共通化によって計測の費用を減らすはずが、2つの非協調な経路を保つ費用を生む。サービス全体のトレースは途中の1ライブラリーだけ別の方式を選んでもつながりにくい。重複の代価は会議の看板ではなく、走っているコードが払っていた。

2019年5月の統合で、新しい作業の行き先はCNCFの一計画になった。初期の運営・技術委員会にはGoogle、LightStep、Microsoft、Uberの関係者が加わった。意思決定の場はできたが、既存サービスの依存関係はその瞬間には更新されない。創設者はOpenTelemetryを両計画の次のメジャーバージョンと呼んだ。この言い方には、旧版を使う人に移行経路が要るという現実が含まれていた。

橋は後付けではなかった

旧2方式との後方互換をソフトウェアのブリッジで確保することは、統合時点の優先事項だった。古い計測コードを残しながら新しい出力経路へ移すためである。同時に責任者は、3計画が並行開発される期間を短くし、2019年末までに旧2計画を読み取り専用にしたいと述べた。これは当時の目標であって、年末にすべての利用者が乗り換えたという実績ではない。

開発が止まったリポジトリーを、サービスは翌朝も読み込む。依存ライブラリーの更新、SDKの公開、出力先の変更、計測値の比較にはそれぞれ時間がかかる。橋を最初から設計に入れたのは、運営委員会の統合と本番コードの移動が別の時計で進むことを知っていたからだ。一斉切り替えというきれいな図では、途中の障害を診断するためのデータまで途切れる。

CNCFの2021年8月の発表では、OpenTelemetryはインキュベーション段階に進み、11言語のAPIとSDK、トレースとメトリクスを扱うプロトコルが紹介された。同じ発表は、OpenTracingの正式な保存庫化と両旧計画のさらなる非推奨化も今後の作業として挙げた。統合から2年たっても、旧計画の退出は完了を祝う一行ではなかった。

2023年の案内には例外欄があった

OpenTelemetryの2023年5月のOpenCensus退場告知は具体的だ。C++、.NET、Go、Java、JavaScript、PHP、Pythonの7言語で機能同等性に達したと報告し、大半のOpenCensusリポジトリーを7月31日に保存庫化する予定を示した。ただしopencensus-pythonの一部は本番向けとしてなお推奨され、同じ扱いにはしなかった。組織図の一本の矢印は、実務では例外付きの一覧表になる。

告知はGo、Java、JavaScript、Python向けの互換ブリッジにも触れ、一部のアダプターはまだ提供前だと記した。古い計測コードからOpenTelemetryの出力機構へデータを流し、その後で旧ライブラリーを段階的に外す。さらに、新計画はOpenCensusの厳密な上位互換ではなく、移行で計測データが変わる可能性を警告した。グラフが描画され続けても、項目名や意味の連続性は別に確かめる必要がある。

保存庫化の予定日には保守の意味がある。告知によれば、7月31日後の保存対象には新機能も脆弱性修正も加わらない一方、ソースと既存パッケージは入手可能なままだ。ダウンロードできる旧コードと、誰かが面倒を見る旧コードは同じではない。Pythonの例外と橋の一覧は、その責任の境界を利用者に示した。

委員会の統合より、依存関係の引っ越しは遅い

2019年の決定は、今後の共通計測をどこで作るかという競争を終わらせた。それでも稼働中のサービスには、言語ごとの実装、更新の周期、ブリッジの品質、他者が保守する依存ライブラリーがある。4年後にOpenCensusの退場案内が必要だったことは、2019年の読み取り専用目標が失敗した証拠ではない。読み取り専用と保存庫化は違う段階だ。ただ、2023年にも具体的な移行手順と例外が必要だった事実は残る。新しい表札は早く掛かった。古い配線の取り外しはその後の仕事だった。