Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OCI DevOps 概要

OCI DevOps 概要

oracle4engineer

December 21, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. CI/CDとは? 3 Copyright © 2023, Oracle and/or its affiliates. CI/CD

    概要 CI = Continuous Integration = 継続的インテグレーション ソースコードの更新を契機にビルド、テストが進行して、アプリケーションがデプロイされるまでの工程が自動化された パイプライン ソースコードの修正を コードリポジトリに コミット/プッシュ CI/CDパイプラインによる ビルド、テスト、デプロイ CD = Continuous Delivery (or Deployment) = 継続的デリバリー(デプロイ)
  2. CI(継続的インテグレーション)とは? 4 Copyright © 2023, Oracle and/or its affiliates. CI/CD

    概要 アプリケーション開発に必要となるビルド、テスト、成果物(アーティファクト)の保存までの工程を自動化して、継 続的に行われる状態にすること • ソースコードの変更(更新)を契機に自動的にテストが開始されて、ソースコードの品質を担保 • ソースコードの変更(更新)を契機にアプリケーションビルド、アプリケーションテスト、コンテナイメージビルド、コンテナ イメージレジストリへの格納(プッシュ) CI環境を整備することで、早期バグの発見による品質向上、検証時間の短縮によるリリーススピード向上、開発者 が開発に集中できる環境でより良い開発サイクルを実現。 (etc.)
  3. CD(継続的デリバリー)とは? 5 Copyright © 2023, Oracle and/or its affiliates. CI/CD

    概要 CI(継続的インテグレーション)によって生み出された成果物(アーティファクト)を、実際の環境(ステージングや プロダクション)へ自動的に配置すること • CIで生成された成果物をステージングやプロダクション環境へ反映 • CIでコンテナレジストリに格納したコンテナイメージをKubernetesクラスタへ反映 CD環境を整備することで、エンドユーザに影響を与えることなく、高頻度、安定かつ安全にアプリケーションのリリー スを実現。 (etc.)
  4. CD(継続的デリバリー)とCD(継続的デプロイ) 6 Copyright © 2023, Oracle and/or its affiliates. CI/CD

    概要 CD(継続的デリバリー)は、CI(継続的インテグレーション)によって生み出された成果物(アーティファクト)を実際 の環境に配置する過程で、人による判断・承認プロセスを導入 CD(継続的デプロイ)は、CI(継続的インテグレーション)によって生み出された成果物(アーティファクト)を実際の 環境に配置する過程で、人による判断・承認プロセスが無く、ノンストップ
  5. CD/CDの導入におけるメリット 7 Copyright © 2023, Oracle and/or its affiliates. CI/CD

    概要 • リリースサイクルの短縮により、市場ニーズに早く対応できる • テスト工程が組まれていることにより、アプリケーションの品質を担保できる • 各工程が自動化されたパイプラインのため、全体的な工数削減を見込める • 開発者は開発ロジックに集中できるため、開発効率の向上を見込める 最終的には、早く正確により良いサービスを提供できることにより、エンドユーザ様の満足度、企業競争力や収益の向 上につながる。
  6. CD/CDの導入における困難 8 Copyright © 2023, Oracle and/or its affiliates. CI/CD

    概要 • CI/CD環境の構築、運用に乗せるまでは試行錯誤 • 多種多様で豊富なCI/CDツールの技術選定 • コストの検討 • 定期的なCI/CD環境のメンテナス 導入において、時間やコストも要するが、長い目で見たときにその分のメリットをどう見込むかが鍵 (etc.)
  7. CI/CDの導入における困難を解決するOCI DevOps 9 Copyright © 2023, Oracle and/or its affiliates.

    CI/CD 概要 OCI DevOps Bare Metal Compute Container Engine For Kubernetes Virtual Machine Functions OCIR Artifact Registry CI CD Developer アーティファクト管理 リリース環境 • コード管理 • ビルド • テスト • アーティファクトデリバリ • 開発/ステージング/本 番環境デプロイ • 承認 OCI
  8. CI/CDの導入における困難を解決するOCI DevOps 11 OCI DevOps 概要 Copyright © 2023, Oracle

    and/or its affiliates Networking OCI Core Infrastructure Compute Storage OCI Cloud Native Landscape 開発・運用管理ツール アプリケーション実行基盤 API 管理 Container Instances API Gateway サービス間連携 オブザーバビリティ OCI DevOps OCI Registry Resource Manager OCI Service Mesh OCI Workflow* Container Engine for Kubernetes (Managed/Virtual Nodes*) メッセージング Queue Streaming Service Connector Hub Notifications Application Performance Monitoring Logging Monitoring Events Database WebLogic Server for OCI/OKE MicroTx (Free版) 開発フレームワーク Helidon MP/SE Micronaut *: Coming Soon! Oracle Functions Copyright © 2023, Oracle and/or its affiliates.
  9. 12 Copyright © 2023, Oracle and/or its affiliates. OCI DevOps

    概要 OCI上でソフトウェアをビルド、テスト、およびデプロイして、開発ライフサイクルの各フェーズを自動化 Bare Metal Compute Container Engine For Kubernetes Virtual Machine Functions 環境管理 デプロイメント・パイプライン アーティファクト管理 Fully-managed OCI DevOps デプロイ ロールバック ビルド・パイプライン OCI DevOps OCIR & Artifact Registry
  10. 一気通貫の開発・運用プロセス、幅広いリリース環境、コスト削減 13 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps 概要 コード 管理 ビルド 成果物 管理 デプロイ End to End の開発・運用プロセス コード管理、ビルド・パイプライン、 成果 物管理、デプロイメント・パイプラインから 構成される各機能を用いた、一気通貫 の開発・運用プロセスを実現 幅広い環境に対応 アーティファクトサービスと連携、実行環 境を問わず、幅広い環境へのデプロイ を実現 Bare Metal Compute & Virtual Machine OKE Functions OCIR Artifact Registry 環境管理 アーティファクト管理 OCI DevOpsのサービスとしての価 格は無料 価格無料 (*コード・リポジトリのストレージ、およびビルドのためのコン ピュートは別途必要)
  11. ソースコード、ソフトウェアビルド、アーティファクト、リリースを一括管理 14 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps 概要 ▪ ユースケース 継続的インテグレーション/継続的デリバリー(CI/CD) の実現、アプリケーション開発のライフサイクルを想定した システム開発および運用環境の整備 ▪ 特徴 Code Repository:ソースコード管理(Git) Build Pipeline (CI):ソフトウェアビルドの自動化 Artifact:成果物管理 Environment:デプロイ先管理 (Compute,OKE,Functions) Deployment Pipeline (CD) :デプロイの自動化 ▪ 価格 無料 (*コード管理のストレージ、およびビルドのためのcomputeは別途必要) Environment Build Pipeline: CI Deployment Pipeline: CD Artifact BM & VM Compute OKE Functions Developer 開発環境 デプロイ 統合テスト 実行 承認 本番環境 デプロイ ビルド 実行 成果物 検証 成果物 デリバリ Code Repository OCIR Artifact Registry OCI DevOps
  12. OCI DevOpsにおける役割と管理イメージ 15 Copyright © 2023, Oracle and/or its affiliates.

    OCI DevOps 概要 Environment Build Pipeline Deployment Pipeline Artifact Developer SRE Infrastructure Engineer 開発、ビルド、テスト DevOps環境の構築 DevOps環境の運用/管理(監視含む) アプリケーションデプロイの承認など Code Repository OCI Observability Services cooperation https://docs.oracle.com/ja-jp/iaas/Content/devops/using/devops_iampolicies.htm OCI DevOpsのIAMポリシーを利用して、各ユーザの権限を制御
  13. OCI DevOpsにおけるCI(継続的インテグレーション) 17 Copyright © 2023, Oracle and/or its affiliates.

    OCI DevOps CI デプロイメント・パイプライン接続 OCIR/Artifact Registryにアーティファクトの配布 アプリケーションテスト DEPLOY DELIVER TEST BUILD CODE ビルド・パイプライン コードリポジトリ アプリケーションビルド/コンテナイメージビルド Gitリポジトリによるソースコード管理 Code Repository Build Pipeline Artifact
  14. OCI環境にプライベートリポジトリを構築してセキュアかつ効率的にソースコードの管理を実現 18 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CI Code Repository • 独自のプライベートコードリポジトリの作成 • GitHub/GitLab/Bitbucketクラウドなどの外部コードリポジトリとのミラー接続可能 • OCI DevOpsのトリガー機能を利用することで、ビルド・パイプラインとのイベントドリブンな連携が可能 CODE
  15. OCIのArtifact RegistryとOCIRとの連携によるアーティファクト管理 19 Copyright © 2023, Oracle and/or its affiliates.

    OCI DevOps CI Artifact • コンテナイメージをセキュアに管理するOCIR(Oracle Container Image Registry) • ソフトウェア開発パッケージを格納、共有および管理するArtifact Registry OCIR Artifact Registry OCI DevOpsと連携して、パイプラインにおいてアーティファクトの格納、共有、配布の自動化を実現
  16. ソフトウェアビルド、テスト、アーティファクト配布の自動化を実現するビルド・パイプライン 20 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CI OCI DevOpsのビルド・パイプラインでは、ステージという単位で組み合わせながら、パイプラインをGUIベースに構築 DEPLOY DELIVER TEST BUILD • 「マネージド・ビルド」というテンプレートからステージを作成 • マネージド・ビルド・ランナーという仮想マシンが起動して、その中でアプリ ケーションのビルド、テストを実施する仕組み • マネージド・ビルド・ランナーで実行するワークフローは、 「build_spec.yaml」に定義して登録 「アーティファクトの配信」というテンプレートからステージを作成 して、配信するOCIR、Artifact Registryを設定 「デプロイメントのトリガー」というテンプレートからステージを作 成して、デプロイメント・パイプラインとの連携を設定 Build Pipeline
  17. ステージ単位にテンプレートを利用して、簡単にビルド・パイプラインを構築 21 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CI 「ステージの追加」、「パラレル・ステージの追加」を選択して、テンプレートに沿ってステージを作成 Build Pipeline
  18. ステージ単位にテンプレートを利用して、簡単にビルド・パイプラインを構築 22 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CI TEST BUILD DELIVER DEPLOY build_spec.yaml OCIR Artifact Registry Deployment Pipeline 事 前 に セ ッ ト ア ッ プ し て テ ン プ レ ー ト か ら 登 録 Build Pipeline
  19. ビルド、テスト、アーティファクト生成まで一連のワークフローを専用ファイルで管理 23 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CI マネージド・ビルド・ランナーは、「build_spec.yaml」に定義されたワークフローを仮想マシン内で実行 アプリケーションテスト/ビルド コンテナイメージビルド アプリケーションテスト/ビルド コンテナイメージビルド アーティファクト生成 build_spec.yaml Virtual Machine アーティファクト生成 build_spec.yaml マネージド・ビルド・ランナー Build Pipeline
  20. ビルドからデプロイメント・パイプライン連携までの流れを可視化 24 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CI build_spec.yamlで定義したワークフローの実行結果 各ステージの実行結果 各 ス テ ー ジ の 実 行 ロ グ Build Pipeline
  21. イベントドリブンな連携を実現するトリガー機能 25 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CI Code Repository OCI DevOpsのトリガー機能を利用して、コードリポジトリへのイベントをトリガーにビルド・パイプラインを自動実行 外部接続機能を利用することで、GitHub、GitLab、Bitbucketクラウド、Oracle Visual Builder Studioとの連携も 可能 ※2023年11月時点 Run Build・Pipeline Git push Build Pipeline OCI DevOps Code Repository Oracle Visual Builder Studio
  22. イベントドリブンな連携を実現するトリガー機能 26 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CI Code Repository Build Pipeline コード・リポジトリのタイプによってトリガー可能なイベントが異なる 2023年11月時点 コード・リポジトリ トリガー可能なイベント 備考 • Push Pull Request 機能は、開発のロードマップに 予定されている(2023年11月時点) • Push • Pull request (created, updated, merged, reopened) • Push • Merge request (created, updated, merged, reopened) GitLab, GitLab Server • Push • Pull request (created, updated, merged) Bitbucket Cloud, Bitbucket Server • Push • Pull request (created, updated, merged) OCI Code Repository Visual Builder
  23. OCI DevOpsにおけるCD(継続的デリバリー) 28 Copyright © 2023, Oracle and/or its affiliates.

    OCI DevOps CD Environment DEPLOY デプロイメント・パイプライン • デプロイ先の指定(Compute,OKE,Functions) • デプロイにおける承認管理 • デプロイ戦略(Bule/Green Deployment & カナリアリリース) • 関数の呼び出し Deployment Pipeline
  24. デプロイ先となる幅広いプラットフォームの環境管理 29 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD Environment OCI DevOpsと連携して、OCIのベアメタル、仮想マシン、Kubernetes、FaaS プラットフォームへのデプロイ自動化を実現 Bare Metal Compute Container Engine For Kubernetes Virtual Machine Functions
  25. 承認プロセスや幅広いリリース環境にデプロイを実現するデプロイメント・パイプライン 30 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD OCI DevOpsのデプロイメント・パイプラインでは、ステージという単位で組み合わせながら、パイプラインをGUIベースに構築 DEPLOY • 「承認」テンプレートから、人による承認プロセスを実施するス テージを作成 • 「OKE」、「Compute」、「Functions」のテンプレートからデプロ イ先を指定するステージを作成 Deployment Pipeline
  26. ステージ単にテンプレートを利用して、簡単にデプロイメント・パイプラインを構築 31 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD 「ステージの追加」、「パラレル・ステージの追加」を選択して、テンプレートに沿ってステージを作成 Deployment Pipeline
  27. ステージ単にテンプレートを利用して、簡単にデプロイメント・パイプラインを構築 32 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD 各テンプレートを選択して、テンプレートの内容に従ってデプロイメント・パイプラインを構築 VM & BM Compute Functions OKE,Compute,Functionsへ のデプロイ先を指定できるテン プレート 承認プロセス追加できるテンプ レート Functionsで作成した関数を 呼び出しを設定できるテンプ レート ワークフロー内で一時停 止を追加できるテンプレー ト バックエンドIPの2つのセット間 でトラフィックをルーティングでき るテンプレート Deployment Pipeline OKE デプロイメント・パイプラインでカ スタム・コマンドを実行できるテ ンプレート 凡例
  28. ステージ単にテンプレートを利用して、簡単にデプロイメント・パイプラインを構築 33 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD 「シェル・コマンドの実行」で実行できるデフォルトのコマンド(2023年11月時点) Deployment Pipeline https://docs.oracle.com/ja-jp/iaas/Content/devops/using/shellruntime_details.htm
  29. デプロイメント構成ファイルの利用によるコンピュート・インスタンス・グループへのデプロイ管理を効率化 34 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD コンピュート・インスタンス・グループへのデプロイでは、デプロイメント構成ファイルにアーティファクトのデプロイ先やデプロイ時に実 行するコマンドを定義して、デプロイメント・パイプラインから実行可能。 version: 1.0 component: deployment runAs: root env: variables: version: ${appVersion} files: # This section is to define how the files in the artifact shall # be put on the compute instance - source: / destination: /tmp/genericArtifactDemo steps: # This section is to define the scripts that each step shall run on the instance after file copy. - stepType: Command name: Install Apache Web Server command: /tmp/genericArtifactDemo/install_dependencies.sh runAs: root timeoutInSeconds: 600 - stepType: Command name: Stop Web Server command: /tmp/genericArtifactDemo/stop.sh runAs: root timeoutInSeconds: 60 - stepType: Command name: Install New Version of Software command: /tmp/genericArtifactDemo/install.sh runAs: root timeoutInSeconds: 60 - stepType: Command name: Start Web Server command: /tmp/genericArtifactDemo/start.sh runAs: root timeoutInSeconds: 60 • ターゲット・コンピュート・インスタンスに格納するアプリケーショ ン・パッケージとその場所を指定 • アプリケーションのデプロイに必要なステップを指定 • デプロイメントに必要なユーザー定義変数または組込みの 環境変数を指定 OCI Documents https://docs.oracle.com/ja-jp/iaas/Content/devops/using/deployment_specs.htm Deployment Pipeline
  30. 人による判断を必要とする場合は、承認/却下を選択できるテンプレートを利用 35 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD ビルド・パイプラインの処理完了後、デプロイメント・パイプラインが起動、承認ステージ手動によるデプロイ判断 Deployment Pipeline
  31. Environment デプロイ戦略として、Blue-Greenデプロイ、カナリア・リリースに対応 36 Copyright © 2023, Oracle and/or its affiliates.

    OCI DevOps CD Container Engine for Kubernetes(OKE)およびComputeインスタンス環境へのBlue-Greenデプロイ、 カナリア・リリースを実現 Bare Metal Compute Container Engine For Kubernetes Virtual Machine Artifact Code Repository Deployment Pipeline: CD Build Pipeline: CI Blue-Greenデプロイ カナリア・リリース Developer OCI DevOps Deployment Pipeline
  32. 最小限のダウンタイムと即時のロールバック機能を提供するBlue-Greenデプロイ 37 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD Blue-Greenデプロイ(例:OKE) Blue Green カスタム関数を利用してデプロイ前に Green環境(ネームスペース)のアプリ ケーションを検証可能 手動承認によるBlue環境(ネー ムスペース)へのトラフィック・シフト OKEデプロイメントでは、トラ フィックをルーティングするために NGINXイングレス・コントローラ を設定 Green環境(ネーム スペース)へトラフィッ クシフト https://docs.oracle.com/ja-jp/iaas/Content/devops/using/deploy_bgstrategy.htm Deployment Pipeline
  33. アプリケーションの新しいバージョンを一部のユーザーに段階的にリリースするカナリア・リリース 38 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps CD カナリア・リリース(例:OKE) カスタム関数を利用して、デプロイ前にカナリア環境 (ネームスペース)でアプリケーション検証可能 OKEデプロイメントでは、トラフィックをルーティング するためにNGINXイングレス・コントローラを設定 検証成功後、本番環境(ネームスペース)の一部の トラフィックがカナリア環境(ネームスペース)にシフト 手動承認後、本番環境(ネームスペース) に検証済みのアプリケーションがデプロイされる https://docs.oracle.com/ja-jp/iaas/Content/devops/using/deploy_canarystrategy.htm Deployment Pipeline
  34. 他のOCIサービスと連携することで運用の効率化を図る 40 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps Integration OCIサービス(環境管理やアーティファクト管理以外)と連携して、OCI DevOpsの活用の幅を拡大 Notifications Logging Loggingサービスとの連携でOCI DevOpsから生成さ れるログを管理可能 Notificationsサービスとの連携で、OCI DevOps パイプラインの実行状況等を通知可能
  35. 外部サービスとの連携による活用の拡大 41 Copyright © 2023, Oracle and/or its affiliates. OCI

    DevOps Integration 外部接続設定を行うことで、GitHub、GitLab、Bitbucketクラウドと連携して、リポジトリのミラーリングが可能 Jenkinsプラグインを利用して、OCI DevOpsとJenkinsを統合利用可能
  36. Our mission is to help people see data in new

    ways, discover insights, unlock endless possibilities.