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

OCI DevOps 概要 / OCI DevOps overview

OCI DevOps 概要 / OCI DevOps overview

oracle4engineer
PRO

February 03, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. OCI DevOps
    日本オラクル株式会社
    Feb, 2023

    View Slide

  2. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    2
    CI/CD 概要
    Subhead goes here

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. CI/CDの導入における困難を解決するOCI DevOps
    9 Copyright © 2022, 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

    View Slide

  10. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    10
    OCI DevOps 概要
    Subhead goes here

    View Slide

  11. 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

    View Slide

  12. 12 Copyright © 2022, 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

    View Slide

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

    View Slide

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

    View Slide

  15. OCI DevOpsにおける役割と管理イメージ
    15 Copyright © 2022, 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ポリシーを利用して、各ユーザの権限を制御

    View Slide

  16. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    16
    OCI DevOps CI
    Subhead goes here

    View Slide

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

    View Slide

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

    View Slide

  19. OCIのArtifact RegistryとOCIRとの連携によるアーティファクト管理
    19 Copyright © 2022, Oracle and/or its affiliates
    OCI DevOps CI
    Artifact
    • コンテナイメージをセキュアに管理するOCIR(Oracle Container Image Registry)
    • ソフトウェア開発パッケージを格納、共有および管理するArtifact Registry
    OCIR Artifact
    Registry
    OCI DevOpsと連携して、パイプラインにおいてアーティファクトの格納、共有、配布の自動化を実現

    View Slide

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

    View Slide

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

    View Slide

  22. ステージ単位にテンプレートを利用して、簡単にビルド・パイプラインを構築
    22 Copyright © 2022, Oracle and/or its affiliates
    OCI DevOps CI
    TEST
    BUILD
    DELIVER
    DEPLOY
    build_spec.yaml
    OCIR Artifact
    Registry
    Deployment
    Pipeline





















    Build
    Pipeline

    View Slide

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

    View Slide

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










    Build
    Pipeline

    View Slide

  25. イベントドリブンな連携を実現するトリガー機能
    25 Copyright © 2022, Oracle and/or its affiliates
    OCI DevOps CI
    Code
    Repository
    OCI DevOpsのトリガー機能を利用して、コードリポジトリへのイベントをトリガーにビルド・パイプラインを自動実行
    外部接続機能を利用することで、GitHub、GitLab、Bitbucketクラウド、Oracle Visual Builder Studioとの連携も
    可能 ※2022年11月時点
    Run
    Build・Pipeline
    Git push
    Build
    Pipeline
    OCI DevOps
    Code Repository
    Oracle
    Visual Builder Studio

    View Slide

  26. イベントドリブンな連携を実現するトリガー機能
    26 Copyright © 2022, Oracle and/or its affiliates
    OCI DevOps CI
    Code
    Repository
    コード・リポジトリのタイプによってトリガー可能なイベントが異なる
    Build
    Pipeline
    2023年2月時点
    コード・リポジトリ トリガー可能なイベント 備考
    • Push Pull Request機能は、開発のロードマップに
    予定されている(2022年12月時点)
    • Push
    • Pull request (created, updated, merged, reopened)
    • Push
    • Pull request (created, updated, merged, reopened)
    GitLab, GitLab Server
    • Push
    • Pull request (created, updated, merged)
    Bitbucket Cloud, Bitbucket Server
    • Push
    • Merge request (created, updated, merged)
    OCI Code Repository
    Oracle
    Visual Builder Studio

    View Slide

  27. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    27
    OCI DevOps CD
    Subhead goes here

    View Slide

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

    View Slide

  29. デプロイ先となる幅広いプラットフォームの環境管理
    29 Copyright © 2022, Oracle and/or its affiliates
    OCI DevOps CD
    Environment
    OCI DevOpsと連携して、OCIのベアメタル、仮想マシン、Kubernetes、FaaS プラットフォームへのデプロイ自動化を実現
    Bare Metal
    Compute
    Container Engine
    For Kubernetes
    Virtual
    Machine
    Functions

    View Slide

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

    View Slide

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

    View Slide

  32. ステージ単にテンプレートを利用して、簡単にデプロイメント・パイプラインを構築
    32 Copyright © 2022, Oracle and/or its affiliates
    OCI DevOps CD
    各テンプレートを選択して、テンプレートの内容に従ってデプロイメント・パイプラインを構築
    OKE
    VM & BM
    Compute
    Functions
    OKE,Compute,Functionsへ
    のデプロイ先を指定できるテン
    プレート
    承認プロセス追加できるテンプ
    レート
    Functionsで作成した関数を
    呼び出しを設定できるテンプ
    レート
    ワークフロー内で一時停
    止を追加できるテンプ
    レート
    Blue/Green
    Deploymentを設定で
    きるテンプレート
    Deployment
    Pipeline

    View Slide

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

    View Slide

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

    View Slide

  35. Environment
    デプロイ戦略として、Blue-Greenデプロイ、カナリア・リリースに対応
    35 Copyright © 2022, 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

    View Slide

  36. 最小限のダウンタイムと即時のロールバック機能を提供するBlue-Greenデプロイ
    36 Copyright © 2022, 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

    View Slide

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

    View Slide

  38. Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted
    38
    OCI DevOps Integration
    Subhead goes here

    View Slide

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

    View Slide

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

    View Slide

  41. Thank you
    Text
    Text
    41 Copyright © 2022, Oracle and/or its affiliates | Confidential: Internal/Restricted/Highly Restricted

    View Slide

  42. View Slide

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

    View Slide