DevOpsの概要

Oracle Cloud Infrastructure (OCI) DevOpsサービスは、開発者向けのエンドツーエンドの継続的インテグレーションおよび継続的デリバリ(CI/CD)・プラットフォームです。

このサービスを使用すると、DevOpsエンジニアは、Oracle Cloudでソフトウェアおよびアプリケーションを簡単にビルド、テストおよびデプロイできます。DevOpsのビルド・パイプラインとデプロイメント・パイプラインは、変更主導型のエラーを削減し、リリースのビルドおよびデプロイに顧客が費やす時間を短縮します。また、このサービスは、コードを格納するためのプライベートGitリポジトリを提供し、外部コード・リポジトリへの接続をサポートします。

DevOpsサービスでは、次を実行できます:

  • ソース・コードを格納および管理するためのプライベート・コード・リポジトリを作成します。
  • GitHub、GitLab、Bitbucketクラウド、Visual Builder Studio、Bitbucketサーバー、GitLabサーバーなどの外部リポジトリに接続します。
  • サービス管理のビルド・ランナーを使用して、ビルド・パイプラインの最新の変更をビルドおよびテストします。
  • ソース・コードのコミットまたはプル・リクエストからビルド・パイプラインを自動的に実行するためのトリガーを設定します。オプションで、完全なCI/CD自動化のための成功したビルド実行でデプロイメント・パイプラインを実行します。
  • Container Engine for Kubernetes (OKE)、コンピュート・インスタンス、ファンクションなどのOCIプラットフォームに対するリージョン間のソフトウェア・デプロイメントをオーケストレーションします。
  • ブルー/グリーン・デプロイメント戦略とカナリア・デプロイメント戦略により、デプロイメント中のダウンタイムを回避します。
  • アプリケーションの更新の複雑な部分を自動化します。自動化によって、セキュリティの脆弱性を招くヒューマン・エラーの可能性が低減します。
  • セキュリティを強化し、デリバリのリスクを低減します。DevOpsにより、ソフトウェア・デリバリを高速化できるため、修正をロールアウトすることでセキュリティ・バグを迅速に解決できます。
図1. DevOpsワークフロー
DevOpsワークフロー

ワークロードを(オンプレミスまたは他のクラウドから) OCIに移行する場合でも、OCIで新しいアプリケーションを開発する場合でも、DevOpsサービスを使用して、ソフトウェア・デリバリのライフサイクルを簡略化できます。

Oracle Cloudコンソール、REST APIおよびCLIを使用して、DevOpsでビルド、テスト、デリバリおよびデプロイできます。DevOpsへのアクセスを参照してください。

DevOpsサービスを開始するには、DevOpsの開始を参照してください。

DevOpsの概念

主要な用語を確認して、DevOpsサービスを理解してください。

