Slide 1

Slide 1 text

OCI DevOps ご紹介 日本オラクル株式会社 2023年12月

Slide 2

Slide 2 text

Copyright © 2023, Oracle and/or its affiliates. 2 CI/CD 概要 Subhead goes here

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Copyright © 2023, Oracle and/or its affiliates. 10 OCI DevOps 概要 Subhead goes here

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

一気通貫の開発・運用プロセス、幅広いリリース環境、コスト削減 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のサービスとしての価 格は無料 価格無料 (*コード・リポジトリのストレージ、およびビルドのためのコン ピュートは別途必要)

Slide 14

Slide 14 text

ソースコード、ソフトウェアビルド、アーティファクト、リリースを一括管理 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

Slide 15

Slide 15 text

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ポリシーを利用して、各ユーザの権限を制御

Slide 16

Slide 16 text

Copyright © 2023, Oracle and/or its affiliates. 16 OCI DevOps CI Subhead goes here

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

OCI環境にプライベートリポジトリを構築してセキュアかつ効率的にソースコードの管理を実現 18 Copyright © 2023, Oracle and/or its affiliates. OCI DevOps CI Code Repository • 独自のプライベートコードリポジトリの作成 • GitHub/GitLab/Bitbucketクラウドなどの外部コードリポジトリとのミラー接続可能 • OCI DevOpsのトリガー機能を利用することで、ビルド・パイプラインとのイベントドリブンな連携が可能 CODE

Slide 19

Slide 19 text

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と連携して、パイプラインにおいてアーティファクトの格納、共有、配布の自動化を実現

Slide 20

Slide 20 text

ソフトウェアビルド、テスト、アーティファクト配布の自動化を実現するビルド・パイプライン 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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

ステージ単位にテンプレートを利用して、簡単にビルド・パイプラインを構築 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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

ビルドからデプロイメント・パイプライン連携までの流れを可視化 24 Copyright © 2023, Oracle and/or its affiliates. OCI DevOps CI build_spec.yamlで定義したワークフローの実行結果 各ステージの実行結果 各 ス テ ー ジ の 実 行 ロ グ Build Pipeline

Slide 25

Slide 25 text

イベントドリブンな連携を実現するトリガー機能 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

Slide 26

Slide 26 text

イベントドリブンな連携を実現するトリガー機能 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

Slide 27

Slide 27 text

Copyright © 2023, Oracle and/or its affiliates. 27 OCI DevOps CD Subhead goes here

Slide 28

Slide 28 text

OCI DevOpsにおけるCD(継続的デリバリー) 28 Copyright © 2023, Oracle and/or its affiliates. OCI DevOps CD Environment DEPLOY デプロイメント・パイプライン • デプロイ先の指定(Compute,OKE,Functions) • デプロイにおける承認管理 • デプロイ戦略(Bule/Green Deployment & カナリアリリース) • 関数の呼び出し Deployment Pipeline

Slide 29

Slide 29 text

デプロイ先となる幅広いプラットフォームの環境管理 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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

ステージ単にテンプレートを利用して、簡単にデプロイメント・パイプラインを構築 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

Slide 34

Slide 34 text

デプロイメント構成ファイルの利用によるコンピュート・インスタンス・グループへのデプロイ管理を効率化 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

Slide 35

Slide 35 text

人による判断を必要とする場合は、承認/却下を選択できるテンプレートを利用 35 Copyright © 2023, Oracle and/or its affiliates. OCI DevOps CD ビルド・パイプラインの処理完了後、デプロイメント・パイプラインが起動、承認ステージ手動によるデプロイ判断 Deployment Pipeline

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

最小限のダウンタイムと即時のロールバック機能を提供する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

Slide 38

Slide 38 text

アプリケーションの新しいバージョンを一部のユーザーに段階的にリリースするカナリア・リリース 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

Slide 39

Slide 39 text

Copyright © 2023, Oracle and/or its affiliates. 39 OCI DevOps Integration Subhead goes here

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

外部サービスとの連携による活用の拡大 41 Copyright © 2023, Oracle and/or its affiliates. OCI DevOps Integration 外部接続設定を行うことで、GitHub、GitLab、Bitbucketクラウドと連携して、リポジトリのミラーリングが可能 Jenkinsプラグインを利用して、OCI DevOpsとJenkinsを統合利用可能

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Our mission is to help people see data in new ways, discover insights, unlock endless possibilities.