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
1
320
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 Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
29
13k
【Oracle Cloud ウェビナー】生成AI対応のデータベースが変える、業務アプリケーション構築のこれから
oracle4engineer
PRO
2
37
OCI Vault 概要
oracle4engineer
PRO
0
9.8k
Data Safeの機能詳細
oracle4engineer
PRO
0
4.8k
OCI Security サービス 概要
oracle4engineer
PRO
0
6.6k
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
Other Decks in Technology
See All in Technology
心が動くエンジニアリング ── 私が夢中になる理由
16bitidol
0
110
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
4
960
アジャイルチームがらしさを発揮するための目標づくり / Making the goal and enabling the team
kakehashi
3
190
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.7k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
3
360
『Firebase Dynamic Links終了に備える』 FlutterアプリでのAdjust導入とDeeplink最適化
techiro
0
200
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
160
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
39
13k
The Rise of LLMOps
asei
9
1.9k
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
290
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
470
Featured
See All Featured
Facilitating Awesome Meetings
lara
50
6.1k
Building Adaptive Systems
keathley
38
2.3k
Happy Clients
brianwarren
98
6.7k
Building an army of robots
kneath
302
43k
Thoughts on Productivity
jonyablonski
67
4.3k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Adopting Sorbet at Scale
ufuk
73
9.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
120
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Site-Speed That Sticks
csswizardry
0
38
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
110
49k
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