※ 本記事は、Srikrishna Padmannagari, Jonathan Schreiberによる”Run CLI commands in DevOps deployment pipelines with the new Shell stage“を翻訳したものです。
2023年2月10日
Oracle Cloud Infrastructure(OCI)DevOpsの新しい統合であるシェル・ステージが利用可能になったことをお知らせします。OCI DevOpsサービスのこの新機能により、開発者はテナンシで実行されるコンテナでbashコマンドおよびスクリプトを実行できます。DevOpsデプロイメント・パイプラインの美しさは、OCIデプロイメント・ターゲットとのシンプルさと統合です。インフラストラクチャの変更、他のターゲットへのデプロイ、テストの実行などをチームが実行できる機能を合理化できることを嬉しく思います。
デプロイメント・パイプラインの「シェル」ステージを使用すると、開発者は、Oracle Cloudコンソールで追跡されるステップに分割されたbashコマンドでコマンド仕様を渡すことができます。開発者は、コマンド仕様を参照することで、任意のDevOpsパイプライン・パラメータを簡単に使用でき、任意のDevOpsパイプライン・パラメータを更新することもできます。コマンド仕様は、テナンシの選択したコンパートメントおよびサブネットのOCIコンテナ・インスタンス・サービスによって起動されたコンテナで実行されます。デプロイメントの前にコンテナ・インスタンス構成を選択できます。デプロイメント・パイプラインを実行すると、パイプラインの出力およびログのコマンド仕様で定義されたステップのプロセスを確認できます。コマンド仕様の構文と例は、Linuxコマンド仕様を参照してください。
以前は、OCI DevOpsでbashコマンドを実行するには、専用仮想マシン(VM)ランナーを手動で設定するか、ビルド・ランナーでbashコマンドを実行するように複雑なビルド・パイプラインを構成する必要がありました。
デプロイメント・パイプラインにシェル・ステージを追加するための主なユースケース
-
デプロイメント・パイプラインでのデータベース・スキーマ移行の実行: 開発者は、ソフトウェア・アーティファクト・デプロイメントによるデプロイメント・パイプラインの一部としてデータベース・スキーマ移行を実行して、プラットフォームを計算できます。たとえば、Helmチャート・デプロイメントからOKEへのAPI変更を、API変更に必要なAutonomous Databaseサービスへのデータベース・スキーマ変更を含む1つのパイプラインで実行できます。
-
専用ステージなしでOCIサービスへの構成のデプロイ: 開発者は、OCIプラットフォームの開発環境またはステージ環境への変更をデプロイし、テストを実行して、サービスの本番インスタンスにデプロイできます。
-
非OCIプラットフォームへのデプロイ: 開発者は、デプロイ・ステージの手順から非OCIプラットフォームにデプロイできます。
-
WebLogic Deploy Applicationsコマンドライン・ツールを使用して、WebLogic環境にデプロイします。
-
別のクラウドにデプロイ: OCIから構築されたアーティファクトを使用したAmazon Web Services(AWS)およびAzure。
-
-
Software-as-a-service(SaaS)依存関係とともにデプロイ: SaaSリソースおよび環境に依存するアプリケーションの場合は、リリースがSaaS依存関係と適切に相互作用するように、Oracle Integration Cloudなどのサービスに構成コマンドを送信できます。
-
本番環境にデプロイする前に、ビルド済アーティファクトで統合テストを実行: 開発者は、開発環境またはステージング環境にデプロイする前に、ホストにアーティファクトをデプロイして依存サービスをモックアップし、リリース・アーティファクト・セットをテストできます。
-
Kubernetesリソースを削除し、適用を超えてKubernetes APIを実行: 開発者は、DevOpsワークフローをカスタマイズして、パイプラインがより多くのリソースをデプロイする前に一部のリソースの準備を待機するアプリケーション・パイプラインを構築できます。この機能により、開発者は、アプリケーションのデプロイメント中にリソースの作成順序を指定できます。これを実現するには、管理対象デプロイメント・ステージを使用してデプロイメント後にKubernetesオブジェクトを問い合せ、アプリケーションの準備状況を検証するための条件付きコマンドを記述します。
-
インフラストラクチャ・プロビジョニング・ジョブを実行して、デプロイメントに必要なインフラを作成: 開発者は、Terraform(CLIまたはリソース・マネージャ・サービス)またはパイプラインのリソース・プリンシパルを使用してインフラストラクチャ・ジョブを実行し、統合テストに必要なインフラストラクチャを作成できるようにしたいと考えています。デプロイメント戦略の一環として必要なインフラストラクチャを作成します。たとえば、リリース・プロセスの一部として新しい環境が作成され、古い環境が破棄されるため、blue-greenデプロイメントのように、重複する環境が常に保持されないように、ハイランダーまたは再作成リリース戦略があります。
デプロイメント・パイプラインでのシェル・ステージの追加
Oracle CloudコンソールとAPIまたはCLIを使用して、シェル・ステージを追加できます。開始するには、ドキュメントを参照してください。Githubには、一般的なユース・ケース用のコード・サンプルと実装ガイドがあります。
シェル・ステージ・コンテナ・インスタンスの消費の価格は、選択したシェイプ、OCPUおよびメモリー構成に基づきます。
詳細
Oracle Cloud InfrastructureアカウントでDevOpsサービスを開始するには、自動クイック・スタート・リファレンス・アーキテクチャを使用して、DevOpsパイプラインをデプロイおよび実行します。新しいシェルステージ機能に関するドキュメントについては、シェル・ステージを参照してください。
