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

OCI Cloud Native 2023

OCI Cloud Native 2023

2023/03/08 に行われた OCHaCafe Premium #6 の資料です。

oracle4engineer
PRO

March 09, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. OCI Cloud Native 2023
    Oracle Cloud Hangout Café – Premium #6
    Shuhei Kawamura/Takuya Niita/Kyotaro Nonaka/Yutaka Ichikawa
    Oracle Corporation Japan
    March 8, 2023

    View Slide

  2. Copyright © 2023, Oracle and/or its affiliates
    2
    Agenda
    1. OCW Feedback and more – by 川村
    2. Container Instances & Virtual Nodes – by 仁井田
    3. OCI Queue – by 野中
    4. OCI DevOps – by 市川

    View Slide

  3. OCW Feedback and more
    Shuhei Kawamura
    Cloud Solution Engineer
    Solutions Architect, Oracle Corporation Japan
    March 8, 2023

    View Slide

  4. Copyright © 2023, Oracle and/or its affiliates
    4
    • 所属
    • 日本オラクル株式会社
    • ソリューション・アーキテクト本部
    • 担当領域
    • Cloud Native, App Dev
    • Data Platform(Spark 周り)
    • AI Services
    • Search Service with OpenSearch
    • (趣味) 認証・認可関連
    • コミュニティ
    • OCHaCafe
    • CloudNative Days – Observability
    川村 修平 (Shuhei Kawamura)
    @shukawam
    Twitter/GitHub/Qiita
    参加登録お待ちしています…!

    View Slide

  5. Copyright © 2023, Oracle and/or its affiliates
    5
    OCHaCafe Premium #3 (2021/03) から“かなり”進化しました

    View Slide

  6. Copyright © 2023, Oracle and/or its affiliates
    6
    OCI Cloud Native Landscape (2023/03 現在)
    OCI Core Infrastructure
    OCI Cloud Native Landscape
    開発・運用管理ツール
    アプリケーション実行基盤 API 管理
    Oracle Functions
    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
    WebLogic Server
    for OCI/OKE
    MicroTx
    開発フレームワーク
    Helidon
    MP/SE
    Micronaut
    Compute Database Network Storage
    Container Instances
    xxx: OCHaCafe Premium #3 から新たに追加された(予定含む)サービス *: Coming Soon!

    View Slide

  7. Copyright © 2023, Oracle and/or its affiliates
    7
    OCI Data Platform Landscape (2023/03 現在)
    OCI Core Infrastructure
    OCI Data Platform Services
    メタデータ管理
    収集 蓄積/管理 提供 可視化/分析/データサイエンス
    Data Catalog
    Data
    Integration
    GoldenGate
    GoldenGate
    Stream
    Analytics
    Streaming Object Storage ADW/ATP Exadata
    Database
    MySQL
    Heatwave
    Big Data Data Flow
    ADW/ATP Exadata
    Database
    MySQL
    Heatwave
    Big Data Data Flow
    Analytics Artificial
    Intelligence
    Data Science
    Query
    *
    Cloud
    SQL
    Oracle
    Machine Learning
    / AutoML
    Compute Database Network Storage
    xxx: OCHaCafe Premium #3 から新たに追加された(予定含む)サービス *: Coming Soon!

    View Slide

  8. Copyright © 2023, Oracle and/or its affiliates
    8
    OCW Feedback – Application Development
    注目度の高い内容を厳選してご紹介…!

    View Slide

  9. Copyright © 2023, Oracle and/or its affiliates
    9
    ■ ユースケース
    • OCI の各サービスとのオーケストレーションとそれに伴うタスク処理の自動化
    例:インフラストラクチャのプロビジョニング、移行、およびパッチ適用の自動
    化、機械学習モデルのトレーニングタスク処理の自動化など
    ■ 特徴
    • OCI サービスとのオーケストレーション
    • スケジュールおよびイベントドリブンにワークフローをトリガー
    • ビジュアルデザインによるワークフローの作成と監視
    • 組み込み済みのフロー制御
    • 組み込み済みのリトライ・ロジックと拡張可能なエラー処理
    • コンテキストとデータの管理
    • ワークフローのバージョン管理
    ■ 価格
    2023 年 3 月時点では、Limited Availability(制限付き利用)プログラム
    を通じて利用可能となる予定
    OCI Workflow
    開発者およびアーキテクト向けのグラフィカルなフロー・デザイナーを備えたサーバーレス・ワークフローエンジン
    https://www.oracle.com/cloud/cloud-native/workflow/
    OCI Workflow Visual Example
    Virtual
    Machine
    Container Engine
    For Kubernetes
    Object Storage
    Virtual
    Cloud
    Network
    Load
    Balancer
    Database
    Data Science
    Oracle
    Machine
    Learning
    IAM
    Workflow
    Functions

    View Slide

  10. Copyright © 2023, Oracle and/or its affiliates
    10
    参考:OCI Workflow のデモ動画
    https://www.youtube.com/watch?v=WlAyEezfQ4s
    OCI Workflow と AI Vision(Document Understanding) + α
    を組み合わせて、提出された免許書や入力情報をもとに
    信頼度チェックをワークフローとして行うサンプル

    View Slide

  11. Copyright © 2023, Oracle and/or its affiliates
    11
    • JDK 8 と JDK 17 の リリースの間の 7 年間に Java にもたらされた大幅なメモリ管理とパフォーマンスの改善を JDK 8 の
    ワークロードにも享受できるようになる
    • e.g. ZGC ガベージ コレクタ (JDK 11 から搭載された低遅延ガベージコレクタ)
    • JDK 8 で実行するアプリケーションにコード変更無しで適用可能
    • JDK 8 で稼働し続ける必要のある ワークロードにパフォーマンス向上の手段を提供
    • 対象
    • Java SE サブスクリプションをお持ちのお客様
    • Oracle Java on OCI を実行しているお客様
    • My Oracle Supportから入手
    Java SE Subscription Enterprise Performance Pack
    JDK 17 のパフォーマンスを JDK 8 サーバーのワークロードに
    レスポンス タイム メモリー フットプリント GC ポーズタイム
    Oracle によるテスト結果

    View Slide

  12. Copyright © 2023, Oracle and/or its affiliates
    12
    • GraalVM EE は Java SE Subscription に含まれる
    • Oracle Cloud Infrastructure (OCI) の利用者は GraalVM EE を OCI 上で無償利用可能(ライセンスとサポート)
    GraalVM Community Edition を OpenJDK に寄贈
    https://www.graalvm.org/2022/openjdk-announcement/
    GraalVM 22.3 Community Edition (CE) Enterprise Edition (EE)
    ライセンス GNU General Public License V2
    with the “Classpath” Exception
    商用ライセンス
    --------------------------
    Oracle Technology Network (OTN) ライセンス
    (開発/テスト)
    ベースJDKs OpenJDK 11.0.17, 17.0.5, 19.0.1 Oracle JDK 8u351, 11.0.17, 17.0.5, 19.0.1
    サポート コミュニティ・サポート Oracleによる商用サポート
    Renaissance Suite (JVMベンチマーク) で
    計測した対 OpenJDK スピードアップ 1.04x 1.3x
    Docker コンテナ・イメージ ✔ ✔
    特許取得の高度なコンパイラ最適化 ✔
    ネイティブ・イメージの最適化
    - 圧縮されたポインタによる低メモリ使用
    - プロファイルガイド最適化による性能向上
    - G1ガベージ・コレクションによる低遅延

    Java One 2022 で
    CE を OpenJDK に
    寄贈することを発表

    View Slide

  13. Copyright © 2023, Oracle and/or its affiliates
    13
    参考:GraalVM 最新事情
    https://speakerdeck.com/oracle4engineer/graalvm-whats-new

    View Slide

  14. Copyright © 2023, Oracle and/or its affiliates
    14
    OCW Feedback – Data + AI Platform
    注目度の高い内容を厳選してご紹介…!

    View Slide

  15. Copyright © 2023, Oracle and/or its affiliates
    15
    オブジェクトストレージ上のファイルデータへのクエリ機能
    • RDB では不可能な大規模データの分析を可能に
    • DB 内のデータとオブジェクトストレージのデータ結合や ETL 処
    理など、データの移動を伴わない柔軟なデータ分析が可能
    • CSV、Parquet、Aurora および Redshift のバックアップ形式
    に対応
    • 400TB のデータを対象にした TPC-H ベンチマークで、競合
    他社よりも高速な処理結果(ロードとクエリ)
    機械学習による自動化機能のエンハンス
    • 機械学習ベースの自動化機能「MySQL Autopilot」をエン
    ハンス
    • 従来の自動プロビジョニング、自動クエリ実行計画改善機能
    の強化に加え、スキーマの自動推論、アダプティブ・サンプリン
    グ、自動ロード、アダプティブ・データフローなどの新機能を実装
    MySQL HeatWave Lakehouse
    オラクル、400TBのワークロードにおいてSnowflakeの17倍、Redshiftの6倍高速
    なクエリ性能を提供する「MySQL HeatWave Lakehouse」を発表

    View Slide

  16. Copyright © 2023, Oracle and/or its affiliates
    16
    Oracle と NVIDIA のパートナーシップの締結を発表:
    • NVIDIA のアクセラレーテッド・コンピューティング・スタックを
    全てOCI に導入
    • ベアメタル、ネットワーク、ストレージと組み合わせることで
    大規模な AI トレーニングとディープラーニング推論のため
    の選択肢を幅広く、簡単に利用可能に!
    OCI サービス関連情報:
    • NVIDIA AI Enterprise *の次期リリースを OCI で利用可
    能にする計画
    • OCI Data Flow にて、NVIDIA RAPIDS の早期利用の
    開始
    • OCI DataScience にて、NVIDIA A100 Tensor Core
    GPUを備えた BM.GPU.GM4.8 のサポートを提供予定
    https://www.oracle.com/news/announcement/ocw-oracle-and-nvidia-
    partner-to-speed-ai-adoption-2022-10-18/
    NVIDIA Partnership
    Oracle と NVIDIA が企業向けの AI 採用を加速するために提携
    BM.GPU4.8
    Eight NVIDIA A100 40 GB
    BM.GPU.GM4.8
    Eight NVIDIA A100 80 GB
    GPUメモリー Eight GPUs, 40 GB each Eight GPUs, 80 GB each
    GPUメモリー帯域幅 Eight 1.6TB/s Eight 2 TB/s
    CPU Two 32c AMD EPYC Rome Two 64c AMD EPYC Milan
    システム・メモリー 2 TB DDR4
    Storage Eight 6.8 TB NVMe SSDs
    Cluster NIC Eight 2 x 100 Gbps NICs
    価格 (per GPU/hour) $3.05 $4.00
    * NVIDIA AI Enterprise:
    NVIDIA が最適化し、認定し、サポートする AI およびデータ分析
    ソフトウェアからなるクラウドネイティブ エンドツーエンド スイート

    View Slide

  17. Copyright © 2023, Oracle and/or its affiliates
    17
    • ETL、ML/DL 処理を高速化
    • プライス・パフォーマンスを最適化
    • コード変更の必要なし
    • 簡単な Data Flow アプリケーション設定だけで利用可能
    • エグゼキュータ/ドライバに適切な GPU シェイプを選択
    • Spark 構成オプションを追加するだけで OK
    OCI Data Flow – Spark アプリケーションを GPU で高速化
    NVIDIA RAPIDS Accelerator for Apache Spark を装備したサーバレス Spark 環境
    OCI Data Flow
    Object Storage
    Streaming
    Data Flow
    Autonomous
    Data
    Warehouse
    streaming read/write
    read/write
    GPU Instances
    RAPIDS
    PARIDS Accelerator for Apache Spark
    Apache Spark 3.x Application
    Spark SQL DataFrames ML/DL Frameworks

    View Slide

  18. Copyright © 2023, Oracle and/or its affiliates
    18
    And more… (Application Development)
    2021 年(OCHaCafe Premium #3)からの注目アップデート情報
    ※時間も限られているので、サーバレス関連(OCI Functions/API Gateway)に絞ってご紹介

    View Slide

  19. Copyright © 2023, Oracle and/or its affiliates
    19
    • Function の実行前に決められた数(=PCUs*)の各種リソースの割り当てを事前に済ませておくことで初回実行時の
    レイテンシーを低減させるための機能
    • コールドスタート問題の対応策として有効
    • Provisioned Concurrency を適用した、未使用の Function リソースに対しては、25% のリソース利用料が発生
    プロビジョニングされた並行性(Provisioned Concurrency)のサポート
    OCI Functions
    各種リソースの割り当て 関数コードの実行
    一般的な Function 実行
    Provisioned Concurrency を
    利用した Function 実行
    関数実行前に一定数のリソース
    (PCUs*)を割り当てる
    *PCUs(Provisioned Concurrency Units): 事前に完了させておくリソース割り当て数
    関数コードの実行

    View Slide

  20. Copyright © 2023, Oracle and/or its affiliates
    20
    OAuth 2.0 対応
    • JWT/非 JWT 形式のアクセストークンを認可サーバーの OAuth 2.0 イントロスペクション・エンドポイントを用いて検証
    可能な API Gateway を作成可能に
    • ※ 対応前は、JWT 形式のアクセストークンを JWKS or 静的キー + Payload の検証のみ対応
    OpenID Connect 1.0 対応
    • トークンが存在しない or 無効時のポリシーとして、OpenID Connect 1.0 の認可コードフローを用いた ID/アクセストー
    クンの取得が可能に
    • ※ 対応前は、HTTP 401 – Unauthorized の返却のみをサポート
    • API Gateway が OpenID Connect – Relying Party の構成をとる
    ユースケース
    • OAuth 2.0/OpenID Connect 1.0 を実装なし(設定レベル)で使用したい
    • レガシーな API サーバーの OAuth 2.0/OpenID Connect 1.0 対応を実施したい
    OAuth 2.0/OpenID Connect 1.0 のサポート
    API Gateway
    NEW!!
    NEW!!
    NEW!!
    JWT とか OAuth とか OIDC とかはこちらから…
    >> https://thinkit.co.jp/article/21142

    View Slide

  21. Copyright © 2023, Oracle and/or its affiliates
    21
    実装が手間な API の認証を API Gateway にオフロードする
    デモ:OIDC を用いてセキュアに API を公開する
    User
    OIDC - Enduser
    API Gateway
    OIDC-RP
    Functions
    Functions
    Functions
    Country
    Application
    Autonomous
    Transaction
    Processing ATP
    JWKS
    OpenID Connect 1.0 –
    AuthN Code Flow
    https:///ochacafe/country
    Identity Domains
    OIDC - OP
    Provisioned Concurrency
    使ってます!

    View Slide

  22. Copyright © 2023, Oracle and/or its affiliates
    22
    And more (Data + AI Platform)

    View Slide

  23. Copyright © 2023, Oracle and/or its affiliates
    23
    OCI AI Services
    専門知識不要で AI 関連サービスを開発者が利用可能に
    AI Services
    Digital Assistant Language Speech Vision
    Anomary Detection Forecasting
    チャット・ボットの開発・運用
    に必要な機能を提供
    事前学習済みのモデルを用
    いた言語解析機能を提供
    音声や動画ファイルのトラン
    スクリプション機能を提供
    事前学習済みのモデルを用
    いた画像分類、物体検出
    の機能を提供
    ※Data Labelingを併用したカスタムモデルの作
    成も可能
    時系列データに基づいた異
    常検出モデルを提供
    時系列予測と予測結果の
    Explainabilityを提供
    coming
    soon
    Document
    Understanding
    事前学習済みのモデルを用
    いたドキュメント分析機能を
    提供

    View Slide

  24. Copyright © 2023, Oracle and/or its affiliates
    24
    • Data Science のノートブック・セッションを Data Flow へ接続し、対話形式で実行可能な Spark 環境をサポート
    • Jupyter notebook から Spark クラスタを対話的に操作するためのツール群である Sparkmagic が組み込み済み
    • 大規模なデータ処理を Data Science から Data Flow にオフロード可能
    OCI Data Science と OCI Data Flow の連携をサポート
    Data Flow + Data Science
    User
    Data Science
    Spark
    magic
    Apache
    Livy
    Remote
    Spark
    Context
    Executor
    Executor
    Data Flow
    Data Flow
    コントロール・プレーン
    データ・プレーン

    Driver
    HTTP
    リモート(Data Flow)で計算処理を
    実行し、結果をDSへ返却する

    View Slide

  25. Copyright © 2023, Oracle and/or its affiliates
    25
    • Spark 3.2.1 で Data Flow を実行する場合、デフォルトで Delta Lake がサポートされるように
    • Delta Lake
    • Lakehouse アーキテクチャを構築できるオープンソースのストレージフレームワーク
    • 既存の Data Lake(Object Storage, S3, HDFS, etc.)上で以下の機能を提供
    • ACID トランザクションのサポート
    • スケーラブルなメタデータの処理
    • スキーマのばらつきの自動処理(≒ 取り込み中に不正なレコードが挿入されることを防止できる)
    • タイムトラベル(≒ ロールバックや履歴の監査証跡をサポート)
    • merge/update/delete の操作をサポート(※素のSparkでは、”overwrite”, “append”のみがサポート)による複雑なユースケースの実現
    詳細: https://docs.oracle.com/ja-jp/iaas/data-flow/using/delta-lake-about.htm
    Delta Lake のサポート
    Data Flow

    View Slide

  26. OCI Container Services Update
    Takuya Niita
    Oracle Corporation Japan
    Mar 8, 2023

    View Slide

  27. Copyright © 2023, Oracle and/or its affiliates
    27
    自己紹介
    仁井田 拓也
    • 日本オラクル株式会社
    • ソリューション・アーキテクト本部
    • AppDev/Container/FaaS/(a little)ML…
    • 前職は某SIer
    • Oracle歴/Cloud Native歴:4年弱
    • ジブリ大好き
    • OCHaCafeは11回目の登壇(R:9回/P:2回)
    @takuya_0301

    View Slide

  28. Copyright © 2023, Oracle and/or its affiliates
    28
    OCIコンテナ関連サービスアップデート
    Oracle Cloud Hangout Café Premium – OCI Cloud Native 2023

    View Slide

  29. OCIで選択可能な幅広いアプリケーションインフラストラクチャ
    Copyright © 2023, Oracle and/or its affiliates
    29
    Container
    Instances
    DIY
    K8s/Docker
    on
    VM or BM
    OKE
    with
    Customer-
    managed
    Nodes
    Serverless
    OKE
    (Virtual
    Nodes)
    OCI
    Functions
    MORE AGILITY
    Coming Soon!!
    既存サービス/機能
    Virtual
    Machine
    Bare
    Metal
    Managed
    Kubernetes(OKE)
    Compute Containers Functions
    MORE CONTROL
    New!!

    View Slide

  30. インフラ管理不要(サーバレス)のコンテナ実行環境
    30 Copyright © 2023, Oracle and/or its affiliates
    OCI Container Instances
    ■ ユースケース
    コンテナオーケストレーション(Kubernetes)を必要としないコ
    ンテナアプリケーションのデプロイ
    例)API、Web アプリ、継続的インテグレーション・デリバリー
    (CI/CD)の ジョブ、開発・テスト環境など
    ■ 特徴
    • セキュアに分離、最適化されたコンテナ実行環境
    • ユーザによる仮想マシンの管理、パッチ適用、トラブル
    シューティングが不要
    • コンテナを即座に実行可能
    ■ 価格
    通常のComputeと同様(OCPU/メモリ課金)
    ※ Serverless Container Instancesに対する課金はなし
    Container Instances
    Container Container Container
    Webアプリ Web API
    CI/CD
    ビルドジョブ
    物理マシン
    仮想マシン
    コンテナランタイム
    コンテナ
    アプリケーション
    Oracle
    Managed
    OCIR
    Docker Hub
    pull
    pull
    pull
    Other Container Registries

    View Slide

  31. インスタンスに指定可能なパラメーター
    • インスタンス名
    • 配置先のドメイン(可用性ドメイン/障害ドメイン)
    • シェイプ
    • 2023/3時点ではE3/E4のみ
    • CPU/メモリはフレキシブルに指定可能
    • VCNの作成および既存VCNの選択
    • インスタンスに割り当てるIPアドレスはプライベート/
    パブリックを選択可能
    • NSG(ネットワーク・セキュリティ・グループ)の指定
    • DNSレコードの設定
    • VNICでのソース/宛先チェック
    OCI Container Instancesのプロビジョニング ーインスタンスの設定ー
    Copyright © 2023, Oracle and/or its affiliates
    31

    View Slide

  32. コンテナに指定可能なパラメーター
    ※コンテナは1インスタンスに複数指定可能
    • コンテナの再起動ポリシー
    • 常時(Always)/なし(Never)/失敗時(OnFailure)
    • コンテナイメージの指定
    • OCIR
    • 外部レジストリ
    • 環境変数
    • リソース・スロットル
    • コンテナが利用可能な最大vCPU/メモリを数もしくは
    パーセンテージで指定可能
    • 起動オプション
    • ENTRYPOINTをオーバーライド
    OCI Container Instancesのプロビジョニング ーコンテナの設定ー
    Copyright © 2023, Oracle and/or its affiliates
    32

    View Slide

  33. 1. コンテナ・オーケストレーション (Kubernetes など) を必要としないコンテナ化されたアプリケーション
    2. 迅速なインスタンスの作成と破棄が求められるワークロード
    • APIサーバ/Web アプリケーション
    • 一時的なワークロード
    • CI/CD パイプライン・ジョブ
    • 開発/テスト環境
    • データ/メディア処理
    • 自動化タスク
    3. サーバー/VM 上で直接実行されるスタンドアロン コンテナ・ワークロード
    e.g., スケールアウトが考慮されていないレガシー・アプリケーションをコンテナ化してサーバレスで運用負荷軽減
    OCI Container Instances のユースケース
    Copyright © 2023, Oracle and/or its affiliates
    33

    View Slide

  34. Copyright © 2023, Oracle and/or its affiliates
    34
    Container Instances demo
    Oracle Cloud Hangout Café Premium – OCI Cloud Native 2023

    View Slide

  35. 1. OCI LoadBalancer(OCI LB)とは統合されていない(負荷分散が不可)
    • 複数のContainer InstancesをOCI LBのバックエンドに紐づけることは可能(IPアドレスで紐付け)
    • 水平オートスケールするわけではないので、 Container Instances数はユーザ側で管理
    • 将来的には水平スケールとOCI LBとのネイティブに統合する予定
    2. OCI DevOpsサービス(CI/CDサービス)とは統合されていない
    • OCI DevOpsのデプロイ対象としてContainer Instancesを選択することは不可
    • デプロイメント・パイプラインにて、シェルコマンドを実行可能なステージ(Shell Stage)を利用可能
    • OCI CLIを利用してビルドしたコンテナイメージでContainer Instancesをプロビジョニングすることは可能
    3. 永続化ができない
    • 現時点では、15GBのエフェメラル・ストレージが利用可能
    • OCI Container Instancesに対してBlock Volumeのアタッチが不可(ロードマップ)
    • 永続化する場合は、外部データベースなどを利用
    OCI Container Instances の制約事項(2023/3現在)
    Copyright © 2023, Oracle and/or its affiliates
    35

    View Slide

  36. インフラ管理不要(サーバレス)の Worker Node オプション
    36 Copyright © 2023, Oracle and/or its affiliates
    OKE (Oracle Container Engine for Kubernetes) Virtual Nodes
    ■ ユースケース
    Worker Nodeの運用にコストをかけずに運用したい
    Worker Nodeの運用コスト増大を防ぎたい
    ■ 特徴
    • Worker Node の管理が不要のサーバレス Worker Node
    環境 (Master Node は従来通りマネージドで提供)
    • スケーリング、アップグレード、トラブルシューティングなどの
    Worker Node 運用上のコストを自動化
    • コンテナアプリケーションが消費するリソース (CPU/メモリ) に
    基づいたきめ細やかな従量課金
    ■ 価格
    Pod が利用するリソース (CPU/メモリ) による課金
    ※具体的な価格はまだ未発表
    Container Engine
    For Kubernetes
    Managed Node Pool
    Virtual
    Node
    Pod
    自動
    スケール Node
    自動
    スケール
    Coming Soon!!
    Virtual
    Node

    View Slide

  37. OCI Queue Service
    Kyotaro Nonaka
    Solutions Architect
    Oracle Japan

    View Slide

  38. Copyright © 2023, Oracle and/or its affiliates
    38
    1. OCI Queue Service の概要
    2. OCI Queue Service の技術コンセプト
    3. Demo
    4. OCI Queue Service と OCI Streaming Service
    アジェンダ

    View Slide

  39. OCI Queue Service の概要
    サービスの概要、特長、ユースケース
    Copyright © 2023, Oracle and/or its affiliates
    39

    View Slide

  40. Copyright © 2023, Oracle and/or its affiliates
    40
    メッセージ基盤の分類
    分散ストリーミング
    • 点と(複数の)点を接続
    • ブローカー通信
    • リアルタイム/高スループット
    • メッセージの再利用性
    • 順序保証
    • 例) OCI Streaming
    (Kafka)
    メッセージキュー
    • 点と点を接続
    • ブローカー通信
    • 非同期通信
    • 一度だけのメッセージ処理
    • 処理の保証
    • 自動スケール
    • 例) OCI Queue
    メッセージブローカー
    • 点と(複数の)点を接続
    • ブローカー通信
    • Pushベース/非同期
    • 緩い順序保証
    • 例) Oracle TEQ (AQ)
    (ストリーミング)
    Web サービス
    • 点と点を接続
    • 直接の通信
    • 同期通信
    • 例) HTTP Web
    Services, gRPC

    View Slide

  41. 非同期メッセージングをサーバレスに実現する、ハイパフォーマンス・メッセージキュー
    OCI Queue Service
    ■ ユースケース
    • アプリケーションを分離し、疎結合なアーキテクチャを構築
    • 信頼性の高いスケーラブルなメッセージ基盤の活用
    ■ 特徴
    • フルマネージド、オートスケール
    • OCI Streaming を補完する適用領域
    • オフセット カーソル 無し、メッセージ消費は逐次確認
    • パーティション無し、需要に応じてオートスケール
    • at-least-once 配信、配信順序はベストエフォート
    • Dead Letter Queue (DLQ) の提供 (異常終了メッセージを退避)
    • キューメッセージの暗号化
    • HTTPとSTOMPプロトコルをサポート
    ■ 価格
    最初の100万リクエストは無料、移行100万リクエストごとに¥30.8
    * 1 リクエストのメッセージ容量が64KBを超える場合、64KBを1単位として複数のリクエストとして計算
    ** 複数メッセージの同時取得は、メッセージ容量に基づいて計算
    Container Engine
    For Kubernetes
    Containers
    Virtual
    Machine
    OCI Queue
    Service
    Functions
    Producer
    … etc. Container Engine
    For Kubernetes
    Containers
    Virtual
    Machine
    Functions
    Consumer
    … etc.
    • STOMP: Simple Text Orientated Messaging Protocol
    軽量なメッセージングプロトコル
    regular
    dead letter
    Copyright © 2023, Oracle and/or its affiliates. All rights reserved.
    41 Copyright © 2023, Oracle and/or its affiliates
    41

    View Slide

  42. 42
    マネージド
    自動化、メンテナンス要らず
    のインフラとプラットフォーム
    セキュア
    外部/内部の脅威から
    データを守る
    スケール
    停止なしの自動スケール
    と最低限のコスト
    Copyright © 2023, Oracle and/or its affiliates
    42
    OCI Queue Service の特長
    従量課金
    最大限のコストパフォーマンス
    複数のプロトコル
    HTTP/STOMPのサポート

    View Slide

  43. Copyright © 2023, Oracle and/or its affiliates
    43
    at-most-once デリバリー
    • メッセージ毎に、そのメッセー
    ジは0回か1回配信される
    • メッセージは重複しない
    • メッセージが失われる可能性
    がある
    at-least-once デリバリー
    • メッセージ毎に、少なくとも1
    回成功するように潜在的に
    複数回配信が行われる
    • メッセージの重複があり得る
    • メッセージの複製が失われな

    exactly-once デリバリー
    • メッセージ毎に正確に1回の
    配信が受信者に対して行わ
    れる
    • メッセージは重複しない
    • メッセージは失われたり複製
    されたりしない
    OCI Queue Service の機能
    at-least-once デリバリーを採用

    View Slide

  44. Copyright © 2023, Oracle and/or its affiliates
    44
    OCI Queue Serviceは正常に処理されていないメッセージを格納する方法として、デッド・レター・キューを提供
    • メッセージがキューから取得されるたびに、メッセージの配信回数が増加
    • メッセージ配信回数がキューの最大配信試行回数を超えると、メッセージはデッド・レター・キューに移動
    • キューの最大配信試行回数はキューの作成時または変更時に指定可能
    デッド・レター・キューに転送されたメッセージが削除されるのは以下の2パターン
    • 保存期間が過ぎてサービスによって削除される
    • 手動でメッセージを削除する
    OCI Queue Service の機能
    デッド・レター・キュー (DLQ)

    View Slide

  45. Copyright © 2023, Oracle and/or its affiliates
    45
    フロントエンドとバックエンドの分離
    • バックエンドサービスの並列化
    • 非同期処理の実現
    • システム利用ユーザはバックエンドの処
    理終了を待たずに結果を得る
    • 疎結合性による開発スピードの向上
    コンポーネントの独立したスケール
    • ボトルネックの解消
    • システム内でボトルネックの部分
    (IaaS/コンテナ/DB/etc.)のみを必要
    なだけスケール
    • 余剰リソースの削減
    システムの拡張性
    • 後からコンポーネントの追加(機能の
    追加など)が容易
    • QueueにProduce/Queueから
    Consumeと言う形を守ればよい
    OCI Queue Service のユースケース
    アプリケーションの分離
    Front
    Svc1
    Producer
    Consumer
    Consumer
    Consumer
    スケール
    Producer Consumer
    Producer
    メッセージのスキーマを揃えれば、
    Consumerの変更は不要
    Svc2
    Svc3

    View Slide

  46. OCI Queue Service の技術コンセプト
    サービス利用にあたって知っておくべきこと
    Copyright © 2023, Oracle and/or its affiliates
    46

    View Slide

  47. Copyright © 2023, Oracle and/or its affiliates
    47
    コンテンツ(メッセージ)
    • 文字列形式のキュー内の要素
    プロデューサ
    • キューにメッセージを送信するクライアント
    コンシューマ
    • キューからメッセージを受信するクライアント
    • コンシューマは、メッセージの受信後にキューからメッセージを削除可能
    最大保存期間
    • コンシューマによって削除されない場合の、メッセージがシステムによって自動的に削除されるまでキューがメッセージを保
    持する期間
    最大配信回数
    • デッド レター キューに送信されるまでに、メッセージがコンシューマに配信され、更新または削除されていない回数
    OCI Queue Service の概念

    View Slide

  48. Copyright © 2023, Oracle and/or its affiliates
    48
    公開中
    • メッセージは、1つ以上のプロデューサによってキューに公開
    • 各プロデューサにて保存期間を指定
    • 保存期間が指定されていない場合、メッセージはキュー(サービスの単位)で定義された保存期間に応じる
    処理中
    • 複数のコンシューマが1つのキューからメッセージを消費可能
    • コンシューマ数はスケーリング可能
    • メッセージは一度コンシューマに配信されると、表示タイムアウトに応じて他のコンシューマから見えなくなる
    更新中
    • メッセージの処理に予想よりも時間がかかる場合、コンシューマはメッセージの表示タイムアウトを延長可能
    • 表示タイムアウトを延長すると、メッセージの削除権は維持され、他のコンシューマから見えない状態が続く
    削除中
    • コンシューマにメッセージが配信され処理された後は、別のコンシューマへの再配信を防ぐためにメッセージ削除が必要
    OCI Queue Service の原則
    メッセージの状態

    View Slide

  49. Copyright © 2023, Oracle and/or its affiliates
    49
    ①プロデューサはメッセージをOCI Queueに公開
    ②コンシューマがOCI Queue上の取得可能なメッセージを取得
    • 取得時のタイムアウトを指定可能(ポーリング・タイムアウト)
    • メッセージの最大取得数の指定が可能 ※指定がない場合は20
    ③コンシューマが取得したメッセージを処理
    • 処理中のメッセージを他のコンシューマから見えないようにすることができる
    (表示タイムアウト)
    ④コンシューマがOCI Queueに対して処理したメッセージの削除リクエスト
    OCI Queue Service の原則
    基本的な処理の流れ
    Producer
    OCI Queue
    Consumer

    ② ④

    View Slide

  50. Copyright © 2023, Oracle and/or its affiliates
    50
    ポーリング・タイムアウト
    • コンシューマがメッセージの取得を待機する時間
    • タイムアウトが経過して消費可能なメッセージがな
    い場合、リクエストは空のレスポンスを返す
    • ポーリング・タイムアウトを増やすと、コンシューマが
    キューにメッセージをリクエストする回数が減る
    • デフォルトは30秒
    表示タイムアウト(メッセージロック)
    • 他のコンシューマに表示されない期間
    • コンシューマは、別のコンシューマが同じメッセージを
    取得できないように、メッセージをロック可能
    • キュー・レベル/メッセージの消費または更新時に指
    定することが可能
    OCI Queue Service の概念
    2つのタイムアウト
    Queue
    Consumer
    GetMessageリ
    クエスト
    指定(設定)した時間、Consumerが
    ポーリング
    消費可能な
    メッセージがあれば
    それを取得
    Consumer
    タイムアウト時は
    空のレスポンス
    を返却
    Consumer
    Queue
    Consumer A
    GetMessageリ
    クエスト
    指定(設定)した時間、メッセージをロック
    メッセージロック
    中はメッセージ
    が見えない
    Consumer B

    View Slide

  51. Copyright © 2023, Oracle and/or its affiliates
    51
    メッセージ配信の仕組み (Put/Get/Update/Delete)
    1. Producerは、デフォルトのメッセージ保持時間でメッセージをキューに送信。Producerは、キュー サービスがメッセージを受信して保存したという確認を受け取る。
    2. Consumer A は、表示タイムアウト A 内に処理することになっているメッセージを受信。
    3. Consumer B は、利用可能な唯一のメッセージがConsumer A によって既に消費されているため、何も受信しない。
    4. Consumer A は表示タイムアウト A 内にメッセージを処理できなかったため、メッセージを更新して表示タイムアウトを延長。
    5. Consumer B は再度メッセージを受信しようとするが、利用可能な唯一のメッセージがConsumer A によって消費および拡張されたため、受信できない。
    6. 延長された表示タイムアウトが経過すると、メッセージが再び表示されるように。
    7. Consumer B は 3 回目のメッセージの受信を試みる。Consumer B はメッセージを受信。これは、表示タイムアウト B 内に処理することになる。
    8. Consumer A はメッセージを受信しようとするが、Consumer B がメッセージを消費したため、何も受信しない。Consumer A は、メッセージの表示タイムアウトを延長したり、メッセージを削除
    したりすることができなくなる。
    9. Consumer B はメッセージを正常に処理し、キューからメッセージを削除しようとする。Consumer B は、メッセージが完全に削除されたという確認を受け取り、このメッセージは他のConsumer
    に配信されることはない。

    View Slide

  52. Copyright © 2023, Oracle and/or its affiliates
    52
    • DLQのOCIDは[QueueのOCID]-dlqとなる
    • DLQのOCIDを利用して、通常のQueueと同様にGetMessage/DeleteMessageを行う
    デッド・レター・キュー (DLQ)の利用

    View Slide

  53. Demo
    プロビジョニング/各種パラメータ/コンソール/SDKで実行
    Copyright © 2023, Oracle and/or its affiliates
    53

    View Slide

  54. OCI Queue Service と OCI Streaming Service
    それぞれのサービスの使い分け
    Copyright © 2023, Oracle and/or its affiliates
    54

    View Slide

  55. Copyright © 2023, Oracle and/or its affiliates
    55
    OCI Queue Service
    • メッセージキュー
    • 点と点を接続
    • 自動スケール
    • 一度だけのメッセージ処理
    • 処理の保証
    • HTTP/STOMP
    OCI Streaming Service
    • 分散ストリーミング
    • 点と(複数の)点を接続
    • リアルタイム/高スループット
    • メッセージの再利用性
    • 順序保証
    • Kafka API 互換
    OCIで利用可能な2つのMessaging サービス

    View Slide

  56. Copyright © 2023, Oracle and/or its affiliates
    56
    Queue
    • メッセージ: 128KB
    • ストレージ/キュー: 2GB
    Streaming
    • メッセージ: 1MB
    • ストレージ/Stream: 無制限(最大保持期間有り)
    OCI Queue と OCI Streaming の違い
    制限
    Produce
    r
    Consume
    r
    OCI Queue
    - 1000 APIリクエスト/秒
    - 10MB イングレス/秒
    - 512KB PutMessage/
    秒 or 20メッセージ /秒
    - 1000 APIリクエスト/秒
    - 10MB エグレス/秒
    - 2MB GetMessage/
    秒 or 20メッセージ /秒
    Streaming
    Produce
    r
    - 無制限リクエスト数
    - 1MB 書込み/秒/パー
    ティション
    - 5リクエスト/秒/
    Consumer Group
    - 50 Consumer
    Group/Stream
    Consume
    r
    Group

    View Slide

  57. Copyright © 2023, Oracle and/or its affiliates
    57
    Queue Streaming
    OCI Queue と OCI Streaming の違い
    配信方式
    Produce
    r
    Consumer
    OCI Queue Streaming
    Produce
    r
    Consume
    r
    Group
    4 3 2 1
    Consumer
    Consumer
    Consumer
    4
    3
    2

    3 2 1

    2
    3
    Consume
    r
    Group
    3 2 1
    3 2 1

    View Slide

  58. OCI DevOps Update
    Yutaka Ichikawa
    Oracle Corporation Japan
    Solutions Architect
    Mar08, 2023

    View Slide

  59. Copyright © 2023, Oracle and/or its affiliates
    59
    Proflie
    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
    • Oracle Cloud Hangout Cafe #ochacafe
    • CloudNative Days Tokyo #cndt #o11y2022
    Certified
    • Certified Kubernetes Administrator
    • Certified Kubernetes Application Developer
    • Certified Kubernetes Security Specialist
    • Kubernetes and Cloud Native Associate
    Publications
    New

    View Slide

  60. 1. OCI DevOps 概要
    2. OCI DevOps Update
    3. Blue-Green Deploy/Canary Release DEMO
    Agenda
    Copyright © 2023, Oracle and/or its affiliates
    60

    View Slide

  61. Copyright © 2023, Oracle and/or its affiliates
    61
    OCI DevOps 概要

    View Slide

  62. Copyright © 2023, Oracle and/or its affiliates
    62
    OCI DevOps 概要
    ソースコード、ソフトウェアビルド、アーティファクト、リリースを一括管理
    継続的インテグレーション/継続的デリバリー(CI/CD)の実現、アプリケーション開発のライフサイクルを想
    定したシステム開発および運用環境の整備

    View Slide

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

    View Slide

  64. Copyright © 2023, Oracle and/or its affiliates
    64
    OCI DevOps 概要
    イベントドリブンな連携を実現するトリガー機能
    OCI
    Code Repository
    Oracle
    Visual Builder Studio

    View Slide

  65. Copyright © 2023, Oracle and/or its affiliates
    65
    OCI DevOps Update

    View Slide

  66. Copyright © 2023, Oracle and/or its affiliates
    66
    OCI DevOps Update
    Helm チャートの検証をサポート
    デプロイ前にHelmチャートの整合性を検証可能となり、検証に失敗した場合はデプロイされない。
    • OCIRにHelmチャートがあることが必要
    • Helmチャートには有効なPGPキー・ペアによって署名さ
    れたバイナリ形式が必要
    • 公開鍵はOCI Vaultに格納するか、インラインで指定で
    きる
    アーティファクト追加時にタイプで「Helmチャー
    ト」を選択後、「Helmチャートの検証」で設定
    可能

    View Slide

  67. Copyright © 2023, Oracle and/or its affiliates
    67
    OCI DevOps Update
    デプロイ パイプラインでのコマンドの実行をサポート
    デプロイメント・パイプライン実行中にカスタムのシェルコマンドを実行。
    実行したいコマンドをコマンド仕様に合わせた
    YAMLファイルを作成して、アーティファクトレ
    ジストリに格納
    Artifact
    Registry
    デプロイメント・パイプライン作成時にステージとして「シェル・コマン
    ドの実行」テンプレートを選択
    https://docs.oracle.com/ja-
    jp/iaas/Content/devops/using/command_spec.htm
    コマンド仕様 (YAML)
    YAMLを格納したアーティファクト
    レジストリを登録
    コマンドを実行するコンテナ・インス
    タンスの設定
    Artifact
    Registry
    Container
    Instances
    OCI
    DevOps
    YAMLを参照して
    シェルコマンド実行
    YAML

    View Slide

  68. Copyright © 2023, Oracle and/or its affiliates
    68
    OCI DevOps Update
    デプロイ パイプラインでのコマンドの実行をサポート
    利用できるコマンド(2023年3月時点)
    https://docs.oracle.com/ja-jp/iaas/Content/devops/using/shellruntime_details.htm

    View Slide

  69. Copyright © 2023, Oracle and/or its affiliates
    69
    OCI DevOps Update
    プロジェクトのカスケード削除をサポート
    これまで、プロジェクトを削除するには、事前に関連リソースを削除しておくことが前提だったが、カスケード削
    除がサポートされたことにより、DevOps の Web UI から関連リソースも含めて、一括で削除可能
    • カスケード削除は72時間後に実行される
    • 72時間以内であれば、カスケード削除をキャンセル可能

    View Slide

  70. Copyright © 2023, Oracle and/or its affiliates
    70
    OCI DevOps Update
    DevOps と連携した外部リポジトリ(コード)の Terraform 構成からスタック作成
    DevOps と連携した外部リポジトリ(コード)に保存されている Terraform 構成からスタックを作成できる
    • Bitbucket クラウド
    • Bitbucket サーバー
    • DevOps
    • GitHub
    • GitLab
    「ソースコード管理タイプ」のプルダウンメニューから以下
    を選択して、DevOps で利用および Terraform 構
    成を格納しているリポジトリを選択可能

    View Slide

  71. Copyright © 2023, Oracle and/or its affiliates
    71
    OCI DevOps Update
    DevOps ビルド・パイプラインでの GraalVM Enterprise の使用可能
    OCI DevOps のビルド・パイプラインで使用する定義ファイル(build_spec.yaml)に、YUMパッケージ・マネージャー・コマンドを追
    加することで、ネイティブイメージ、JDK などの GraalVM Enterprise コンポーネントをインストールして使用可能。
    https://docs.oracle.com/ja-jp/iaas/Content/devops/using/graalvm.htm

    ・(省略)
    env:
    variables:
    "JAVA_HOME" : "/usr/lib64/graalvm/graalvm22-ee-java17"
    # PATH is a reserved variable and cannot be defined as a variable.
    # However, PATH can be changed in a build step and the change is visible in subsequent steps.
    steps:
    - type: Command
    name: "Install the latest GraalVM Enterprise 22.x for Java 17 - JDK and Native Image"
    command: |
    yum -y install graalvm22-ee-17-native-image
    - type: Command
    name: "Set the PATH here. JAVA_HOME already set in env > variables above."
    command: |
    export PATH=$JAVA_HOME/bin:$PATH
    - type: Command
    name: "Build a native executable with the installed GraalVM Enterprise 22.x for Java 17 - Native Image"
    command: |
    mvn --no-transfer-progress -Pnative -DskipTests package

    ・(省略)
    build_spec.yaml
    GraalVM Enterprise
    コンポーネントインストール
    環境変数 JAVA_HOME を設定
    環境変数 PATH 設定
    MavenおよびGraalVM Enterprise 22.x for Java 17 - Native Imageを使用して、Javaアプリケーションか
    らネイティブ実行可能ファイルを構築するビルド仕様ファイルのサンプル
    Compute
    OKE
    Functions
    GraalVM Enterprise Native Image
    によるビルド
    App

    View Slide

  72. Copyright © 2023, Oracle and/or its affiliates
    72
    OCI DevOps Update
    Blue-Green と Canary Release デプロイ新機能
    デプロイ戦略として、Blue-Greenデプロイ、カナリア・リリースに対応、Container Engine for
    Kubernetes(OKE)およびComputeインスタンス環境へのBlue-Greenデプロイ、カナリア・リリースを実

    View Slide

  73. Copyright © 2023, Oracle and/or its affiliates
    73
    OCI DevOps Update
    Blue-Green と Canary Release デプロイ新機能
    最小限のダウンタイムと即時のロールバック機能を提供するBlue-Greenデプロイ
    Blue-Green Deploy(例:OKE)
    Blue Green
    カスタム関数を利用してデプロイ前にGreen環境
    (ネームスペース)のアプリケーションを検証可能
    手動承認によるBlue環境(ネームス
    ペース)へのトラフィック・シフト
    OKEデプロイメントでは、トラフィックをルー
    ティングするためにNGINXイングレス・コン
    トローラを設定
    Green環境(ネームス
    ペース)へトラフィックシフ

    https://docs.oracle.com/ja-jp/iaas/Content/devops/using/deploy_bgstrategy.htm

    View Slide

  74. Copyright © 2023, Oracle and/or its affiliates
    74
    OCI DevOps Update
    Blue-Green と Canary Release デプロイ新機能
    アプリケーションの新しいバージョンを一部のユーザーに段階的にリリースするカナリア・リリース
    Canary Release(例:OKE)
    カスタム関数を利用して、デプロイ前にカナリア環境(ネーム
    スペース)でアプリケーション検証可能
    OKEデプロイメントでは、トラフィックをルーティングするために
    NGINXイングレス・コントローラを設定
    検証成功後、本番環境(ネームスペース)の一部のトラフィックがカナリア環
    境(ネームスペース)にシフト
    手動承認後、本番環境(ネームスペース)に検証済
    みのアプリケーションがデプロイされる
    https://docs.oracle.com/ja-jp/iaas/Content/devops/using/deploy_canarystrategy.htm

    View Slide

  75. OCI DevOps Demo
    Copyright © 2023, Oracle and/or its affiliates
    75

    View Slide

  76. Copyright © 2023, Oracle and/or its affiliates
    76
    OCI DevOps Blue/Green & Canary Demo
    Blue/Green Deploy Demo Environment
    アプリケーションの新しいバージョンを一部のユーザーに段階的にリリースするカナリア・リリース

    View Slide

  77. Copyright © 2023, Oracle and/or its affiliates
    77
    OCI DevOps Blue/Green & Canary Demo
    Blue/Green Traffic Shift
    Load
    Balancer
    Containers
    Load
    Balancer
    Containers Containers
    Load
    Balancer
    Containers Containers
    OCI DevOps OCI DevOps OCI DevOps
    deploy deploy deploy
    nginx.ingress.kubernetes.io/canary: "true“
    nginx.ingress.kubernetes.io/canary-by-header: redirect-to-namespaceB
    nginx.ingress.kubernetes.io/canary-weight: "100"
    nginx.ingress.kubernetes.io/canary: "true“
    nginx.ingress.kubernetes.io/canary-by-header: redirect-to-namespaceB
    nginx.ingress.kubernetes.io/canary-weight: "0"
    1回目 2回目 3回目
    namespaceA
    (blue)
    namespaceB
    (green)
    接続先を切り替え 接続先を切り替え
    namespaceA
    (blue)
    namespaceB
    (green)
    namespaceA
    (blue)
    namespaceB
    (green)

    View Slide

  78. Copyright © 2023, Oracle and/or its affiliates
    78
    OCI DevOps Blue/Green & Canary Demo
    Blue/Green Traffic Shift
    Load
    Balancer
    Containers
    Load
    Balancer
    Containers Containers
    Load
    Balancer
    Containers Containers
    nginx.ingress.kubernetes.io/canary: "true“
    nginx.ingress.kubernetes.io/canary-by-header: redirect-to-namespaceB
    nginx.ingress.kubernetes.io/canary-weight: “100"
    4回目 5回目 6回目
    Containers
    OCI DevOps
    deploy
    nginx.ingress.kubernetes.io/canary: "true“
    nginx.ingress.kubernetes.io/canary-by-header: redirect-to-namespaceB
    nginx.ingress.kubernetes.io/canary-weight: "100"
    OCI DevOps
    deploy
    nginx.ingress.kubernetes.io/canary: "true“
    nginx.ingress.kubernetes.io/canary-by-header: redirect-to-namespaceB
    nginx.ingress.kubernetes.io/canary-weight: "0"
    OCI DevOps
    deploy
    接続先を切り替え 接続先を切り替え 接続先を切り替え
    namespaceA
    (blue)
    namespaceB
    (green)
    namespaceA
    (blue)
    namespaceB
    (green)
    namespaceA
    (blue)
    namespaceB
    (green)

    View Slide

  79. Copyright © 2023, Oracle and/or its affiliates
    79
    OCI DevOps Blue/Green & Canary Demo
    Canary Demo Environment

    View Slide

  80. 参考情報
    Copyright © 2023, Oracle and/or its affiliates
    80

    View Slide

  81. Copyright © 2023, Oracle and/or its affiliates
    81
    参考資料
    OCI DevOps Release Note
    https://docs.oracle.com/en-us/iaas/releasenotes/services/devops/
    OCI DevOps Documents
    https://docs.oracle.com/ja-jp/iaas/Content/devops/using/home.htm
    Sample Source of Demo
    https://github.com/oracle-japan/devops-deploy-strategy

    View Slide

  82. Thank you
    Copyright © 2023, Oracle and/or its affiliates
    82

    View Slide

  83. View Slide