Uber、ワークフロープラットフォームCadence v1.0.0を発表 その機能は?:スケールと信頼性を追求し構築
Uberは、オープンソースのコード駆動型ワークフローオーケストレーションプラットフォーム「Cadence」の新バージョン「Cadence v1.0.0」のリリースを発表した。
Uberは2023年6月22日(米国時間)、「Cadence」の新バージョン「Cadence v1.0.0」のリリースを発表した。Cadenceはエンジニアがワークフローを大規模に簡単に構築および管理できるオープンソースのプラットフォームだ。同社が6年前から開発し、Uberを始めDoorDash、HashiCorp、Coinbaseなどの企業で1000を超えるサービスに利用されている。複雑なシナリオを処理するためにシームレスに拡張でき、開発者が選択したネイティブプログラミング言語を使ったワークフローの構築も可能だ。
Cadenceとは?
Cadenceはオープンソースのコード駆動型ワークフローオーケストレーションプラットフォームだ。
従来、ワークフローはタスクの順序と依存関係を定義するためにDSL(ドメイン固有言語)や設定ファイル(configs)で記述されてきた。この方法はワークフローオーケストレーションを簡素化する一方で、ユーザーがワークフローで行えることを制限し、DSLや設定が複雑化して実用的でなくなることがあった。ユースケースや複雑性の増大により、ワークフローにネイティブなプログラミング言語を使用してプログラムとして自由に記述する必要が生じ、Cadenceワークフローが登場した。
Cadenceワークフローは、ネイティブのプログラミング言語を使用して構築されるプログラム。Cadence APIにより、純粋なソフトウェアを書く場合のような制約や変更なしに記述できる。Cadenceワークフローは、ワークフローとプログラムの間をつなぎ、プログラムを簡単にスケーリングできる。また、ダウンタイムを最小限に抑え、信頼性のあるスケーラブルなトランザクショナルな処理が可能で、耐障害性を持つこともできる。また、外部との相互作用のためのAPI、監視可能性のためのメトリクス、検査のためのユーザーインタフェースを提供する。
開発者はCadenceを使うことで次の2つのことが可能になる。
- あらゆる規模で機能するサービスを作成する
- デフォルトでサポートすることで一般的なオーバーヘッドを除去する
このサービスではコーディングとテスト以外のプロセスは共通である。Cadenceは共通部分の自動化を達成した。
Cadenceの機能向上
- 生産性向上:2021年の社内調査では、同じ機能を実装するためのコードが40%少なくなった
- 信頼性の向上:トランザクションの保証、大規模な高可用性
- コストと複雑性の削減:ドメイン内のリソースの共有
- ワークフローの簡素化:ビルトインUI、メトリクス、ログなど
- 人的エラーから保護:バージョン管理、リプレイ、シャドーイング
V1リリース
Cadenceはリリースから6年を超えている。これまでのリリース形式は「v0.x.x」だったが、機能セット、規模、堅牢(けんろう)性で設定したマイルストーンに到達したためv1としてリリースした。
機能セット
Cadenceが提供する機能の一部を紹介する。
- デフォルトAPI:ワークフローへのAPIとしてstart,、signal、schedule(distributed cron)、terminate、cancelなど
- メトリクス:主なメトリクスとしてhealth、volume、latency、error、heartbeat、shadowなど
- デバッグ性:ワークフローやアクティビティーへの入出力、APIコール、実行タイムライン
- カスタム可視性:ワークフローの検索可能な属性により、何十億ものインスタンスの中からフィルタリングや特定のワークフローの追跡が可能
- ユーザーオペレーションエンドポイント:ユーザーは、必要に応じてCLI、クライアントAPI、またはWebエンドポイントを使用して、ドメインとワークフローを操作できる
規模
Cadenceは多くの企業で使用されており、Uberだけでも月間120億回以上、2700億アクションを実行している。
Uberでは、T0(最も重要度の高いサービス)からT5サービスまで、1000以上のサービスを動かしている。長時間のワークフロー、同期インタラクション、マイクロサービスオーケストレーション、バッチ処理、分散クーロン、分散シングルトン、データパイプライン、モデルトレーニング、その他多くのアプリケーションに使用されており、数年にわたって前年比100%の成長を維持している。
堅牢性
Cadenceは規模の拡大とともに、動作面でも99.9%の可用性の保証に加えて運用コストの削減という目標を掲げ、2022年を信頼性の年としてUberは投資を行った。「その結果、運用負荷が軽減されるとともに、全ての面での改善がなされ、Cadenceはv1リリースに十分な成熟を遂げることができた」(Uber)
V2ブランチ
今後Uberはv2ブランチでより現代的なエクスペリエンスを提供する意向を示している。これまでCadenceリリースでの変更は全て下位互換性があり、今後のv1.xxリリースでもこれを維持する予定だ。しかし、下位互換できない基本的な変更とAPIの変更に関して、v1からアップグレードする方法を提供するとしている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- midPointで学ぶ、アクセス要求による権限付与の申請、承認とワークフロー
「IDガバナンス&管理」(IGA)についてOSS「midPoint」を利用したハンズオンで学ぶ連載。今回は、アクセス要求による権限付与の申請、承認とワークフローについてです。 - 「GitHub Actions」のワークフローを監視、必要な最小権限を推奨するツールがパブリックβ版に
GitHubは、「GitHub Actions」のワークフローを監視し、実行に必要な最小権限を推奨するツール「actions-permissions」のパブリックβ版をリリースした。 - GitHub、「GitHub Enterprise Server 3.9」を正式リリース GitHub Projectsの改良など新機能が追加
GitHubは、より深いコラボレーション、可観測性の向上、ワークフローの高速化を実現する「GitHub Enterprise Server 3.9」の一般提供を開始した。