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

OCI Cloud Native Journey

OCI Cloud Native Journey

CloudNative Days Tokyo 2023 Sponsor Session

oracle4engineer

December 11, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. OCI Cloud Native Journey CloudNative Days Tokyo 2023 Sponsor Session

    Yutaka Ichikawa Oracle Corporation Japan Solutions Architect Dec 11, 2023
  2. Copyright © 2023, Oracle and/or its affiliates 2 Profile Name

    • Yutaka Ichikawa/市川 豊 Belong • Solutions Architect Role • Principal Cloud Solution Engineer SNS • X/GitHub/Qiita:cyberblack28 Blog • https://cyberblack28.hatenablog.com/ Materials • https://speakerdeck.com/cyberblack28/ • https://speakerdeck.com/oracle4engineer/ 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
  3. Copyright © 2023, Oracle and/or its affiliates 3 ThinkIT +

    Oracle Cloud Hangout Cafe Oracle Cloud Hangout Café ダイジェスト • 第1回「CI/CD最新事情」 2023年1月 • 第2回「マイクロサービスの認証・認可とJWT」 2023年2月 • 第3回「Kubernetes Operator 超入門」 2023年3月 • 第4回「Kubernetes のセキュリティ」 2023年4月 • 第5回「実験!カオスエンジニアリング」 2023年5月 • 第6回「Service Mesh がっつり入門!」 2023年6月 第一弾公開中 • 第1回「Kubernetes 超入門」 2023年12月 • 第2回「IaC のベストプラクティス」 2023年1月 • 第3回「Kubernetes のネットワーク」 2023年2月 • 第4回「Python で作る API サーバー」 2023年3月 • 第5回「Observability 再入門」 2023年4月 • 第6回「Kubernetes のオートスケーリング」 2023年5月 第二弾連載開始 https://thinkit.co.jp/series/10728
  4. Copyright © 2023, Oracle and/or its affiliates 5 1. 高コストパフォーマンスを実現する

    OCI アーキテクチャ • OCI 概要 • 第二世代 クラウドアーキテクチャ Agenda 2. OCI Cloud Native • OCI Cloud Native Journey • IaC • Container • DevOps • Observability • Cost 3. OCI New Service • OCI Cache with Redis • OCI Database with PostgreSQL
  5. Copyright © 2023, Oracle and/or its affiliates 9 グローバルに用途別データセンターリージョンを展開 OCI

    ( Oracle Cloud Infrastructure ) は、23か国、46のパブリック・クラウド・リージョンにおいてサービスを提供 https://www.oracle.com/jp/cloud/public-cloud-regions/ 2023年12月時点
  6. Copyright © 2023, Oracle and/or its affiliates 12 第二世代クラウドアーキテクチャ 物理サーバの外側でネットワークを仮想化(Off-box)して、安定したパフォーマンスとセキュリティの強化を実現

    OCI アーキテクチャ全体像 ネットワーク仮想化専用ハードウェア OCI では、ネットワーク仮想化を専用のハードウェアで 構成することで、安定したパフォーマンスと高い分離性 によるセキュリティの強化を実現 ハイパーバイザーによるオーバヘッドも削減 ネットワーク仮想化レイヤーには外部(OCIの外)からアクセスできない
  7. Copyright © 2023, Oracle and/or its affiliates 13 第二世代クラウドアーキテクチャ 低遅延・ノンブロッキング

    CLOS ネットワークと Leaf & Spine トポロジー構成 • オーバー・サブスクリプションによる輻輳を起因とする、Noisy Neighbor の問題を解消(安定した帯域確保) • 一定のネットワーク・ホップ数(最大2ホップ)による、安定した低遅延を実現 • 各ベアメタルサーバーは、少なくとも 25Gb/s, < 100 μs の接続性を持つ • 返戻規定付きのネットワークのパフォーマンスSLA(99.9%の確率で90%以上) OCI アーキテクチャ全体像 AD : Abailability Domain (可用性ドメイン) 1つ以上のデータセンターから構成されるリー ジョン内の独立したファシリティ FD : Fault Domain (フォルト・ドメイン) AD 内のハードウェアやインフラのセット AD 間 1Tb/s, < 500 μs 各ベアメタルサーバ間 25Gb/s, < 100 μs
  8. Copyright © 2023, Oracle and/or its affiliates 16 OCI Cloud

    Native Journey OCI Cloud Native Services Landscape * : 今後 GA を予定とするサービス Container DevOps IaC Observability Container
  9. Copyright © 2023, Oracle and/or its affiliates 18 IaC IaC

    について IaC(Infrastructure as Code)は、「ITシステムにおけるインフラストラクチャの状態を(人手を介した手順の羅列としてではなく)ソ フトウェアによって自動実行可能なコードの形で記述する」といわれる。 サーバ、ネットワークなどのインフラ構成をプログラムのようなコードで記述して、そのコードからインフラ構成の管理、プロビジョニングを行う プロビジョニング
  10. Copyright © 2023, Oracle and/or its affiliates 19 IaC IaC

    について 1.作業の省人化と効率化によるコスト削減 人による作業をコードにして自動的に行うことで人件費の削減 2.コード化による高度な品質管理 コード実行による人的ミスの削減、複数台で同じ設定を行う場合など冪等性と再利用性を持って、効率的に実行 3.DevOpsとの連携 ソフトウェアとインフラ部分を組み合わせることで、開発、テスト、インフラセットアップに至る工程を自動化し、 効率的に管理できる
  11. Copyright © 2023, Oracle and/or its affiliates 20 IaC Terraform

    Terraform は、HashiCorp 社が手掛けるオープンソースのインフラ自動構築ツール。構築したいインフラの構成をHCL (HashiCorp Configuration Language) という専用の宣言型の設定言語で定義して、ターミナルからコマンドを実行するだけで自動的にインフラの プロビジョニングや効率的なインフラ構成管理を実現。
  12. Copyright © 2023, Oracle and/or its affiliates 21 IaC Resource

    Manager Terraform as a Service • Terraform 実行エンジンを OCI 上に実装 • HCL (HashiCorp Configuration Language) で記述された Terraform の標 準ファイルを使用 • 状態(State)を OCI 上で管理 OCI Native Integration • OCI の全てのリソースに対する CRUD 処理 • OCI コンソール、API、IAM、Audit など OCI 標準機能を利用できる • OCI リソースのインタラクティブな管理 Resource Manager
  13. Copyright © 2023, Oracle and/or its affiliates 22 IaC Resource

    Manager Object Storage コード管理システム ローカル・ファイル .zip ファイル OCI Provider tfstate の履歴管理 ・・・ 既存の環境 (コンパートメント単位) .tf ファイル Resource Manager plan apply destroy plan apply destroy stack1 stack2 ・ ・ ・ ・ ・ ・
  14. Copyright © 2023, Oracle and/or its affiliates 23 IaC Resource

    Manager Resource Manager は、スタンドアロンで Terraform を利用する場合の課題を解消 ! • Stack という単位で複数の Terrafrom 設定ファイルを一括管 理可能 • OCI IAM との統合により、誰がど の権限でリソースの操作できるかを 管理可能 • Resource Manager が管理する ためユーザは意識不要 • だれがどのようにリソースを操作して 状態を変更したか追跡可能 State ファイルの管理 Terraform 実行ユーザ管理 複数環境の管理
  15. Copyright © 2023, Oracle and/or its affiliates 24 IaC Resource

    Manager Resource Manager の主な機能 機能 概要 構成ソースプロバイダ 連携 CI/CD を実現するために構成ソースプロバイダ(GitHub, GitLab/GitLab サーバ, Bitbucket/Bitbucket サーバー, OCI DevOps コードリポジトリ)との連携機能 リソース・ディスカバリー プロビジョニングされたリソースを Terraform 構成、状態ファイルとしてキャプチャする機能 ドリフト検出 Resource Manager が最後に実行した状態と OCI の実際のリソースの状況の差分を検出 する機能 スタックロールバック 過去に適用したジョブのスタック構成をロールバックする機能 詳細ドキュメント:https://docs.oracle.com/ja-jp/iaas/Content/ResourceManager/home.htm
  16. Copyright © 2023, Oracle and/or its affiliates 26 Container Container

    について Build Ship Run イメージレジストリ Dockerfile コンテナイメージ アプリケーション フレームワーク アプリケーション ライブラリ OS イメージ ① コンテナイメージ自動作成 ③ イメージを基にコンテナを起動 イメージの 作成手順を記載 $ docker image pull $ docker image push $ docker image build $ docker container run コンテナ ② Docker イメージの保存・共有 $ kubectl apply コンテナ Pod Pod Pod コンテナプラットフォーム Container as a Service (CaaS) Kubernetes as a Service (KaaS)
  17. Copyright © 2023, Oracle and/or its affiliates 27 Container Kubernetes

    as a Service (KaaS) & Container as a Service (CaaS) Kubernetes を使用してコンテナをオーケストレーションするサービ スで、大規模なコンテナ環境の効率的な管理が可能。 Kubernetes as a Service (KaaS) Container as a Service (CaaS) • 自動化されたオーケストレーション: 管理が容易 • 高可用性と耐障害性: アプリケーションの安定稼働 • 強力なコミュニティとエコシステム: 広範なサポートとツール コンテナを使用してアプリケーションをデプロイ、管理するサービス で、コンテナアプリケーションの簡単なデプロイと管理が可能。 • シンプルさと柔軟性: アプリケーションのデプロイが容易 • スケーラビリティ: リソースの調整が簡単 • 環境の統一性: 開発から本番までの環境差異を最小化
  18. Copyright © 2023, Oracle and/or its affiliates 28 Container Oracle

    Container Engine for Kubernetes (OKE) & Container Instances Kubernetes as a Service (KaaS) Container as a Service (CaaS) Oracle Container Engine for Kubernetes Container Instances エンタープライズ品質と開発生産性を両立する Kubernetes プラットフォーム インフラ管理不要(サーバレス)のコンテナ実行環境
  19. Copyright © 2023, Oracle and/or its affiliates 29 Container Oracle

    Container Engine for Kubernetes (OKE) Oracle Container Engine for Kubernetes エンタープライズ品質の性能と可用性 • 高性能なインフラストラクチャによる分散アプリケーション環境 • 冗長構成を自動で構成する高可用性 マネージド環境 • ワーカーノードを柔軟に管理できる Managed Nodes • ワーカーノードの管理を不要とする Virtual Nodes (オプション機能) Cloud Native Java ソリューションや Oracle Database との親和性 • Cloud Native な Java アプリケーション開発 • Oracle Database / MySQL の Cloud Native アプローチ
  20. Copyright © 2023, Oracle and/or its affiliates 30 Container エンタープライズ品質の性能と可用性

    • 各ホスト間を 低レイテンシーかつ広帯域の N/W で接続したボトルネックの無いインフラストラクチャ • 大規模な数のコンテナのデプロイメントにおいて ネットワーク性能劣化による品質低下を確実に防止 https://www.accenture.com/t20171003T083750Z__w__/us-en/_acnmedia/PDF-62/Accenture- Enterprise-Workloads-Meet-Cloud.pdf OCI Other 第3者機関によるN/W性能検証結果 高性能 IaaS 上に構築された確実な性能を実現する Kubernetes プラットフォーム ミッションクリティカル・システムに不可欠な安定した高性能を確実に維持
  21. Copyright © 2023, Oracle and/or its affiliates 31 Container エンタープライズ品質の性能と可用性

    物理障害に対する耐障害性をマネージド機能により確実かつ容易に実現 *単一 AD 構成のデータセンターの場合は、AD 内で物理 H/W レベルのメンテナンス区画で分離された Fault Domain にまたがって分散配置することで可用性を担保
  22. Copyright © 2023, Oracle and/or its affiliates 32 Container マネージド環境

    OKE ワーカーノードを柔軟に管理できる Managed Nodes と費用対効果を促す Basic Cluster ワーカーノード Basic Cluster Managed Nodes Basic Cluster(基本クラスタ) • Kubernetes および OKE によって提供されるコア機能を提供 • IaaS サービス課金のみ (Cluster に課金はなし) • 拡張クラスタで提供されるオプション機能は利用不可 • サポートするワーカーノード数は 1000 Node まで ※Basic Cluster から Enhanced Cluster へは In-place upgrade によるアップグレードが可能 (Enhanced Cluster から Basic Cluster へのダウングレードは不可) Managed Nodes • ワーカーノードの各ノードに SSH ログインして柔軟に管理 • Cluster Autoscaler 機能を利用して自動ノードスケール • 永続化領域(OCI Block Volume / FSS)の利用 • AMD 以外の仮想マシンインスタンスを利用
  23. Copyright © 2023, Oracle and/or its affiliates 33 Container マネージド環境

    OKE ワーカーノードの管理を不要とする Virtual Nodes をはじめ、オプション機能を実現する Enhanced Cluster ワーカーノード Enhanced Cluster Enhanced Cluster(拡張クラスタ) • Basic Cluster で提供される機能に加えて、以下オプション機能を提供 • Virtual Nodes • アドオン機能管理 • Workload Identity • オンデマンドノードサイクル • SLAの提供 • クラスタごとに課金が発生(¥14/hour) • サポートする ワーカーノード数は 2000 Node まで Virtual Nodes • ステートレスなアプリケーションをスケーラブルに利用 • ワーカーノードの運用負荷を削減 • ワーカーノードが消費するリソースを意識せず、コンテナアプリケーションを運用 Virtual Nodes Virtual Nodes はユーザから操作不可
  24. Copyright © 2023, Oracle and/or its affiliates 34 Container マネージド環境

    OKE ワーカーノードの管理を不要とする Virtual Nodes ワーカーノード Enhanced Cluster Virtual Nodes Virtual Nodes はユーザから操作不可 選択可能な Compute シェイプは E3 / E4 (2023/11 時点) • ユーザ側での OCPU とメモリの選択不要 • Pod が消費する OCPU とメモリは、デプロイされた Pod の Resource Requests / Limits から算出(※) ワーカーノードに対するセキュリティパッチやトラブルシューティングなどのメンテナンスが不要な仮想ワーカーノード • 1 Virtual Node あたり 500 Pod まで実行可能 • Virtual Node のリソース( OCPU /メモリ )考慮不要 • オートスケールには HPA リソースの作成が必要 • CNI は OCI VCN-Native Pod networking を利用 詳細ドキュメント : https://docs.oracle.com/ja- jp/iaas/Content/ContEng/Tasks/contengcomparingvirtualwithmanagednod es_topic.htm#contengusingvirtualormanagednodes_topic (※) Resource Requests / Limits の指定がない場合、 0.125OCPU / メモリ 0.5GB を割り当てる(課金は 1 OCPU / メモリ 1 GB として切り上げ)
  25. Copyright © 2023, Oracle and/or its affiliates 35 Container マネージド環境

    OKE 利用パターン Basic Cluster(基本クラスタ) Enhanced Cluster(拡張クラスタ) Managed Nodes Managed Nodes Virtual Nodes コア機能 ◯ ◯ ◯ Workload Identity × ◯ ◯ アドオン管理 × ◯ ◯ オンデマンド ノードサイクル × ◯ - (コントロールプレーンと同時アップグレードのため考慮不要) 課金 ワーカーノード(各ノード)のみ ( OKE およびクラスタ課金なし) 拡張クラスタ + ワーカー ノード(各ノード) 拡張クラスタ + Virtual Nodes + Pod が利用する OCPU / メモリ Enhanced Cluster(拡張クラスタ)¥14 / hour Virtual Nodes(1 Virtual Node あたり)¥2.1 / hour ノード料金表 : https://www.oracle.com/jp/cloud/compute/pricing/
  26. Copyright © 2023, Oracle and/or its affiliates 36 Container マネージド環境

    オプション機能概要 機能 概要 アドオン管理 Kubernetes クラスタの構築および拡張するためのソフトウェアを管理 Workload Identity ワークロード ID に対するポリシーによって他の OCI リソースに対するアクセス制御 (例:特定のワークロード ( Pod ) から OCI Object Storage に対する全権限を許可 するなど) オンデマンドノードサイクル 既存のノード・プールに新しい Kubernetes バージョンを指定してから、ノード・プール内の 管理対象ノードで実行されている Kubernetes のバージョンをアップグレードできる機能 SLAの提供 SLA ( Service Level Agreement ) を提供 詳細ドキュメント:https://docs.oracle.com/ja-jp/iaas/Content/ContEng/home.htm
  27. Copyright © 2023, Oracle and/or its affiliates 37 Container Cloud

    Native Java ソリューションや Oracle Database との親和性 Cloud Native な Java アプリケーション開発 Oracle Database / MySQL の Cloud Native アプローチ OKE WebLogic Server Clusters Helidon/GraalVM を活用したマイクロサービスアプリ ケーション Autonomous Database MySQL Database Service Operator Oracle Database Operator、 Oracle MySQL Operator、 OCI Service Operator for Kubernetes など Oracle が提供する Operator でデータベースのライフ サイクル管理 マイクロサービスアプリケーションと 親和性を高める Oracle Database や MySQL のマネー ジドサービス との連携 WebLogic Server for OKE Helidon GraalVM Autonomous Database MySQL Database Service Java EE/Jakarta EE 準拠のアプリケーションサーバコ ンテナ対応版 Java のマイクロサービスフレームワーク ※WebLogic Server ユーザにはサポートあり 高速起動/高速処理/マルチ言語対応のランタイムエン ジン マルチモデル集中型データベースと機械学習ベースの 自動化により運用コストを最大90%削減して完全な ライフサイクル管理を実現する OCI ネイティブな Oracle Database OLTP と OLAP に対応する1つの MySQL HeatWave Database Service
  28. Copyright © 2023, Oracle and/or its affiliates 38 Container Container

    Instances インフラ管理不要(サーバレス)のコンテナ実行環境 • セキュアに分離、最適化されたコンテナ実行環境 • ユーザによるインフラレイヤーの管理(パッチ適用、トラブルシューティン グなど)不要 • コンテナを即座に実行可能 Container Instances
  29. Copyright © 2023, Oracle and/or its affiliates 39 Container Container

    Instances 外部のコンテナレジストリーからの イメージプルも可能
  30. Copyright © 2023, Oracle and/or its affiliates 40 Container Container

    Instances の主なユースケース コンテナ・オーケストレーション ( Kubernetes など) を必要としないコンテナ化されたアプリケーション 迅速なインスタンスの作成と破棄が求められるワークロード • API サーバ/ Web アプリケーション • 一時的なワークロード • CI/CD パイプライン・ジョブ • 開発/テスト環境 • データ/メディア処理 • 自動化タスク 物理マシンや仮想マシン上で稼働するスタンドアロンなワークロード • スケール不要なレガシー・アプリケーションをコンテナ化してサーバレス運用 ※2023年12月時点、Container Instances はスケール機能は未実装
  31. Copyright © 2023, Oracle and/or its affiliates 42 DevOps クラウドネイティブを実現する道しるべ

    1. CONTAINERIZATION | コンテナ化 仮想マシンとは異なり、環境差異が無く、軽量なイメージで可搬性が高く、リリー スサイクルを速め、機敏さと信頼性を兼ね備えたアプリケーションリリースを実現 2. CI/CD | 継続的インテグレーション/デリバリー ソースコードの変更を契機に、自動的なビルド、テスト、そしてステージング環境 および本番環境へのデプロイにつながる CI/CD 環境を構築する 3. ORCHETRATION & APPLICATION DEFINITION | オーケストレーションツール、アプリケーション定義 コンテナ化されたアプリケーションを Kubernetes 基盤で自律的に運用 4. OBSERVABILITY & ANALYSIS | 可観測性と分析 モニタリング、ロギング、トレースなど可観測性を実現するソリューションの選択 CNCF Trail Map | https://github.com/cncf/trailmap コンテナ化 クラウドネイティブの実現へと向かう 開発自動化 運用自動化 可観測性
  32. Copyright © 2023, Oracle and/or its affiliates 43 DevOps CI/CDについて

    CI = Continuous Integration = 継続的インテグレーション CI/CD は、ソースコードの更新を契機にビルド、テストが進行して、アプリケーションがデプロイされるまでの工程が自動化されたパ イプライン CD = Continuous Delivery = 継続的デリバリー アプリケーション開発に必要となるビルド、テスト、成果物(アーティファクト)の保存までの工程を自動化して、継続的に行われる状態 にすること CI(継続的インテグレーション)によって生み出された成果物(アーティファクト)を、実際の環境(ステージングやプロダクション)へ 自動的に配置すること CI 環境を整備することで、早期バグの発見による品質向上、検証時間の短縮によるリリーススピード向上、開発者が開発に集中でき る環境でより良い開発サイクルを実現 CD 環境を整備することで、エンドユーザに影響を与えることなく、高頻度、安定かつ安全にアプリケーションのリリースを実現
  33. Copyright © 2023, Oracle and/or its affiliates 44 DevOps CI/CDについて

    ソースコードが更新されるたびに CI パイプラインが稼働して、アプリケーションビルド/テスト、コンテナイメージビルド、コンテ ナイメージプッシュ、 CD パイプラインによるデプロイ。 コードをソースコードリポジトリに コミット/プッシュ/マージ CIパイプラインによる テスト、ビルド、 イメージプッシュ Developer Code Repository CI/CD Pipeline Operator Infrastructure Engineer コンテナプラットフォーム へのデプロイ Code Dockerfile manifest Build Run イメージ レジストリ Ship イメージ 共有 CI CD
  34. Copyright © 2023, Oracle and/or its affiliates 45 DevOps OCI

    DevOps OCI DevOps End to End の開発・運用プロセス • コード管理、ビルド・パイプライン、 アーティファクト管理、デプロイメン ト・パイプラインから構成される各機能を用いた、一気通貫の開発・運 用プロセスを実現 幅広いデプロイ環境とアーティファクト管理 • Compute、OKE、OCI Functions 環境へのスムーズなデプロイ • OCI Registry、Artifact Registry サービスと連携したアーティファクト 管理 外部コード管理システムとの連携 • GitHub、GitLab、Bitbucket のコードリポジトリとのシームレスな外部 連携
  35. Copyright © 2023, Oracle and/or its affiliates 46 DevOps OCI

    DevOps OCI 独自のコードリポジトリ、 GitHub/GitLab/Bitbucket とのシームレスな連携 OCI の各環境へのスムーズなデプロイを実現 UI および CLI を利用したビルド・パイプライン の作成と実行進行状況の確認 OCI のアーティファクトサービスとの連携による アーティファクト管理 豊富なデプロイテンプレートを利用したデプロ イメント・パイプラインの作成と実行進行状況 の確認
  36. Copyright © 2023, Oracle and/or its affiliates 47 DevOps OCI

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

    DevOps CI ステージ単位にテンプレートを利用して、簡単にビルド・パイプラインを構築 TEST BUILD DELIVER DEPLOY build_spec.yaml OCIR Artifact Registry Deployment Pipeline 事 前 に セ ッ ト ア ッ プ し て テ ン プ レ ー ト か ら 登 録 Build Pipeline
  38. Copyright © 2023, Oracle and/or its affiliates 49 DevOps OCI

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

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

    DevOps CD 各テンプレートを選択して、テンプレートの内容に従ってデプロイメント・パイプラインを構築 ステージ単にテンプレートを利用して、簡単にデプロイメント・パイプラインを構築 VM & BM Compute Functions OKE,Compute,Functionsへ のデプロイ先を指定できるテン プレート 承認プロセス追加できるテンプ レート Functionsで作成した関数を 呼び出しを設定できるテンプ レート ワークフロー内で一時停 止を追加できるテンプレー ト バックエンドIPの2つのセット間 でトラフィックをルーティングでき るテンプレート OKE デプロイメント・パイプラインでカ スタム・コマンドを実行できるテ ンプレート 凡例 Deployment Pipeline
  41. Copyright © 2023, Oracle and/or its affiliates 52 DevOps OCI

    DevOps CD デプロイメント・パイプラインの流れを可視化 各ステージの実行結果 各 ス テ ー ジ の 実 行 ロ グ Deployment Pipeline
  42. Copyright © 2023, Oracle and/or its affiliates 53 DevOps OCI

    DevOps コード変更と Git Push をトリガーに、一連のパイプラインを自動実行、OKEクラスタにサンプルコンテナアプリケーションが デプロイを確認 [Oracle Cloud Infrastructure(OCI) DevOps ことはじめ – OKE 編 -] https://oracle-japan.github.io/ocitutorials/cloud-native/devops-for-beginners-oke/
  43. Copyright © 2023, Oracle and/or its affiliates 55 Observability Observability

    について OBSERVABILITY & ANALYSIS | 可観測性と分析 モニタリング、ロギング、トレースなど可観測性を実現するソリューションの選択 モニタリング トレーシング ロギング Prometheus fluentd Jeager Open Telemetry Metrics Logs Traces 何が起きているのか 何が起きたのか どこで起きたのか Observability 3柱
  44. Copyright © 2023, Oracle and/or its affiliates 56 Observability Observability

    について “オブザバビリティとは、システムがどのような状態になったとしても、 どんなに斬新で奇妙な状態であっても、どれだけ理解し説明できる かを示す尺度です。” 出典:『オブザーバビリティ・エンジニアリング』 1.2 オブザーバビリティのソフトウェアシステムへの適用 P4~6
  45. Copyright © 2023, Oracle and/or its affiliates 57 Observability Monitoring、Logging、Application

    Performance Monitoring Metrics Logs Traces Monitoring Logging Application Performance Monitoring
  46. Copyright © 2023, Oracle and/or its affiliates 58 Observability Monitoring

    Monitoring メトリックおよびアラーム機能による、OCI リソースをアクティブおよびパッシブに監視 メトリック機能による、OCI リソースのヘルス、容量、パフォーマンス に関するメトリックデータ取得 アラーム機能による、OCI Notifications をはじめ、 通知サービスと連携
  47. Copyright © 2023, Oracle and/or its affiliates 59 Observability Monitoring

    OKE を利用して Kubernetes クラスタをプロビジョニング後、自動的に確認できるメトリック例 • ノード・ステータス 様々な状態のコンピュート・ノードの数 • Kubernetes のノードコンディション Kubernetes API Serverで示される様々な条件のワーカー・ノードの数 サービス・メトリクス メトリック・エクスプローラー APIServerRequestCount APIServerResponseCount UnschedulablePods Kubernetes API Serverが受信したリクエスト数 Kubernetes API Serverから送信される200以外の 様々なレスポンス(エラー・レスポンス)の数 Kubernetesスケジューラがスケジュールできないポッド数
  48. Copyright © 2023, Oracle and/or its affiliates 60 Observability Logging

    Logging 高スケーラビリティと完全管理 • 高くスケーラブルで完全に管理された一元的なビューを提供し、テナント 内のすべてのログにアクセス • ログには、リソースのパフォーマンスおよびアクセス方法を説明するクリティ カルな診断情報が含まれる 3種類のログ生成と管理 • 監査ログ:OCI Audit サービスによって発行されるイベント関連ログ • サービスログ:OCI の各サービスログ • カスタムログ:カスタム・アプリケーション、他のクラウド・プロバイダまたは オンプレミス環境からの診断情報を含むログ
  49. Copyright © 2023, Oracle and/or its affiliates 61 Observability Logging

    OKE でのカスタム・ログと監査ログの取得例 カスタムログ ワーカーノード上で実行されている アプリケーション( Pod )の実行ログ 監査ログ OKE によって実行された操作 のログを表示 Kubernetes API サーバーに よって実行された操作のログを 表示
  50. Copyright © 2023, Oracle and/or its affiliates 62 Observability Logging

    コントロールプレーンの各コンポーネント(kube-apiserver、cloud-controller-manager、kube-controller-manager、kube- scheduler、All log sources(一括取得))のログも取得可能 type=Loadbalancer のサービスを削除したログ
  51. Copyright © 2023, Oracle and/or its affiliates 63 Observability Application

    Performance Monitoring アプリケーションのパフォーマンスを可視化し、サーバーおよびユーザー・サイド からの問題の根本的原因を分析 • マイクロサービスのアプリケーションのトレース情報の分析に特化した分散ト レーシング • OpenTelemetry スパンおよびメトリック、Zipkin および Jaeger スパンを取 り込み可能 Application Performance Monitoring 分散トレーシング • ブラウザから直接、エンド・ユーザーのエクスペリエンスを把握 リアル・ユーザー・モニタリング • 複数のバンテージ・ポイントから定期的にテストすることで、アプリケーションの 可用性を評価 合成モニタリング • サーバの可用性、負荷、パフォーマンスを監視 サーバー・モニタリング
  52. Copyright © 2023, Oracle and/or its affiliates 64 Observability Application

    Performance Monitoring Application Performance Monitoring でサンプルアプリケーションを分散トレーシングとリアル・ユーザー・モニタリングで観測した例 Oracle がオープンソースで提供している Java のマイクロサービスフレームワーク Oracle がオープンソースで開発している JavaScript 用フレームワーク インメモリで動作しているデータベース [Oracle Container Engine for Kubernetes(OKE)でサンプルマイクロサービスアプリケーションをデプロイしてOCIのオブザバビリティサービスを利用してみよう] https://oracle-japan.github.io/ocitutorials/cloud-native/oke-observability-for-advances/
  53. Copyright © 2023, Oracle and/or its affiliates 66 Observability Application

    Performance Monitoring リアル・ユーザー・モニタリング
  54. Copyright © 2023, Oracle and/or its affiliates 67 Observability 補足

    プロファイル、例外、イベントデータの取得については、オープンソースソフトウェアの利用を検討(2023年12月時点) • メトリクス:CPU使用率やメモリ使用量などの数値データ(何が起きているのか) • ログ:正常及び異常な状態など、タイムスタンプと共に出力されるテキストデータ(何が起きたのか) • トレース:個々のアプリケーションを伝播する特定のリクエストの追跡データ(どこで起きたのか) この3種類のデータだけでは不十分 • プロファイル:スタックトレースおよびスタックトレースに関連するCPU使用率やメモリ使用率のデータ • 例外:エラーおよびエラーを引き起こした入力値データ • イベント:サービスに対するアクションのデータ(例:商品サイトで商品購入、チケットサイトで席予約など) さらにもう3種類のデータ 参考 TEMPLE: Six Pillars of Observability (https://medium.com/@YuriShkuro/temple-six-pillars-of-observability-4ac3e3deb402)
  55. Copyright © 2023, Oracle and/or its affiliates 69 Cost 紹介したサービスの価格について

    各サービス、利用するリソース使用に応じて料金が発生、サービス自体は無料提供 簡易参考構成図
  56. Copyright © 2023, Oracle and/or its affiliates 70 Cost 紹介したサービスの価格について

    カテゴリ サービス名 価格/月 試算想定 IaC Resource Manager ¥ 0 プロビジョニングされるリソースについては各リソースの価格仕様に準ずる Container Oracle Container Engine for Kubernetes ¥ 11,740.26 Basic Cluster + Managed Nodes 想定 • 1 OCPU (equals 2 vCPUs) x 8GB MEM x 3 Node (AMD E4 Flex Shape) • 10GB Block Volume x 3 ¥ 937.44 100Mbps Flexible Load Balancer Container Instances ¥ 3,853.92 1 OCPU (equals 2 vCPUs) x 8GB MEM x 1 Instance DevOps OCI DevOps ¥ 217.00 • ビルド用シェイプ(デフォルト): 2 OCPU (equals 4 vCPUs) x 8GB MEM 1ヶ月25時間 使用想定 • CI ビルド Build Duration 10分 Monthly Runs 150回 • コードリポジトリ用オブジェクトストレージ: 1GB Observability Monitoring ¥ 260.4 取り込み(100万データポイント/時間単位): ¥0.35 ¥ 156.24 取得(100万データポイント/時間単位):¥0.21 Logging ¥ 630 100GBログストレージ 1か月あたり10GBまでのログストレージは無料 以降10GBごとに¥7(時間単位) Application Performance Monitoring ¥ 67,704 Tracing Data 100,000 イベント ¥ 91 (時間単位) 各サービス、利用するリソース使用に応じて料金が発生、サービス自体は無料提供 単価 x 24時間 x 31日として試算
  57. Copyright © 2023, Oracle and/or its affiliates 71 Cost OCI

    Cloud Free Tier まずは、30日間無料トライアルから! https://www.oracle.com/jp/cloud/free/
  58. Copyright © 2023, Oracle and/or its affiliates 72 Cost OCI

    Cloud Free Tier OCI のチュートリアルで手を動かしてみましょう! https://oracle-japan.github.io/ocitutorials/cloud-native/ Cloud Native チュートリアル
  59. Copyright © 2023, Oracle and/or its affiliates 75 OCI Cache

    with Redis フルマネージド・キャッシングサービス ▪ ユースケース • データをメモリにキャッシュし、低レイテンシでエンドユーザ にデータを提供 ▪ 特徴 • Redis 7.0.5 ベースのフルマネージドサービス • メモリ量とノード数のみ指定のシンプルなプロビジョニング • クラスタあたり ノードまで • ノードあたり から まで • オンラインスケーリング • メトリクスの収集 • 自動 HA 構成 ▪ 価格 • 1GBメモリ利用1時間ごとに¥2.716(10GBまで) • 1GBメモリ利用1時間ごとに¥1.904(10GB以降)
  60. Copyright © 2023, Oracle and/or its affiliates 76 OCI Cache

    with Redis Oracle Cloud Hangout Café Premium 動画: https://www.youtube.com/watch?v=WXFa5sflacI 資料: https://speakerdeck.com/oracle4engineer/ochacafe-premium-oci-cache-with-redis
  61. Copyright © 2023, Oracle and/or its affiliates 78 OCI Database

    with PostgreSQL 高い可用性とストレージのオートスケールを兼ね備えたマネージドな PostgreSQL サービス ▪ユースケース 運用コストの省力化を実現しつつ、ハイパフォーマンスな PostgreSQL サービスを利用可能 ▪特徴 • データ量に合わせてオートスケールするストレージを提供 • 自動的に HA 構成でプロビジョニング • 自動バックアップ機能を提供し、バックアップから迅速にリストア可能 • 非常に低い RPO / RTO • パッチ適用やフェイルオーバーなどの運用を自動化 ▪価格 • OPCU:¥13.72 [OCPU / 時間] • ストレージ:¥10.08 [ GB /月] ※別途 OCI Database with PostgreSQL を稼働させる IaaS ( Compute, Block Volume )やバック アップ保管 ( Object Storage ) 部分の費用が必要
  62. Copyright © 2023, Oracle and/or its affiliates 80 Appendix OCI

    Services サービス URL Resource Manager https://docs.oracle.com/ja-jp/iaas/Content/ResourceManager/home.htm Oracle Container Engine for Kubernetes https://docs.oracle.com/ja-jp/iaas/Content/ContEng/home.htm Container Instances https://docs.oracle.com/ja-jp/iaas/Content/container-instances/home.htm OCI DevOps https://docs.oracle.com/ja-jp/iaas/Content/devops/using/home.htm Monitoring https://docs.oracle.com/ja-jp/iaas/Content/Monitoring/home.htm Logging https://docs.oracle.com/ja-jp/iaas/Content/Logging/home.htm Application Performance Monitoring https://docs.oracle.com/ja-jp/iaas/application-performance- monitoring/home.htm Cache with Redis https://docs.oracle.com/ja-jp/iaas/Content/redis/home.htm OCI Database with PostgreSQL https://docs.oracle.com/ja-jp/iaas/Content/postgresql/home.htm