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

Oracle Developer Day 2021 OCI DevOps HOL

Oracle Developer Day 2021 OCI DevOps HOL

Oracle Developer Day 2021 OCI DevOps HOL 資料

oracle4engineer

December 15, 2021
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Developer Day 2021 OCI DevOps HOL Yutaka Ichikawa Oracle

    Groundbreaker Advocate Principal Cloud Solution Engineer Oracle Corporation Japan Dec 17, 2021
  2. 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 発売
  3. コミュニケーション ガイド こんなことは… こちらに… セッションに 関する質問 Q&A セッション時にまとめてお答えします ハンズオンに 関する質問

    Zoomチャット または マイクをオン (ミュート解除)にして発言をお願いします 運営事務局に 対する連絡 音声・画像の不具合や運営に関するもの *宛先「運営事務局」指定して投稿ください ご意見・応援 その他何でも! #oradevday
  4. Agenda 1.OCI DevOps概要 2.OCI DevOps CI 3.OCI DevOps CD 4.OCI

    DevOps Integrations 5.OCI DevOps Handson
  5. 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
  6. Copyright © 2021 Oracle and/or its affiliates OCI DevOps 概要

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

    OCI DevOpsにおけるCI デプロイメント・パイプライン接続 OCIR/Artifact Registryにアーティファクトの配布 アプリケーションテスト DEPLOY DELIVER TEST BUILD CODE ビルド・パイプライン コードリポジトリ アプリケーションビルド/コンテナイメージビルド Gitリポジトリによるソースコード管理
  9. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

    コード・リポジトリ CODE • 独自のプライベートコードリポジトリの作成 • GitHub/GitLabなどの外部コードリポジトリとのミラー接続可能 • OCI DevOpsのトリガー機能を利用することで、ビルド・パイプラインとのイベントドリブンな連携が可能
  10. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

    コード・リポジトリ 「詳細」と「ファイル」ではブランチ内のソースコードが一覧表示されます。 各ファイルをクリックすると、ソース内容画面に遷移します。
  11. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

    コード・リポジトリ 「コミット」では、コミット履歴を確認できます。
  12. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

    コード・リポジトリ 「比較」では、ブランチ、タグ名、コミットIDを指定することで、 変更した内容を比較できます。
  13. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

    コード・リポジトリ 「ブランチ」では、リポジトリのブランチリストが表示されます。 「Gitタグ」では、リポジトリのGitタグリストが表示されます。
  14. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

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

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

    ビルド・パイプライン 「ステージの追加」、「パラレル・ステージの追加」を選択して、テンプレートに沿ってステージを作成
  17. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

    ビルド・パイプライン TEST BUILD DELIVER DEPLOY build_spec.yaml OCIR Artifact Registry Deployment Pipeline 事 前 に セ ッ ト ア ッ プ し て テ ン プ レ ー ト か ら 登 録
  18. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

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

    マネージド・ビルド・ランナー build_spec.yamlで定義したワークフローの実行結果 各 ス テ ー ジ の 実 行 ロ グ 各ステージの実行結果
  20. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CI

    トリガー • OCI DevOpsのトリガー機能を利用して、コードリポジトリへのイベントをトリガーにビルド・パイプラインを自動実行 • 外部接続機能を利用することで、GitHub、GitLabとの連携も可能 OCI DevOps Code Repository Run Build・Pipeline Git push
  21. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD

    OCI DevOpsにおけるCD デプロイメント・パイプライン • デプロイ先の指定(Compute,OKE,Functions) • デプロイにおける承認管理 • デプロイ戦略(Bule/Green Deployment) • 関数の呼び出し DEPLOY
  22. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD

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

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

    デプロイメント・パイプライン 「ステージの追加」、「パラレル・ステージの追加」を選択して、テンプレートに沿ってステージを作成
  25. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD

    デプロイメント・パイプライン OKE VM & BM Compute Functions OKE,Compute,Functi onsへのデプロイ先を指定 できるテンプレート 承認プロセス追加できる テンプレート Functionsで作成した 関数を呼び出しを設定 できるテンプレート ワークフロー内で 一時停止を追加 できるテンプレート Blue/Green Deploymentを 設定できるテンプ レート
  26. Copyright © 2021 Oracle and/or its affiliates OCI DevOps CD

    デプロイメント・パイプライン ビルド・パイプラインの処理完了後、デプロイメント・パイプラインが起動、承認ステージ手動によるデプロイ判断
  27. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Integrations

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

    OCI Service Connect 外部接続設定を行うことで、GitHub、GitLabと連携して、リポジトリのミラーリングが可能 Jenkinsプラグインを利用して、OCI DevOpsとJenkinsを統合利用可能
  29. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    環境構築後、コード変更とGit Pushをトリガーに、一連のパイプラインを自動実行、OKEクラスタにサンプルコンテナアプリケーションが デプロイを確認するハンズオン
  30. 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.デプロイの確認
  31. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    1.OKEセットアップ Oracle Container Engine for Kubernetesを利用して、3ノードのKubernetesクラスタを構築します。
  32. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    2. OCI Notifications セットアップ OCI Notificationsと連携して、登録したメールアドレスにOCI DevOpsから通知を受け取ることができるようにします。
  33. 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サービスを利用するた めに必要なポリシー
  34. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    1.プロジェクト OCI DevOpsは、プロジェクト単位で管理するため、最初にプロジェクトを作成します。
  35. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    2.環境 OCI DevOpsからOKEクラスタにアプリケーションのデプロイを行うために、OKEクラスタを登録します。
  36. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    3.コード・リポジトリ 独自のプライベート・コードリポジトリをOCI DevOps上に作成します。
  37. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    4.アーティファクト ビルドパイプラインでビルドしたコンテナイメージを格納するコンテナイメージレジストリのセットアップとOCI DevOpsからOKEクラスタに デプロイする際に利用するマニフェストをアーティファクトレジストリに登録します。
  38. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    5.デプロイメント・パイプライン アーティファクト・レジストリと連携して、OKEクラスタにアプリケーションを自動デプロイするためのパイプラインを作成します。
  39. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    6.ビルド・パイプライン コードリポジトリからソースをダウンロードして、コンテナイメージビルド、コンテナイメージビルドをOCIRに格納、デプロイメント・パイプライ ン連携という一連の流れをビルド・パイプラインとして作成します。
  40. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    7.トリガー ソースコードを変更して、コードリポジトリへの「git push」コマンド実行をトリガーに、これまで作成してきた「ビルド・パイプライン」、「デ プロイメント・パイプライン」が自動で稼働して、OKEクラスタにアプリケーションがデプロイされるようにします。
  41. Copyright © 2021 Oracle and/or its affiliates OCI DevOps Handson

    8.パイプラインの実行 / 9.デプロイの確認 実際にソースコードを変更して、「git push」をトリガーにOKEクラスタへの自動デプロイを実行します。
  42. 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