Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Oracle Developer Day 2021 OCI DevOps HOL
Search
oracle4engineer
PRO
December 15, 2021
Technology
2
360
Oracle Developer Day 2021 OCI DevOps HOL
Oracle Developer Day 2021 OCI DevOps HOL 資料
oracle4engineer
PRO
December 15, 2021
Tweet
Share
More Decks by oracle4engineer
See All by oracle4engineer
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
950
話題の MCP と巡る OCI RAG ソリューションの旅 - Select AI with RAG と Generative AI Agents ディープダイブ
oracle4engineer
PRO
3
21
【Oracle Cloud ウェビナー】インフラのプロフェッショナル集団KELが考えるOCIでのソリューション実現
oracle4engineer
PRO
1
73
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
91
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
2
340
Oracle Audit Vault and Database Firewall 20 概要
oracle4engineer
PRO
3
1.7k
本当に使える?AutoUpgrade の新機能を実践検証してみた
oracle4engineer
PRO
1
180
[TechNight #90-1] 本当に使える?ZDMの新機能を実践検証してみた
oracle4engineer
PRO
3
200
OCI Oracle Database Services新機能アップデート(2025/03-2025/05)
oracle4engineer
PRO
1
300
Other Decks in Technology
See All in Technology
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
2
15k
モバイル界のMCPを考える
naoto33
0
400
Tokyo_reInforce_2025_recap_iam_access_analyzer
hiashisan
0
170
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
280
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
1
4.8k
MobileActOsaka_250704.pdf
akaitadaaki
0
110
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
1
410
Zephyr RTOSを使った開発コンペに参加した件
iotengineer22
1
180
Delegating the chores of authenticating users to Keycloak
ahus1
0
130
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
120
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
2
550
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
6
4.9k
Featured
See All Featured
A Tale of Four Properties
chriscoyier
160
23k
Docker and Python
trallard
44
3.5k
The Language of Interfaces
destraynor
158
25k
Being A Developer After 40
akosma
90
590k
The Invisible Side of Design
smashingmag
301
51k
It's Worth the Effort
3n
185
28k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Transcript
Oracle Developer Day 2021 OCI DevOps HOL Yutaka Ichikawa Oracle
Groundbreaker Advocate Principal Cloud Solution Engineer Oracle Corporation Japan Dec 17, 2021
Profile Name • Yutaka Ichikawa/市川 豊 Belong • Solutions Architect
Role • Principal Cloud Solution Engineer SNS • Twitter/GitHub/Qiita:cyberblack28 Blog • https://cyberblack28.hatenablog.com/ Materials • https://speakerdeck.com/cyberblack28/ Community • CloudNative Days Tokyo #cndt • Cloud Native Bright Future #cnbfmeetup Certified • Certified Kubernetes Administrator • Certified Kubernetes Application Developer • Kubernetes and Cloud Native Associate Publications Dockerコンテナ開発・環境構築の基本 2021/7/27 発売
コミュニケーション ガイド こんなことは… こちらに… セッションに 関する質問 Q&A セッション時にまとめてお答えします ハンズオンに 関する質問
Zoomチャット または マイクをオン (ミュート解除)にして発言をお願いします 運営事務局に 対する連絡 音声・画像の不具合や運営に関するもの *宛先「運営事務局」指定して投稿ください ご意見・応援 その他何でも! #oradevday
Agenda 1.OCI DevOps概要 2.OCI DevOps CI 3.OCI DevOps CD 4.OCI
DevOps Integrations 5.OCI DevOps Handson
OCI DevOps 概要
Copyright © 2021 Oracle and/or its affiliates OCI DevOps 概要
ソフトウェアをビルド、テスト、およびデプロイし、開発ライフサイクルの各フェーズを自動化 Bare Metal Compute Container Engine For Kubernetes Virtual Machine Functions 環境管理 デプロイメント・パイプライン アーティファクト管理 Fully-managed OCI DevOps Service デプロイ ロールバック ビルド・パイプライン OCI DevOps OCIR & Artifact Registry
Copyright © 2021 Oracle and/or its affiliates OCI DevOps 概要
コード 管理 ビルド 成果物 管理 デプロイ End to End の開発・運用プロセス 幅広い環境に対応 コード管理、ビルド・パイプライン、 成果物管理、デプ ロイメント・パイプラインから構成される各機能を用い た、一気通貫の開発・運用プロセスを実現 アーティファクトサービスと連携、実行環境を 問わず、幅広い環境へのデプロイを実現 OCI DevOpsサービスとしての価格は無料 ソフトウェアをビルド、テスト、およびデプロイし、開発ライフサイクルの各フェーズを自動化 Bare Metal Compute & Virtual Machine OKE Functions 価格無料 OCIR Artifact Registry 環境管理 アーティファクト管理 (*コード・リポジトリのストレージ、およびビルドのためのコンピュートは 別途必要)
Copyright © 2021 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
OCI DevOps CI
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
OCI DevOpsにおけるCI デプロイメント・パイプライン接続 OCIR/Artifact Registryにアーティファクトの配布 アプリケーションテスト DEPLOY DELIVER TEST BUILD CODE ビルド・パイプライン コードリポジトリ アプリケーションビルド/コンテナイメージビルド Gitリポジトリによるソースコード管理
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
コード・リポジトリ CODE • 独自のプライベートコードリポジトリの作成 • GitHub/GitLabなどの外部コードリポジトリとのミラー接続可能 • OCI DevOpsのトリガー機能を利用することで、ビルド・パイプラインとのイベントドリブンな連携が可能
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
コード・リポジトリ 「詳細」と「ファイル」ではブランチ内のソースコードが一覧表示されます。 各ファイルをクリックすると、ソース内容画面に遷移します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
コード・リポジトリ 「コミット」では、コミット履歴を確認できます。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
コード・リポジトリ 「比較」では、ブランチ、タグ名、コミットIDを指定することで、 変更した内容を比較できます。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
コード・リポジトリ 「ブランチ」では、リポジトリのブランチリストが表示されます。 「Gitタグ」では、リポジトリのGitタグリストが表示されます。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
CI(継続的インテグレーション)とは? アプリケーション開発に必要となるビルド、テスト、成果物(アーティファクト)の保存までの工程を自動化して、継続的に行われ る状態にすること • ソースコードの変更(更新)を契機に自動的にテストが開始されて、ソースコードの品質を担保 • ソースコードの変更(更新)を契機にアプリケーションビルド、アプリケーションテスト、コンテナイメージビルド、コンテナイメージレジス トリへの格納(プッシュ) CI環境を整備することで、早期バグの発見による品質向上、検証時間の短縮によるリリーススピード向上、開発者が開発に集 中できる環境でより良い開発サイクルを実現。 (etc.)
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
ビルド・パイプライン OCI DevOpsのビルド・パイプラインでは、ステージという単位で組み合わせながら、パイプラインをGUIベースに構築 DEPLOY DELIVER TEST BUILD • 「マネージド・ビルド」というテンプレートからステージを作成 • マネージド・ビルド・ランナーという仮想マシンが起動して、その中で アプリケーションのビルド、テストを実施する仕組み • マネージド・ビルド・ランナーで実行するワークフローは、 「build_spec.yaml」に定義して登録 「アーティファクトの配信」というテンプレートからステー ジを作成して、配信するOCIR、Artifact Registry を設定 「デプロイメントのトリガー」というテンプレートからス テージを作成して、デプロイメント・パイプラインとの連携 を設定
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
ビルド・パイプライン 「ステージの追加」、「パラレル・ステージの追加」を選択して、テンプレートに沿ってステージを作成
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
ビルド・パイプライン TEST BUILD DELIVER DEPLOY build_spec.yaml OCIR Artifact Registry Deployment Pipeline 事 前 に セ ッ ト ア ッ プ し て テ ン プ レ ー ト か ら 登 録
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
ビルド・パイプライン マネージド・ビルド・ランナーは、「build_spec.yaml」に定義されたワークフローを仮想マシン内で実行 アプリケーションテスト/ビルド コンテナイメージビルド アプリケーションテスト/ビルド コンテナイメージビルド アーティファクト生成 Virtual Machine アーティファクト生成 build_spec.yaml マネージド・ビルド・ランナー
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
マネージド・ビルド・ランナー build_spec.yamlで定義したワークフローの実行結果 各 ス テ ー ジ の 実 行 ロ グ 各ステージの実行結果
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI
トリガー • OCI DevOpsのトリガー機能を利用して、コードリポジトリへのイベントをトリガーにビルド・パイプラインを自動実行 • 外部接続機能を利用することで、GitHub、GitLabとの連携も可能 OCI DevOps Code Repository Run Build・Pipeline Git push
OCI DevOps CD
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD
OCI DevOpsにおけるCD デプロイメント・パイプライン • デプロイ先の指定(Compute,OKE,Functions) • デプロイにおける承認管理 • デプロイ戦略(Bule/Green Deployment) • 関数の呼び出し DEPLOY
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD
CD(継続的デリバリー)とは? • CIで生成された成果物をステージングやプロダクション環境へ反映 • CIでコンテナレジストリに格納したコンテナイメージをKubernetesクラスタへ反映 CD環境を整備することで、エンドユーザに影響を与えることなく、高頻度、安定かつ安全にアプリケーションのリリースを実現。 (etc.) CI(継続的インテグレーション)によって生み出された成果物(アーティファクト)を、実際の環境(ステージングやプロダクショ ン)へ自動的に配置すること
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD
デプロイメント・パイプライン OCI DevOpsのデプロイメント・パイプラインでは、ステージという単位で組み合わせながら、パイプラインをGUIベースに構築 DEPLOY • 「承認」テンプレートから、人による承認プロセスを実施するステージを作成 • 「OKE」、「Compute」、「Functions」のテンプレートからデプロイ先を指 定するステージを作成
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD
デプロイメント・パイプライン 「ステージの追加」、「パラレル・ステージの追加」を選択して、テンプレートに沿ってステージを作成
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD
デプロイメント・パイプライン OKE VM & BM Compute Functions OKE,Compute,Functi onsへのデプロイ先を指定 できるテンプレート 承認プロセス追加できる テンプレート Functionsで作成した 関数を呼び出しを設定 できるテンプレート ワークフロー内で 一時停止を追加 できるテンプレート Blue/Green Deploymentを 設定できるテンプ レート
Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD
デプロイメント・パイプライン ビルド・パイプラインの処理完了後、デプロイメント・パイプラインが起動、承認ステージ手動によるデプロイ判断
OCI DevOps Integrations
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Integrations
OCI Service Connect OCIサービス(環境管理やアーティファクト管理以外)と連携して、OCI DevOpsの活用の幅を拡大 Notifications Logging Loggingサービスとの連携でOCI DevOps から生成されるログを管理可能 Notificationsサービスとの連携で、OCI DevOpsパイプラインの実行状況等を通知可能
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Integrations
OCI Service Connect 外部接続設定を行うことで、GitHub、GitLabと連携して、リポジトリのミラーリングが可能 Jenkinsプラグインを利用して、OCI DevOpsとJenkinsを統合利用可能
OCI DevOps Handson
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
環境構築後、コード変更とGit Pushをトリガーに、一連のパイプラインを自動実行、OKEクラスタにサンプルコンテナアプリケーションが デプロイを確認するハンズオン
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
ハンズオン全体の流れ 1.OKE セットアップ 2.OCI Notifications セットアップ 3.認証トークン セットアップ 4.動的グループ/ポリシー セットアップ 事前準備 1.プロジェクト 2.環境 3.コードリポジトリ 4.アーティファクト 5.デプロイメント・パイプライン OCI DevOps 環境構築 6.ビルド・パイプライン 7.トリガー 8.パイプラインの実行 9.デプロイの確認
事前準備
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
1.OKEセットアップ Oracle Container Engine for Kubernetesを利用して、3ノードのKubernetesクラスタを構築します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
2. OCI Notifications セットアップ OCI Notificationsと連携して、登録したメールアドレスにOCI DevOpsから通知を受け取ることができるようにします。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
3.認証トークン セットアップ コード・リポジトリで利用するトークンを作成します。 4.動的グループ/ポリシー セットアップ OCI DevOpsを利用する上で、必要となる動的グループとポリシーを設定します。 動的グループ ルール 説明 OCI_DevOps_Dynamic_Group All {resource.type = ‘devopsrepository’, resource.compartment.id = ‘コンパートメントOCID’ OCI DevOpsのコード・リポジトリを利用するため に必要な動的グループ OCI_DevOps_Dynamic_Group All {resource.type = ‘devopsbuildpipeline’, resource.compartment.id = ‘コンパートメントOCID’ ビルド・パイプラインを利用するために必要な動的 グループ OCI_DevOps_Dynamic_Group All {resource.type = ‘devopsdeploypipeline’, resource.compartment.id = ‘コンパートメントOCID’ デプロイメント・パイプラインを利用するために必要 な動的グループ ポリシー 説明 Allow dynamic-group OCI_DevOps_Dynamic_Group to manage devops-family in compartment id ‘コンパートメントOCID’ OCI DevOpsの各機能を利用するために必要なポリシー Allow dynamic-group OCI_DevOps_Dynamic_Group to manage all-artifacts in compartment id ‘コンパートメントOCID’ OCI DevOpsがOCIRやアーティファクト・レジストリを管理 するために必要なポリシー Allow dynamic-group OCI_DevOps_Dynamic_Group to manage cluster-family in compartment id ‘コンパートメントOCID’ OCI DevOpsがOKEを管理するために必要なポリシー Allow dynamic-group OCI_DevOps_Dynamic_Group to use ons-topics in compartment id ‘コンパートメントOCID’ OCI DevOpsがOCI Notificationsサービスを利用するた めに必要なポリシー
OCI DevOps 環境構築
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
1.プロジェクト OCI DevOpsは、プロジェクト単位で管理するため、最初にプロジェクトを作成します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
2.環境 OCI DevOpsからOKEクラスタにアプリケーションのデプロイを行うために、OKEクラスタを登録します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
3.コード・リポジトリ 独自のプライベート・コードリポジトリをOCI DevOps上に作成します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
4.アーティファクト ビルドパイプラインでビルドしたコンテナイメージを格納するコンテナイメージレジストリのセットアップとOCI DevOpsからOKEクラスタに デプロイする際に利用するマニフェストをアーティファクトレジストリに登録します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
5.デプロイメント・パイプライン アーティファクト・レジストリと連携して、OKEクラスタにアプリケーションを自動デプロイするためのパイプラインを作成します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
6.ビルド・パイプライン コードリポジトリからソースをダウンロードして、コンテナイメージビルド、コンテナイメージビルドをOCIRに格納、デプロイメント・パイプライ ン連携という一連の流れをビルド・パイプラインとして作成します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
7.トリガー ソースコードを変更して、コードリポジトリへの「git push」コマンド実行をトリガーに、これまで作成してきた「ビルド・パイプライン」、「デ プロイメント・パイプライン」が自動で稼働して、OKEクラスタにアプリケーションがデプロイされるようにします。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
8.パイプラインの実行 / 9.デプロイの確認 実際にソースコードを変更して、「git push」をトリガーにOKEクラスタへの自動デプロイを実行します。
Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson
サンプルアプリケーションのソースコード、環境構築テキストは、以下を参照 GitHub Tutorial https://github.com/oracle-japan/oracle-developer-days-2021-ocidevops-hol https://oracle-japan.github.io/ocitutorials/cloud-native/devops-for-commons
Thank you Copyright © 2021 Oracle and/or its affiliates