このプロジェクトについて
AetherGridは、リソース要件と制約に基づいてコンピュートノード全体にワークロードをスケジュールし、キューからスケジュール、実行中、完了、失敗、再試行、キャンセルまでのジョブライフサイクル全体を管理する分散AIワークロードオーケストレーターです。厳格なドメイン駆動設計に基づいて構築されており、インフラストラクチャ依存のない分離されたドメインコア、イベント駆動の調整ループ、リースベースの実行所有権を備えています。
このプロジェクトの動機は、大規模なスケジューリングの難しい問題に対処することです:障害時の排他的実行所有権、部分的な障害後の調整、強制されたリソース制限。ドメイン層(Job、Node、Worker、Lease、Event、ApiKey集約)には、スケジューリングアルゴリズムとライフサイクル状態機械がプレーンなPythonで含まれており、FastAPIやpsycopgからのインポートはありません。アプリケーションサービスはドメインオブジェクトとリポジトリを調整し、インフラストラクチャは、ORMではなく生のpsycopgを使用してすべてのリポジトリのPostgreSQL実装を提供し、ローカル開発用に一部のリポジトリのSQLite実装も提供します。プレゼンテーション層はFastAPIで、フロントエンドはReactとTypeScriptです。
説明されている主な機能には、すべてのルートをゲートするAPIキー認証(キー発行エンドポイントを含み、最初のキーはデータベースに直接アクセスするローカルスクリプトでのみ作成されます)、CANCELLING状態を介した実行中ジョブのキャンセルを含む明示的なジョブ状態遷移、ジョブごとのライフサイクル履歴ページ、制約を認識するベストフィットアロケーター、ノードのドレイン、ワーカーの登録とハートビート、HTTPをポーリングして実際のサブプロセスとしてジョブを実行するスタンドアロンのワーカーエージェントプロセス、継続的な更新を伴うリースベースの実行所有権、明示的な実行開始確認、2段階シャットダウン(SIGTERM、次にSIGKILL)を伴う実際のサブプロセス実行、ノードの生存追跡、制限付き再試行を伴う調整、ドメインイベントの記録、クラスター全体のライブイベントフィード、ワーカーの可視性、マルチページダッシュボードが含まれます。
READMEはエンジニアリング決定記録を強調しています:/docs/adrに39のADRが文書化されており、調整ループ、ジョブの再利用と調整修復、実際のジョブ実行、継続的なリース更新、APIキー認証、スケジューリングポリシーのドメイン所有権、スタンドアロンのワーカーエージェント、リース更新によるキャンセル、冪等なワーカー登録、キャンセル途中で放棄されたジョブの再利用、イベントループからのクラスタークロック実行の移動、RUNNING遷移の永続化、ワーカーIDではなくリースIDによるいくつかのリースフェンシング修正などのトピックをカバーしています。READMEには、ドメイン、アプリケーション、インフラストラクチャ、API層にわたる347のテストがあり、リポジトリ実装が同一に動作することを証明する契約テストも含まれていると記載されています。
このプロジェクトには、Renderにデプロイされたライブデモが含まれており、実際のPostgres、実際の認証、APIキーでゲートされたエンドポイントを備えています。MITライセンスで、Python 3.12、FastAPI、PostgreSQL、React/TypeScript、Docker Composeを使用しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.