Dagger Engine
公式サイト1. サービス概要
Dagger Engine(ダガーエンジン)は、Daggerパイプラインを駆動するコアコンテナランタイムエンジンです。BuildKitをベースに構築されたコンテナ実行エンジンであり、Dagger SDKから送られるパイプライン定義を受け取り、コンテナ内でのビルド・テスト・デプロイの各ステップを実行します。
- 主な機能:
- コンテナ実行エンジン: BuildKitフォークをベースとした高性能なコンテナビルド・実行エンジン。マルチステージビルドや並列実行に対応。
- GraphQL API: SDK(Go、Python、TypeScript等)からの呼び出しをGraphQL APIで受け付け、型安全なパイプライン制御を実現。
- インテリジェントキャッシング: ファイルシステムレベルのレイヤーキャッシングにより、変更のあったステップのみを再実行。大幅な高速化を実現。
- サンドボックス実行: 各パイプラインステップが隔離されたコンテナ内で実行されるため、再現性とセキュリティを確保。
- モジュールランタイム: Dagger Functionsとモジュールの実行環境を提供。モジュール間の依存関係解決とバージョン管理を処理。
- CUEサポート(レガシー): 初期バージョンではCUE言語によるパイプライン設定をサポート。現在は汎用言語SDKモデルに移行。
- ユーザー数:
- Daggerプロジェクト全体のGitHubスター数は11,000超。エンジンはDagger CLIおよびSDKの実行基盤として利用。
- 対応プラットフォーム:
- Linux、macOS、Windows。Docker環境が必要。OCI互換のコンテナランタイム上で動作。
2. 使用している技術スタック
- 開発言語: Go (Golang) - Dagger Engine本体。
- アーキテクチャ:
- BuildKit Fork: Docker社が開発したBuildKitのフォークをベースに、Dagger固有の機能(GraphQL API、モジュールシステム等)を追加。
- GraphQL Server: エンジン内蔵のGraphQLサーバーがSDKからのクエリを処理。パイプラインのDAG(有向非巡回グラフ)を構築して実行。
- コンテナランタイム: OCI互換のコンテナイメージをビルド・実行。runcをデフォルトのコンテナランタイムとして使用。
- ファイルシステムスナップショット: BuildKitのスナップショット機構を活用し、ステップ間のファイルシステム状態を効率的に管理。
- セッション管理: クライアント(SDK/CLI)とエンジン間のセッションを管理。gRPCストリーミングでリアルタイムログ出力を提供。
3. 会社概要
- 運営会社名: Dagger, Inc.
- 設立年: 2022年
- 本社所在地: アメリカ合衆国 カリフォルニア州 サンフランシスコ
- 従業員数: 約30〜50名(推定)
4. 沿革、資本構成、国籍、役員情報
- 沿革:
- 2022年:Dagger, Inc.設立と同時にDagger Engineの開発を開始。BuildKitをフォークし、CI/CD専用のコンテナ実行エンジンとして最適化。
- 2022年3月:Dagger v0.2リリースに合わせてエンジンを公開。CUE言語でパイプラインを定義する初期モデルを採用。
- 2023年:GraphQL APIを導入し、汎用プログラミング言語SDKからの制御を可能に。CUEからの移行を推進。
- 2023年:モジュールシステムを導入。エンジンがモジュールのロード・実行・依存関係解決を担当。
- 2024年:Dagger Engine v0.9以降、パフォーマンス最適化やキャッシング改善を継続。大規模パイプラインの実行効率を向上。
- 資本構成:
- Dagger, Inc.の一部として運営。ベンチャーキャピタルによる出資を受ける非上場企業。
- 主な投資家: Redpoint Ventures、Y Combinator、Frontline Ventures等。累計調達額は4,000万ドル超。
- 国籍: アメリカ合衆国
- 役員情報:
- Solomon Hykes(共同創業者・CEO): Docker(旧dotCloud)の創業者。コンテナ技術のパイオニア。BuildKitの設計思想を熟知し、Dagger Engine の方向性を主導。
- Andrea Luzzardi(共同創業者・CTO): 元Docker社エンジニア。Docker SwarmやDocker Compose等のコンテナオーケストレーションツールの開発経験を活かし、エンジンアーキテクチャを設計。
- Sam Alba(共同創業者): 元Docker社VP of Engineering。エンジニアリング組織の運営と技術戦略を担当。