DevOpsプロジェクト
CI/CDワークフローの実装に必要なDevOpsリソースの論理グループ。DevOpsリソースは、アーティファクト、ビルド・パイプライン、デプロイメント・パイプライン、外部接続、トリガーおよび環境です。
環境
アーティファクトがデプロイされているコンピュート・リソースへの参照。環境は、ファンクション・アプリケーション、コンピュート・インスタンスのグループ、またはContainer Engine for Kubernetes (OKE)クラスタへの参照です。
インスタンス・グループ
コンピュート・ホストのグループ。各インスタンス・グループには、一度に1つのリージョンからのみ、コンピュート・ホストを含めることができます。
アーティファクト
ターゲット・デプロイメント環境にデリバリされるバイナリおよびデプロイメント・マニフェストのコレクション。DevOpsアーティファクトは、コンテナ・イメージ、インスタンス・グループ・デプロイメント構成、Kubernetesマニフェストまたは汎用アーティファクトです。アーティファクトは、OCIリポジトリ(コンテナ・レジストリおよびアーティファクト・レジストリ)でホストできます。
デプロイメント構成アーティファクト
インスタンスにダウンロードするアーティファクトと、アーティファクトをコピーする必要がある場所を定義します。構成ファイルでは、デプロイメント用のコマンドの順序も指定します。
コード・リポジトリ
DevOpsサービスによってホストされるプライベートGitリポジトリ。DevOpsコード・リポジトリを使用して、ソース・コードを格納、管理および開発できます。
外部接続
外部リポジトリへの接続に必要な認可を定義します。DevOpsは、GitHub、GitLab、Bitbucketクラウド、BitbucketサーバーおよびGitLabサーバーのリポジトリへの接続をサポートします。
ステージ
パイプラインの単一のステップ。DevOpsサービスには、ビルド・パイプラインまたはデプロイメント・パイプラインで使用される事前定義済のステージが含まれます。
ビルド・パイプライン
ビルド・プロセスのステージのセット(ソフトウェア・アーティファクトのビルド、テストおよびコンパイル、OCIリポジトリへのアーティファクトのデリバリ、およびオプションのデプロイメントのトリガー)を定義します。
ビルド仕様
サービス管理のビルド・ランナーによって実行されるビルド・ステップおよび手順が含まれます。
デプロイメント・パイプライン
アーティファクトのセットをターゲット環境にデプロイするための一連のステップ。デプロイメント・パイプラインには、順次またはパラレルに実行されるステージが含まれます。
ロールバック
デプロイメントで識別された問題を管理する方法(以前に正常にデプロイされたバージョンのソフトウェアのリリースなど)。
トリガー
ソース・コード・リポジトリからの受信イベントをフィルタし、一致する受信コミットでビルド実行を開始するアクションをトリガーするDevOpsリソース。

トリガーは、デプロイメントの開始をトリガーするデプロイメント・パイプライン・ステージも参照します。

デプロイメント
デプロイメント・パイプラインの単一の実行。デプロイメントには、デプロイメント・パイプラインで実行されているすべてのステージの状態が含まれます。
作業リクエスト
DevOpsプロジェクトの非同期実行タスクをトラッキングする方法。

DevOpsへのアクセス

DevOpsには、コンソール(ブラウザベースのインタフェース)、Oracle Cloud Infrastructure CLIまたはREST APIを使用してアクセスできます。

このドキュメント全体を通じて、3つのすべてのアクセス方法の手順が提供されます。

  • Oracle Cloudコンソールを使用するには、Oracle Cloud Infrastructure (OCI)アカウント(ユーザー、パスワードおよびテナンシ)が必要です。サポートされているブラウザを使用する必要もあります。詳細は、セキュリティ資格証明を参照してください。
    ノート

    コンソール、APIまたはCLIを使用して、クラウド・リソースに説明、タグまたはわかりやすい名前を割り当てる場合、機密情報を入力することは避けてください。これは、環境やパイプラインなどのプロジェクト・リソースを作成または編集する場合に適用されます。
  • OCI CLIまたはREST APIを使用するには、環境を設定するか、Oracle Cloud Infrastructureのクラウド・シェルを使用できます。

アクションを実行するときに、権限がないか認可されていないというメッセージが表示された場合は、付与されているアクセス権のタイプを管理者に確認してください。

DevOpsサービスを開始するには、DevOpsの開始を参照してください。

認証と認可

Oracle Cloud Infrastructureの各サービスは、すべてのインタフェース(コンソール、SDKまたはCLI、およびREST API)で、認証および認可のためにIAMと統合されます。

組織の管理者は、グループ、コンパートメントおよびポリシーを設定して、どのユーザーがどのサービスおよびリソースにアクセスできるかと、そのアクセス権のタイプを制御する必要があります。たとえば、ポリシーは、ユーザー、グループおよびコンパートメントを作成できるユーザー、またはリポジトリとアーティファクトを作成および管理できるユーザーを制御します。

通常のユーザー(管理者以外)として、会社が所有するOracle Cloud Infrastructureリソースを使用する必要がある場合は、ユーザーIDを設定するよう管理者に連絡してください。管理者は、ユーザーが使用する必要のある1つ以上のコンパートメントを承認できます。

リージョンおよび可用性ドメイン

