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
370
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 Database 23ai Developer Tech Day : AI Vector Search 最新のエンタープライズシステムの強化
oracle4engineer
PRO
0
16
Oracle Database 23ai Developer Tech Day : Oracle APEX 生成AIを活用したローコード・アプリケーション開発/
oracle4engineer
PRO
0
12
Oracle Database 23ai Developer Tech Day : Think Relational, Stay JSON:Oracleの二面性ビューによる革命
oracle4engineer
PRO
0
8
Oracle Database 23ai Developer Tech Day : グラフ -データのつながり
oracle4engineer
PRO
0
7
Oracle Database 23ai Developer Tech Day : 自然言語処理技術を活用したアプリを構築し、業務を変革
oracle4engineer
PRO
0
2
Modern Linux
oracle4engineer
PRO
0
82
Autonomous Database サービス・アップデート (FY26)/adb-service-update-jp-fy26
oracle4engineer
PRO
0
21
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/06 - 2025/08
oracle4engineer
PRO
0
71
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
77
Other Decks in Technology
See All in Technology
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
1
180
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
1.1k
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
230
AI開発ツールCreateがAnythingになったよ
tendasato
0
110
AWSで始める実践Dagster入門
kitagawaz
1
540
Kubernetes における cgroup driver のしくみ: runwasi の bugfix より
z63d
2
260
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
180
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
160
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
3
510
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
220
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
270
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
910
Into the Great Unknown - MozCon
thekraken
40
2k
Agile that works and the tools we love
rasmusluckow
330
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Automating Front-end Workflow
addyosmani
1370
200k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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