Cloud Manager CI/CD パイプライン intro-cicd
Cloud Manager の CI/CD パイプラインと、CI/CD パイプラインを使用してコードを効率的にデプロイする方法について説明します。
はじめに introduction
Cloud Manager の CI/CD パイプラインは、ソースリポジトリーからコードを作成して環境にデプロイするためのメカニズムです。パイプラインは、ソースコードリポジトリからのプルリクエスト(つまりコード変更)などのイベントや、リリース頻度に合わせた定期的なスケジュールに基づいてトリガーされます。
パイプラインを設定するには、以下を行う必要があります。
- パイプラインを開始するトリガーの定義
- 実稼動デプロイメントを制御するパラメーターの定義
- パフォーマンステストパラメーターの設定
Cloud Manager には、次の 2 種類のパイプラインが用意されています。
実稼動パイプライン prod-pipeline
実稼動パイプラインは、ソースコードを実稼動用にデプロイするための調整された一連のステップで構成される専用のパイプラインです。これらのステップには、ビルド、パッケージ化、テスト、検証およびデプロイがあり、最初はすべてステージング環境で行われます。したがって、実稼働パイプラインは、実稼働環境とステージング環境のセットを作成した場合にのみ追加できます。
実稼動以外のパイプライン non-prod-pipeline
実稼動以外のパイプラインは、主にコード品質スキャンの実行や開発環境へのソースコードのデプロイに役立ちます。
コードのソース code-sources
実稼働パイプラインと実稼動以外のパイプラインに加えて、デプロイするコードのタイプによってパイプラインを区別することもできます。
- フルスタックパイプライン - 1 つ以上の AEM サーバーアプリケーションを含んだバックエンドおよびフロンエンドコードビルドと HTTPD/Dispatcher 設定を同時にデプロイします。
- パイプラインの設定 - WAF ルールを含むトラフィックフィルタールールを数分以内で設定およびデプロイする
- フロントエンドパイプライン - 1 つ以上のクライアントサイド UI アプリケーションを含んだフロントエンドコードビルドをデプロイします。
- Web 階層設定パイプライン - HTTPD/Dispatcher 設定をデプロイします。
これらについては、この後このドキュメントで詳しく説明します。
Cloud Manager の CI/CD パイプラインについて understand-pipelines
Cloud Manager で使用可能なパイプラインとその使用方法の概要を次の表に示します。
フロントエンドパイプラインまたは web 階層設定パイプラインがまだ導入されていない場合。
フルスタックデプロイメントよりはるかに高速
従来の単一のフロントエンドリポジトリーまたは独立したフロントエンドリポジトリーをセットアップした Cloud Manager パイプライン設定を次の図に示します。
フルスタックパイプライン full-stack-pipeline
フルスタックパイプラインでは、バックエンドコード、フロントエンドコードおよび web 階層設定を、すべて同時に AEM ランタイムにデプロイします。
- バックエンドコード - Java コード、OSGi 設定、repoinit などの不変コンテンツと可変コンテンツ
- フロントエンドコード - JavaScript、CSS、フォントなどのアプリケーション UI リソース
- Web 階層設定 - HTTPD/Dispatcher 設定
フルスタックパイプラインとは、すべてのことを一度に行う「スーパー」パイプラインのことですが、その一方で、フロントエンドパイプラインと web 階層設定パイプラインをそれぞれ使用して、フロントエンドコードまたは Dispatcher 設定に限定してデプロイすることもできます。
フルスタックパイプラインでは、フロントエンドコード(JavaScript/CSS)を AEM クライアントライブラリとしてパッケージ化します。
フルスタックパイプラインは、web 階層設定パイプラインが設定されていない場合、web 階層設定をデプロイする場合があります。
次の制限が適用されます。
- パイプラインを設定または実行するには、ユーザーが デプロイメントマネージャー の役割でログインしている必要があります。
- フルスタックパイプラインは、常に 1 つの環境に 1 つしか存在できません。
さらに、web 階層設定パイプラインの導入を選択した場合は、フルスタックパイプラインがどのように動作するかを認識しておいてください。
- 環境のフルスタックパイプラインは、対応する web 階層設定パイプラインが存在する場合、Dispatcher 設定を無視します。
- 環境に対応する web 階層設定パイプラインが存在しない場合、ユーザーは、Dispatcher 設定を含めるまたは無視するようにフルスタックパイプラインを設定できます。
フルスタックパイプラインは、コード品質パイプラインとすることも、デプロイメントパイプラインとすることもできます。
フルスタックパイプラインの設定 configure-full-stack
フルスタックパイプラインの設定方法については、次のドキュメントを参照してください。
パイプラインの設定 config-deployment-pipeline
設定パイプラインを使用して、WAF ルールを含むトラフィックフィルタールールを数分以内に設定およびデプロイできます。
詳しくは、 WAF ルールを含むトラフィックフィルタールール を参照して、リポジトリの設定を管理し、適切にデプロイする方法を確認してください。
設定パイプラインの設定 configure-config-deployment
設定パイプラインの設定方法については、次のドキュメントを参照してください。
フロントエンドパイプライン front-end
フロントエンドコードは、静的ファイルとして機能する任意のコードです。これは AEM から提供される UI コードとは別個のもので、サイトテーマ、顧客定義の SPA、SPA、その他のソリューションなどが含まれる可能性があります。
フロントエンドパイプラインは、バックエンド開発と同期せずにフロントエンドコードのデプロイメントを速めることができるので、チームが設計および開発プロセスを効率化するのに役立ちます。この専用パイプラインは、JavaScript と CSS をテーマとして AEM 配布レイヤーにデプロイして、AEM により配信されるページから参照できる新しいテーマバージョンを作成します。
フロントエンドパイプラインは、コード品質パイプラインとすることも、デプロイメントパイプラインとすることもできます。
フロントエンドパイプラインを設定する前に before-start
フロントエンドパイプラインを設定する前に、AEM クイックサイト作成ジャーニーを参照して、使いやすい AEM クイックサイト作成ツールの包括的ガイドを確認してください。このジャーニーはフロントエンド開発の効率化に役立つほか、AEM のバックエンドに関する知識がなくても、このジャーニーを参考にサイトをすばやくカスタマイズできます。
フロントエンドパイプラインの設定 configure-front-end
フロントエンドパイプラインの設定方法については、以下を参照してください。
フロントエンドパイプラインを使用したサイトの開発 developing-with-front-end-pipeline
フロントエンドパイプラインを使用すると、フロントエンド開発者の作業の独立性が高まるほか、開発プロセスを速めることができます。
このプロセスの仕組みや、このプロセスの可能性を最大限に引き出すために知っておきたいいくつかの考慮事項については、フロントエンドパイプラインを使用したサイトの開発を参照してください。
Web 階層設定パイプライン web-tier-config-pipelines
Web 階層設定パイプラインを使用すると、HTTPD/Dispatcher 設定を他のコード変更から切り離して、この設定のみを AEM ランタイムにデプロイできます。Dispatcher 設定の変更のみをデプロイするユーザーを提供する、合理化されたパイプラインです。これは、数分で迅速にデプロイする方法です。
次の制限が適用されます。
- Web 階層設定パイプラインを使用するには、AEM バージョン
2021.12.6151.20211217T120950Z
以降を使用している必要があります。 - Web 階層設定パイプラインを使用するには、Dispatcher ツールのフレキシブルモードをオプトインする必要があります。
- パイプラインを設定または実行するには、ユーザーが デプロイメントマネージャー の役割でログインしている必要があります。
- Web 階層設定パイプラインは、常に 1 つの環境に 1 つしか存在できません。
- 対応するフルスタックパイプラインが実行中の場合、ユーザーは Web 層設定パイプラインを設定できません。
- Web 階層構造は、クラウド内の Dispatcher のドキュメントで定義されているフレキシブルモード構造に準拠している必要があります。
さらに、web 階層設定パイプラインを導入した場合にフルスタックパイプラインがどのように動作するかを認識しておいてください。
- Web 階層設定パイプラインが環境に設定されていない場合、ユーザーは、対応するフルスタックパイプラインを設定する際に、実行時およびデプロイメント時に Dispatcher 設定を含めるか無視するかを選択することができます。
- Web 階層設定パイプラインが環境に既に設定されている場合、それに対応するフルスタックパイプライン(存在する場合)では、実行時およびデプロイメント時に Dispatcher 設定が無視されます。
- Web 階層設定パイプラインが削除されたら、それに対応するフルスタックパイプラインは、実行時に Dispatcher 設定をデプロイするようにリセットされます。
Web 階層設定パイプラインは、コード品質タイプでもデプロイメントタイプでもかまいません。
Web 層パイプラインの設定 configure-web-tier
Web 層パイプラインの設定方法については、次のドキュメントを参照してください。
パイプラインタイプの概要ビデオ video
パイプラインタイプの概要については、この短いビデオを視聴してください。