DevOpsは、すべてのOracle Cloud Infrastructure商用リージョンで使用できます。Oracle Cloud Infrastructureの使用可能なリージョンのリストと、関連する場所、リージョン識別子、リージョン・キーおよび可用性ドメインについては、リージョンおよび可用性ドメインについてを参照してください。

リソース識別子

DevOpsリソースには、Oracle Cloud Infrastructureのほとんどのリソース・タイプと同様に、Oracle Cloud ID (OCID)と呼ばれる、Oracleによって割り当てられた一意の識別子があります。

OCIDのフォーマットおよびその他のリソース識別方法の詳細は、リソース識別子を参照してください。

制限

リージョンのDevOpsサービス制限を確認してください。

サービス制限は、リソースに対して設定された割当てまたは許容量です。

リソース 制限の短縮名 年次ユニバーサル・クレジット Pay-as-You-Go 説明
プロジェクト devops-project-count 5000 1000 DevOpsで使用可能なプロジェクトの最大数。
パイプライン build-pipeline-count 5000 1000 DevOpsで使用可能なビルド・パイプラインの最大数。
パイプライン stages-per-build-pipeline-count 500 100 DevOpsで使用可能なビルド・パイプラインごとのステージの最大数。
パイプライン deployment-pipeline-count 5000 1000 DevOpsで使用可能なパイプラインの最大数。
パイプライン deployment-stages-per-pipeline-count 500 100 DevOpsで使用可能なデプロイメント・パイプラインごとのステージの最大数。
ビルド実行 concurrent-build-run-count 60 30 DevOpsで使用可能な同時ビルド実行の最大数。
ビルド実行 concurrent-build-runner-count 60 30 DevOpsで使用可能なサービス提供の同時ビルド・ランナーの最大数。
デプロイメント concurrent-deployment-count 500 100 DevOpsで使用可能な同時デプロイメントの最大数。
環境 devops-environment-count 15000 3000 DevOpsで使用可能な環境の最大数。
アーティファクト devops-artifact-count 5000 1000 DevOpsで使用可能なアーティファクトの最大数。
トリガー trigger-count 500 100 DevOpsで許容されるトリガーの最大数。
外部接続 external-connection-count 500 100 DevOpsで許容される外部接続の最大数。
コード・リポジトリ code-repository-count 2000 1000 テナンシ当たりのリージョンごとに許容されるリポジトリの最大数。
コード・リポジトリ code-repository-size-limit-mb 1024 1024 リポジトリの最大サイズ(MB)
コード・リポジトリ receive-pack-size-limit-mb 1024 1024 パック・ファイルの最大サイズ(MB)

DevOpsの制限を確認するには:

  1. コンソールでナビゲーション・メニューを開き、「ガバナンスと管理」をクリックします。「ガバナンス」で、「制限、割当ておよび使用状況」をクリックします。
  2. 次の値でフィルタします:
    • サービス: DevOps
    • スコープ: <your-region>
    • リソース:
      • 同時デプロイメントの最大数
      • デプロイメント・パイプラインの最大数
      • デプロイメント・パイプラインごとのステージの最大数
      • デプロイメント・アーティファクトの最大数
      • 環境の最大数
      • DevOpsプロジェクトの最大数
      • ビルド・パイプラインの最大数
      • ビルド・パイプラインごとのステージの最大数
      • 同時ビルド実行の最大数
      • サービス提供の同時ビルド・ランナーの最大数
      • トリガーの最大数
      • 外部接続の最大数
      • テナンシ当たりのリージョンごとに許容されるリポジトリの合計数
      • リポジトリの合計サイズ(MB)
      • パック・ファイルの合計サイズ(MB)
    • コンパートメント: <your-tenancy-namespace > (root)

サービス制限を引き上げるには:

  1. コンソールでナビゲーション・メニューを開き、「ガバナンスと管理」をクリックします。「ガバナンス」で、「制限、割当ておよび使用状況」をクリックします。
  2. 「サービス制限の引上げのリクエスト」リンクをクリックします。管理者のみがリクエストを行うことができます。

詳細は、サービス制限を参照してください。