Uberは、オープンソースのコード駆動型ワークフローオーケストレーションプラットフォーム「Cadence」の新バージョン「Cadence v1.0.0」のリリースを発表した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Uberは2023年6月22日(米国時間)、「Cadence」の新バージョン「Cadence v1.0.0」のリリースを発表した。Cadenceはエンジニアがワークフローを大規模に簡単に構築および管理できるオープンソースのプラットフォームだ。同社が6年前から開発し、Uberを始めDoorDash、HashiCorp、Coinbaseなどの企業で1000を超えるサービスに利用されている。複雑なシナリオを処理するためにシームレスに拡張でき、開発者が選択したネイティブプログラミング言語を使ったワークフローの構築も可能だ。
Cadenceはオープンソースのコード駆動型ワークフローオーケストレーションプラットフォームだ。
従来、ワークフローはタスクの順序と依存関係を定義するためにDSL(ドメイン固有言語)や設定ファイル(configs)で記述されてきた。この方法はワークフローオーケストレーションを簡素化する一方で、ユーザーがワークフローで行えることを制限し、DSLや設定が複雑化して実用的でなくなることがあった。ユースケースや複雑性の増大により、ワークフローにネイティブなプログラミング言語を使用してプログラムとして自由に記述する必要が生じ、Cadenceワークフローが登場した。
Cadenceワークフローは、ネイティブのプログラミング言語を使用して構築されるプログラム。Cadence APIにより、純粋なソフトウェアを書く場合のような制約や変更なしに記述できる。Cadenceワークフローは、ワークフローとプログラムの間をつなぎ、プログラムを簡単にスケーリングできる。また、ダウンタイムを最小限に抑え、信頼性のあるスケーラブルなトランザクショナルな処理が可能で、耐障害性を持つこともできる。また、外部との相互作用のためのAPI、監視可能性のためのメトリクス、検査のためのユーザーインタフェースを提供する。
開発者はCadenceを使うことで次の2つのことが可能になる。
このサービスではコーディングとテスト以外のプロセスは共通である。Cadenceは共通部分の自動化を達成した。
Cadenceはリリースから6年を超えている。これまでのリリース形式は「v0.x.x」だったが、機能セット、規模、堅牢(けんろう)性で設定したマイルストーンに到達したためv1としてリリースした。
Cadenceが提供する機能の一部を紹介する。
Cadenceは多くの企業で使用されており、Uberだけでも月間120億回以上、2700億アクションを実行している。
Uberでは、T0(最も重要度の高いサービス)からT5サービスまで、1000以上のサービスを動かしている。長時間のワークフロー、同期インタラクション、マイクロサービスオーケストレーション、バッチ処理、分散クーロン、分散シングルトン、データパイプライン、モデルトレーニング、その他多くのアプリケーションに使用されており、数年にわたって前年比100%の成長を維持している。
Cadenceは規模の拡大とともに、動作面でも99.9%の可用性の保証に加えて運用コストの削減という目標を掲げ、2022年を信頼性の年としてUberは投資を行った。「その結果、運用負荷が軽減されるとともに、全ての面での改善がなされ、Cadenceはv1リリースに十分な成熟を遂げることができた」(Uber)
今後Uberはv2ブランチでより現代的なエクスペリエンスを提供する意向を示している。これまでCadenceリリースでの変更は全て下位互換性があり、今後のv1.xxリリースでもこれを維持する予定だ。しかし、下位互換できない基本的な変更とAPIの変更に関して、v1からアップグレードする方法を提供するとしている。
Copyright © ITmedia, Inc. All Rights Reserved.