Function Compute は、フロントエンド CI/CD パイプラインにおける Jenkins サーバーを置き換えます。GitLab にコードをプッシュするたびに、Function Compute が変更を検出し、該当ブランチをダウンロードしてビルド済みの静的リソースを Object Storage Service (OSS) にアップロードします。その後、Alibaba Cloud CDN (CDN) がエンドユーザーへの配信を高速化します。
背景情報
多くのフロントエンドチームでは、コードを GitLab でホストし、Webhook を監視するために Jenkins を実行し、ファイルを OSS へプッシュしています。このモデルは機能しますが、実際の運用負荷が伴います:
Jenkins は専用サーバー上で常時稼働しており、ビルドが実行中かどうかに関わらず、24 時間課金されます。
チーム内の誰かがそのサーバーのメンテナンス(パッチ適用、モニタリング、障害発生時の回復)を担当する必要があります。
OSS SDK をパイプラインに統合するのは容易ではなく、誤った設定を行うリスクがあります。
ソリューションの概要
以下の図にアーキテクチャを示します。
GitLab リポジトリにコードをコミットすると、
Function Compute がフロントエンドコードリポジトリの変更を検出します。
Function Compute が提出されたブランチをダウンロードし、ファイルを OSS にアップロードします。
Alibaba Cloud CDN がフロントエンドリソースをエンドユーザー向けに高速配信します。
サーバーのプロビジョニングも不要、Jenkins の設定も不要 — パイプライン全体がオンデマンドで実行されます。
メリット
サーバー費用が不要です。 Function Compute はサーバーレスサービスであり、ビルド実行時にのみ消費したコンピュート時間に対して課金されます。アイドル時の容量には課金されません。
パイプラインのメンテナンスが不要です。 スタックから Jenkins を除外できます。パッチ適用、モニタリング、障害回復の対象となるサーバーが存在しません。
組み込みの可観測性を提供します。 ログクエリ、パフォーマンスモニタリング、アラート機能が標準で利用可能であり、追加のツール導入は不要です。
デフォルトでイベント駆動型です。 コードのプッシュによってパイプライン全体が自動的に起動します。ポーリングや手動介入は必要ありません。
従量課金制です。 課金額は実際のビルド活動量に比例してスケールします。詳細については、「課金概要」をご参照ください。