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

Oracleが提供するマイクロサービス開発基盤 / oracle-microservices-development-platform-overview

Oracleが提供するマイクロサービス開発基盤 / oracle-microservices-development-platform-overview

Oracleが提供するマイクロサービス開発基盤の説明です。

oracle4engineer
PRO

December 02, 2022
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. オラクルが提供するMicroservices開発基盤 Subhead goes here on one line 日本オラクル株式会社 Dec, 00,

    2022
  2. Agenda 5 4 3 2 1 オラクルのCloud Nativeアプリケーション戦略 オラクルが提供するマイクロサービス・アプリケーション・フレームワーク オラクルが提供するDevOpsプラットフォーム

    オラクルが提供するマイクロサービス・アプリケーション実行基盤 マイクロサービスを取り巻く世界観 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 2
  3. Copyright © 2022, Oracle and/or its affiliates. All rights reserved.

    | 3 マイクロサービスを取り巻く世界観
  4. デジタルトランスフォーメーション | 社内業務の効率化から新ビジネスの創造へ ビジネスにもとめられる進化のスピードと品質 サービスの早期リリース 市場の動向/反応を早期フィードバックして対応 サービス停止による機会損失をなくす システムは変化するビジネス要件に合わせ 短い時間で高頻度にリリースする事が求められる アプリの変更をすぐに本番環境に適用

    変化を許容できるシステムを構築 停止時間の短縮と運用作業の効率化 企業システムに求められるニーズの変化 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 業務 効率化 社外 社内業務の 効率化 社外顧客向け 新ビジネス 創造 4
  5. 迅速に高品質なシステムを育て続けるための戦略 マイクロサービスの世界観 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. | DevOps • 自動化された高頻度リリース • フィードバックに基づく継続リリース マイクロサービス・アーキテクチャ • 疎結合型アーキテクチャ • サービス単位のデプロイメント サービス単位の組織 • 小規模でサービス毎の自主性・自律性 • 機能横断的なチーム 5
  6. DevOpsを視野に入れたマイクロサービス・アーキテクチャに対する期待 マイクロサービス・アーキテクチャ • 大規模なシステムを疎結合な複数のサービスの 組み合わせで実現する設計方式 • 変更による影響範囲をサービス単位に極小化 し高頻度のアプリケーション更新を実現 DevOps •

    開発・運用の組織的な隔たりを無くし、サービス の継続的な更新を実現する • CI/CDツールを用いてアプリのテストからデプロイ を自動化し、迅速なリリースと品質確保を両立 高頻度リリースを実現するための開発トレンド Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 計画 計画 開発 ビルド テスト デプロイ 運用 運用 監視 監視 変更 6
  7. サービス間の影響を極小化しシステムの変更容易性を高めるアーキテクチャ 保守とテストの容易性 • 分割したサービス毎に組織を編成し開発・運用の自由度を高める • 更新単位を最小限にすることでテスト規模を最小化 疎結合 • API化や非同期化によりサービス間の結合度を低減 •

    変更による他の稼働中のサービスにへの影響を極小化 独立してデプロイ可能 • データソースやアプリケーション・モジュールをサービス毎で占有 • デプロイやスケールの変更の単位サービス毎で任意に最適化 マイクロサービス・アーキテクチャとは Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | API サービス実装 データストア イベント・ストア 7
  8. モノリシックな構成を前提とした自動化が困難なアーキテクチャ 複数のアプリケーションを跨ぐ基盤運用 • 仮想サーバ単位で運用 • OS上のアプリケーション・サーバに複数のアプリケー ション一式を配置 • アプリケーション・サーバ以下を基盤運用 基盤に依存したポータビリティの低いアプリケーション

    • アプリケーション・サーバはJava EEで標準化 • OS層に依存した作りになるケースも多い (ディレク トリ配置、ホスト名、管理エージェント、etc.) 従来のアプリケーション・プラットフォームが抱える課題 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 8 仮想サーバ 仮想サーバ OS OS ライブラリ アプリ ケーションA ライブラリ アプリ ケーションB ライブラリ アプリ ケーションC ライブラリ アプリ ケーションD ハードウェア / ハイパーバイザー ハードウェア / ハイパーバイザー アプリケーション・サーバ (Java EE) アプリケーション・サーバ (Java EE) 仮想サーバ単位でメンテナンス 仮想サーバ 仮想サーバ OS OS アプリケーション・サーバ (Java EE) アプリケーション・サーバ (Java EE) OS上のディレクトリなどに依存したアプリケーション 他のアプリケーションやOS層との依存関係を 排除し辛く自動化が困難なアーキテクチャ
  9. Kubernetes (コンテナ・オーケストレータ) 「コンテナ型仮想化」をベースとしたCI/CDによる自動化運用 マイクロサービス・アプリケーションのプラットフォームコア技術=「コンテナ型仮想化」 Copyright © 2022, Oracle and/or its

    affiliates. All rights reserved. | 9 ハードウェア ハードウェア ホストOS ホストOS ライブラリ アプリ ケーションA ライブラリ アプリ ケーションB ライブラリ アプリ ケーションC ライブラリ アプリ ケーションD アプリケーション単位で独立した運用 • アプリケーション単位でコンテナ毎に運用 • OS以下のレイヤは意識しない • コンテナ・オーケストレータを基盤として運用 ホストOSに依存しないポータビリティ • コンテナ・レイヤでポータビリティを確保 • OS層には依存させない コンテナ・オーケストレータによる自動化 • 環境の払い出し、構成の維持を自動化 • 構成の作成や変更を自動化 構成の変更や維持を自動化 コンテナ(=アプリケーション)単位でメンテナンス アプリケーション 基盤として統合運用
  10. 変更に対する影響範囲が広く、リソース共有・呼出しの依存によりエラーが伝播しやすい データソースの共有による弊害 • データベースのテーブルをサービス 間で共有 • 一部のサービスでカラムの型変更 を行う • 他のサービスで想定外の動作を

    引き起こす リソースの共有による弊害 • 同じアプリケーション・サーバ上に 異なるサービスをデプロイ • 一部のサービスの負荷が増大し CPU/メモリリソースが逼迫 • リソースが不足し他のサービスで 遅延や予期せぬ不具合が発生 同期呼出し連携による弊害 • 他のサービスのモジュールを同期 呼出ししてサービスを構成 • 呼出し先のサービス内の処理中 に障害でエラーが発生 • 呼出し元のサービスの処理結果 が連鎖的にエラーになる モノリシック・アーキテクチャが抱える課題 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 10 アプリケーション・サーバ 製品 カタログ サービス 注文管理 サービス 在庫管理 サービス Error! Error! 更新アクセス 参照アクセス(増大) 製品 カタログ サービス 注文管理 サービス 在庫管理 サービス 製品マスタ 型変更 Error! 誤動作 注文管理 サービス 在庫管理 サービス 注文履歴 Error! 在庫マスタ Error! Error!
  11. サービス間の影響の伝播を抑止することで稼働状態や実装方式をサービス毎に任意にコントロール 共有リソースの排除による依存関係の解消 • サービス毎でランタイムやリソースを占有しAPIを通し て疎結合化 • 変更に対する他のサービスへの影響の考慮が不要 • サービス単位で独立したスケールや稼働の制御、 データストア/アプリケーションの実装方式の選択

    非同期連携の活用による負荷影響の伝播回避 • メッセージング等の基盤で処理を蓄積し非同期化 • 各サービスの任意のタイミングで処理を実行 • リリースなどのサービス断やリソース不足による全体へ の影響を極小化 マイクロサービス・アーキテクチャの主な強み Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 11 コンテナ 製品 カタログ サービス コンテナ 製品 カタログ サービス コンテナ 製品 カタログ サービス コンテナ 注文管理 サービス アプリケーション・サーバ 在庫管理 サービス NoSQL RDB キャッシュ 注文管理 サービス 在庫管理 サービス RDB 製品 カタログ サービス 在庫予約キュー 更新通知キュー 在庫マスタ 一定のスルー プットで処理 NoSQL REST API
  12. APIや非同期化により疎結合化された大量のサービスを運用するテクノロジ マイクロサービス・アーキテクチャに欠かせないテクノロジ Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. | 12 API サービス実装 データストア メッセージ・ブローカー コントラクト重視のAPIを管理するAPIゲートウェイ • フロントエンドに提供するセキュアなAPI • 組織を隔てたサービス利用のAPI管理 大量のサービスを運用するアプリケーション基盤 • コンテナ技術によるリソースの占有 • オーケストレーターによる運用の自動化 • スケーラブルなFaaSによる運用の省力化 サービス毎に分離されたデータソース • リソースをサービス毎で占有して制御 • プロビジョニングや運用の簡略化 • マネージド・サービスを活用した運用の省力化 処理をバッファし非同期化するメッセージ・ブローカー • 大量のサービスからの処理を吸収 • 複数のサービスに配信可能なPub/Sub型メッセー ジング 継続的リリースのためのDevOps環境 • CI/CDによる自動化に基づくデリバリ • Blue/Greenなどの高度な無停止リ リース戦略
  13. 効果的な運用を実現するマイクロサービス・アーキテクチャ向けのサービス マイクロサービス・アーキテクチャを支えるOracle Cloudサービス群 Copyright © 2022, Oracle and/or its affiliates.

    All rights reserved. | 13 API サービス実装 データストア メッセージ・ブローカー Oracle Cloud Infrastructure API Gateway Oracle Container Engine for Kubernetes Oracle Functions Oracle Database Cloud Service Oracle Autonomous Database Oracle NoSQL Cloud Service Oracle Cloud Infrastructure Streaming Oracle Cloud Infrastructure DevOps
  14. Copyright © 2022, Oracle and/or its affiliates. All rights reserved.

    | 14 オラクルが提供する マイクロサービス・アプリケーション実行基盤
  15. マイクロサービスを支えるエンタープライズ品質のスケーラブルなKubernetesプラットフォーム エンタープライズ品質の性能と可用性 エンタープライズ品質の性能と可用性 • 高性能インフラストラクチャによる分散アプリケーションに最適なプラットフォーム • 冗⾧化構成を自動で構成し、高可用性を実現 マネージド環境と費用対効果 マネージド環境と費用対効果 •

    複雑なKubernetesの構築不要で、開発を即座に開始 • 追加費用不要の、標準機能としてのマネージドKubernetes環境 Cloud Native JavaソリューションやOracle Databaseとの親和性 Cloud Native JavaソリューションやOracle Databaseとの親和性 • Oracleのマイクロサービス対応ソリューションと共に活用可能 • 既存資産・スキルを活用した、Cloud Nativeアプローチによる開発 Oracle Container Engine for Kubernetes (OKE) Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 15
  16. 高性能インフラによる分散アプリケーション環境/冗⾧化構成を自動で構成し高可用性を実現 エンタープライズ品質の性能と可用性 16 • 高性能IaaS上にKubernetesクラスタを構築し、安定したパフォーマンス • ドメインを横断してクラスタを構成を標準とする、高可用性アーキテクチャ Kubernetes クラスタ Availability

    Domain 1 Availability Domain 2 Availability Domain 3 *単一AD構成のデータセンターの場合は、AD内で物理H/Wレベルのメンテナンス区画で分離されたFault Domainにまたがって分散配置することで可用性を担保 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. |
  17. 第三者機関検証によるネットワークとストレージの検証結果 OKEを支えるOCIの高性能&スケーラブルなネットワーク Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. | 17 https://www.accenture.com/t20171003T083750Z__w__/us-en/_acnmedia/PDF-62/Accenture- Enterprise-Workloads-Meet-Cloud.pdf OCI Other ネットワーク性能検証結果 ストレージ性能検証結果 ※ブロックストレージIOPS比較 www.storagereview.com/oracle_cloud_infrastructure_compute_bare_metal_instances_review https://www.storagereview.com/dell_emc_unity_450f_allflash_storage_review
  18. マネージドKubernetes環境によるアプリケーション開発・運用への注力 Oracle Container Engine for Kubernetesの責任分掌モデル Copyright © 2022, Oracle

    and/or its affiliates. All rights reserved. | 18 オラクルによる管理 [管理環境を含むすべてのインフラストラクチャ] 顧客による管理[アプリケーション環境のみ] Container Engine for Kubernetes OCI Registry Cluster Management OKE Dashboard in OCI Console Oracle Cloud Infrastructure Encryption for Data in Transit (SSL) and at Rest VM based Clusters and Nodes Bare Metal Clusters and Nodes Customer’s OCI Account/Tenancy HA - 3 Masters/etcd across 3 ADs Control Control
  19. コンバージド・データベースによりマイクロサービス用データソースのデータ管理の複雑性を排除 Oracle Databaseのアプリケーション・データベース戦略 オープンなSQLで実行可能な コンバージド・データベース 統一されたインターフェースで 様々なデータタイプとワークロードに対応 複数の単機能プロプライエタリ・データベース群 それぞれ異なるAPIと管理技術を持ち 1つのデータタイプとワークロードのみ対応

    Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 19 RDB Columnar KVS {JSON} Document Graph Geospatial
  20. フルマネージド、高スケーラビリティ、実行時のみ課金のサーバーレス実行環境 Oracle Functions Copyright © 2022, Oracle and/or its affiliates

    20 ▪ ユースケース • ビジネスロジック実装の効率化 • イベント・ドリブン型開発の効率化 ▪ 特徴 • フルマネージドなサーバレス実行基盤(FaaS) • オープンソースの Fn Project がベースでベンダーロックインなし • 複数のプログラミング言語をFDK*としてサポート • 最大5分間の実行時間をサポート • シンプルな開発フローとテストハーネスの提供 ▪ 価格 (2022/12現在) • 最初の200万リクエストは無料、以降100万リクエストごとに¥28.00 • 最初の400,000 GBは無料、以降10,000 GB-秒ごとに¥19.838 *FDK: Fn Project Function Development Kits: 入出力の解析などシステム内部に関する処 理をサポートするヘルパー・ライブラリのこと。現在は、Java, Python, Ruby, Golang, Node.js, C#をサポートしております。 Oracle Cloud Infrastructure API Gateway Events Functions Functions User Functions … Autonomous Database Functions Web, Mobile, IoTのビジネスロジック実行基盤として活用 クラウドサービス間の連携やマイクロバッチとして活用 OCI SDK等を活用し、 効率的に開発 Oracle Cloud Infrastructure スケーラビリティに優れた実行基盤 でビジネスロジックを実行 Functions
  21. 大量のデータストリームを処理するフルマネージドな分散メッセージングサービス ▪ ユースケース ログやイベント、Web/MobileやIoTからのデータストリームを集約、 巨大なシステム内でのサービス間を繋ぐデータハブ ▪ 特徴 複雑になりやすいサービス間やコンポーネント間の接続経路を、 Streamingを経由する形にすることでシンプルにすることが可能 Pub/Subモデルの採用により、データ通信を非同期に行い急激な

    データ増加によるシステム負荷の上昇を抑制 Streamingに接続するためのAPIやSDKを提供 • OCI SDK • Kafka互換APIを提供 ▪ 価格(2022/12現在) データ転送(登録/取得)1GBごとに¥3.5 データの保持1GB×時間ごとに¥0.028 Streaming Copyright © 2022, Oracle and/or its affiliates 21 Streaming IoT Mobile/Web Activities App Kafka Client Streaming Events API Gateway Database System Object Storage Functions
  22. バックエンドサービスの入り口として機能する、セキュアなAPIエンドポイント 22 Copyright © 2022, Oracle and/or its affiliates API

    Gateway ▪ ユースケース 複数のバックエンドサービスのエンドポイントを統一し、セキュ アに公開、運用することが可能 ▪ 特徴 • 機能横断的な関心事を各バックエンドサービスからオフ ロード可能 • API呼び出し、実行のMonitoring, Logging • 認証・認可、レートリミット、簡易的なバリデーション • ドキュメント生成やモックサーバーの提供など、開発者フ レンドリーな機能の提供 ▪ 価格 (2022/12 現在) 1,000,000 APIコールごとに¥420 ※1,000,000 APIコール単位に満たない課金は比例配分されます(例:500,000 APIコールで 210円) API Gateway API Gateway Functions Dynamic Routing Gateway Load Balancer Container Engine For Kubernetes Customer Data Center Client Other Public API Services OCI Services 機能横断的な関心事(ログ、メト リクス、認証・認可、etc.)を 各バックエンドサービスからオフロード
  23. ▪ ユースケース ミリ秒単位のレスポンスを必要とする、非構造化データを格納するためのデータストア ▪ 特徴 Key-Value/JSON/カラム型など柔軟なデータモデルを1つのインターフェースで相互 運用可能 Provisioned(手動スケール)/On-Demand(自動スケール)/Hosted(専用環境)な どの様々なプロビジョニングの選択肢 トランザクションのサポート、強い整合性のオプション、SQLのサポートなどRDBMSと

    近い操作感でも利用可能 シミュレータやプラグインなど開発者目線の豊富なツール群 ▪ 価格 (2022年12月現在) シンプルなクエリに対し、高いパフォーマンスを実現するフルマネージドNoSQLサービス Oracle NoSQL Database Cloud Service ▪ 関連するOracle Cloud Service • OKE • Oracle Functions (ファンクション) * 1 Read Unitは1秒間当たり1KBの読込スループット ** 1 Write Unitは1秒間当たり1KBの書込スループット IoT Container Engine For Kubernetes App No SQL Database Functions Virtual Machine App Network (Public/Private) [Provisioned] 1 Read Unit*/月:¥0.896 1 Write Unit**/月:¥17.556 ストレージ1GB/月:¥9.24 [On-Demand] 1 Read Unit*/月:¥22.4 1 Write Unit**/月:¥438.9 ストレージ1GB/月:¥9.24 [Hosted] 1環境/月: ¥4,031,440 Copyright © 2022, Oracle and/or its affiliates 23
  24. 様々な種類のデータとワークロードをシングル・データ・プラットフォームで Oracle Database = コンバージド・データベース Copyright © 2022, Oracle and/or

    its affiliates. All rights reserved. | 24 Relational Geospatial Blockchain Star Schema Cube Graph Documents Key-Value Relationalでの複合ワークロード, JSON, Cube, Graph, Spatial, Text, Event, Blockchainなどに対応 データの種類が異なっても1つのインタフェースで処理できる、マイクロサービス開発・運用者の負担を最小化
  25. Kubernetes上でのデータベース運用の限界 Kubernetes上での実現した隔離されたデータベース環境の実態 • Kubernetes Operatorを活用した環境構築の簡素化 • Kubernetesに準じたリソース制限による制御 データベース環境としての適合性 • 永続化の領域は容量ベースで制御

    • 処理リソース(CPU/メモリ)も制御可能 • パフォーマンスを制御するためのIOPSは制御不可能 データベース環境の選択の実態 • Kubernetes外部に別途個別のデータベース環境を構築 • マネージド・データベース・サービスを利用 マイクロサービス・アーキテクチャにおけるデータベース領域の課題 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 25 制御不可能
  26. Oracle Databaseのマルチテナント・アーキテクチャ • 共通層(CDB)と個別層(PDB)により構成されるコンテナ・アーキテクチャ • DBAによりCDBを集中管理し、PDBをマイクロサービス毎に分離されたデータベースとしてサービス開発・運用者が利用 • 環境に依存しないPDB単位でデータを含めたクラウド/オンプレミス環境間のポータビリティも確保 マイクロサービス用データソースの基盤運用を効率化するIn-Databaseコンテナ Copyright

    © 2022, Oracle and/or its affiliates. All rights reserved. | 26 PDB PDB PDB CDB マイクロサービス毎に独立したPDB • オブジェクト競合しない独立した仮想データベース • 迅速なプロビジョニング (クローン) • ポータビリティ (プラグ/アンプラグ) CDB単位の統合管理オペレーション データベース・システム構成の一括管理 (パッチ、アップグレード、HA構成、バックアップ) 集約密度を向上するリソース効率の高いリソース・プール • 共有メモリー/バックグラウンド・プロセスをCDBに集約 • QoS ManagementによるPDB毎のリソース制御 DBA 開発者
  27. 27 Copyright © 2022, Oracle and/or its affiliates. All rights

    reserved. | マルチテナント・アーキテクチャを踏襲したマイクロサービスに最適なデータベース・サービス群 オラクルが提供するデータベース・サービス Database Cloud Service (Customer Managed) Autonomous (Oracle Managed) Oracle Database on Virtual Machines 1-24 OCPUs Oracle RAC on Virtual Machines 4-48 OCPUs 仮想マシン Oracle Database on Bare Metal Servers 2-52 OCPUs ローカルNVMe搭載 ベアメタル Exadata Oracle Exadata Max 400 OCPUs Autonomous Autonomous Transaction Processing Autonomous Data Warehouse 開発者 運用管理者 PDBを容易に作成・運用 CDBとPDB用のリソースを集約管理 容易に作成・運用 管理不要
  28. 機械学習とAIによって自動化を実現した新世代のデータベース Oracle Autonomous Database はフルマネージド・クラウドサービス Copyright © 2022, Oracle and/or

    its affiliates. All rights reserved. | 28 自動化された Oracle Database 19c 機械学習を利用し 自動化された データセンター運用 自動化された Exadata Infrastructure
  29. • 自動的に最適構成 • ベストプラクティスをベースとした最適な初期構成 • 小さく始めて100TB超のシステムにリニアに拡張可能。 • 自動チューニング • 自動的な最適化によりデータベース・チューニングの自

    動化。お客様はビジネスに集中可能に。 • 自動運用で安心・安全 • プロアクティブなメンテナンスで高いセキュリティと安定性。 サーバーレス、アップグレードやシステム更改コストが不 要に。人的ミスがなくなり安定運用にも寄与 • 簡単にデータ活用 • ADBには分析に必要なツールが組み込み。簡単に高 度な分析を始められ、成果も早く。 クラウド・シフトを最も容易かつ低コストに実現可能なフルマネージド・クラウドサービス Autonomous Database が支える最も効率的なデータベース環境 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 29
  30. 開発者主体のデータベース運用をDBA組織やそのスキルに応じて選択可能 【Database Cloud Service による運用イメージ】 • 開発者がPDBを容易に作成・利用 • 構築・運用の容易なCDBをDBAが集約管理 【Autonomous

    Databaseによる運用イメージ】 • 開発者がマネージド環境を容易に作成・利用 • 基盤構築・運用は不要 オラクルのデータベース・サービスを活用したマイクロサービスへの適用イメージ Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 30 性能などの要件や規模に応じた基盤 をDBAが集約管理して効率化 (例:本番=Exadata、開発=VM) DBA 開発者は任意のタイミングで PDBを容易に作成・利用 (構成の自動化も容易) 開発者は任意のタイミングでマネージド の環境を容易に作成・利用 (構成の自動化も容易) Oracle Cloudによりマネージドで 提供され基盤運用・管理は不要
  31. データベースのライフサイクル管理をアプリケーション運用と一本化するテクノロジ Kubernetes による Oracle Databaseのライ フサイクル管理の統合 • アプリケーションと同じ手法でデータベースのライ フサイクル管理 •

    2種類のデータベース・デプロイメントに対応 • スケーラブルかつ集約統合可能な Kubernetes外部のOracle Database • Lightweightに利用可能なKubernetes 上のOracle Database 対応するライフサイクル管理 • データベース環境のプロビジョニング • 起動・停止やスケールの制御 • バックアップ/リストア等のデータ管理 • データベース・ソフトウェアのパッチ/アップグレード • ログやメトリクス等のデータベース監視 Oracle Database Operator for Kubernetes Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 31 Oracle DB Operator Kubernetes Cluster kubectl Controller Controller Controller Containerized Oracle DBs Autonomous DBs On-Premises DBs
  32. マイクロサービス運用に必須となるDevOpsに適合させたデータベース・ライフサイクル管理 マイクロサービス運用の前提となるCI/CDプロセス によるデータベース・ライフサイクル管理 • マイクロサービス単位で必要なデータベース運 用を自動化 • アプリケーションと同様の宣言的デプロイによる 確実性の維持 用途合わせて異なる適用環境に対する自動運

    用環境を提供 • 適用例) • 開発環境はK8s内のコンテナ • テスト・本番はExadata上のPDB • Autonomous Databaseによるデータベース 管理の排除も CI/CDにフォーカスしたアプリケーション運用に合わせたデータベース運用 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 32 本番リリース 複合テスト ビルド&単体テスト ソース・リポジトリ アプリケーション・コード DMLなどの定義ファイル コンテナ・レジストリ YAML YAML YAML 開発環境は小規模の データベース in コンテナ テスト・本番は性能・集約性 重視のPDB on Exadata
  33. マイクロサービス・アプリケーションの開発・運用を支援する数々のマネージド・サービス群 33 Copyright © 2022, Oracle and/or its affiliates OCI

    Cloud Native サービス Cloud Native Services Monitoring Events Streaming Container Engine for Kubernetes (OKE) Resource Manager OCI Registry Notifications アプリケーション実行基盤 Logging オブザーバビリティ(可観測性) + メッセージング 開発・運用管理ツール Storage OCI Core Infrastructure Oracle Functions API 管理 API Gateway OCI DevOps + Service Connector Hub REST APIの作成、運用、保護、 監視が可能なフルマネージドな APIゲートウェイサービス OCIが提供する性能、セキュリティ、高 可用性を兼ね備えたマネージド Kubernetesサービス (CNCF認証) 実行時課金のフルマネージドな サーバーレス実行環境 (オープンソー スDocker/Fn Projectベース) OCI上の様々なリソースのメト リクスを監視、ダッシュボードで 閲覧、通知 ホスト、アプリケーションのロ グ管理・検索・分析を行う プラットフォーム (オープン ソースFluentdベース) 大量の宛先に通知可能なメッ セージ通知プラットフォーム 大量のデータストリームを処理 するフルマネージドな分散メッ セージングサービス (Kafka互 換プラグインの提供) OCI上のリソースの状態 変化を捉えOracle Functionsを初めとする サービス間の連携を実現 コンテナイメージを格納す る高可用性なプライベー ト・コンテナ・レジストリ インフラリソース運用の自動 化を可能にするIaCプラット フォーム(オープンソース Terraformベース) ソフトウェアをビルド、テスト、 およびデプロイし、開発ライ フサイクルの各フェーズを自 動化 Compute Database Networking OCI Service Mesh マイクロサービスの運用を効 率化するマネージドのサービ スメッシュ
  34. Copyright © 2022, Oracle and/or its affiliates. All rights reserved.

    | 34 オラクルが提供するDevOpsプラットフォーム
  35. 迅速に高品質なシステムを育て続けるための戦略 マイクロサービスの世界観 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. | DevOps • 自動化された高頻度リリース • フィードバックに基づく継続リリース マイクロサービス・アーキテクチャ • 疎結合型アーキテクチャ • サービス単位のデプロイメント サービス単位の組織 • 小規模でサービス毎の自主性・自律性 • 機能横断的なチーム 35 マイクロサービスの迅速なデリバリに DevOpsによる運用は不可欠
  36. マイクロサービスのビルド、テスト、およびデプロイまでの開発ライフサイクルの各フェーズを自動化 OCI DevOps Copyright © 2022, Oracle and/or its affiliates.

    All rights reserved. | 36 Bare Metal Compute Container Engine For Kubernetes Virtual Machine Functions 環境管理 デプロイメント・パイプライン アーティファクト管理 Fully-managed OCI DevOps デプロイ ロールバック ビルド・パイプライン OCI DevOps OCIR & Artifact Registry
  37. CI/CDによる一気通貫の開発・運用プロセス、幅広いリリース環境、コスト削減 37 Copyright © 2022, Oracle and/or its affiliates. All

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

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

    rights reserved. | OCI DevOps CI Code Repository OCI DevOpsのトリガー機能を利用して、コードリポジトリへのイベントをトリガーにビルド・パイプラインを自動実行 外部接続機能を利用することで、GitHub、GitLabとの連携も可能 OCI DevOps Code Repository Run Build・Pipeline Git push Build Pipeline
  40. ステージ単にテンプレートを利用して、簡単にデプロイメント・パイプラインを構築 40 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. | OCI DevOps CD 各テンプレートを選択して、テンプレートの内容に従ってデプロイメント・パイプラインを構築 OKE VM & BM Compute Functions OKE,Compute,Functionsへ のデプロイ先を指定できるテン プレート 承認プロセス追加できるテンプ レート Functionsで作成した関数を 呼び出しを設定できるテンプ レート ワークフロー内で一時停 止を追加できるテンプ レート Blue/Green Deploymentを設定で きるテンプレート Deployment Pipeline
  41. 人による判断を必要とする場合は、承認/却下を選択できるテンプレートを利用 41 Copyright © 2022, Oracle and/or its affiliates. All

    rights reserved. | OCI DevOps CD ビルド・パイプラインの処理完了後、デプロイメント・パイプラインが起動、承認ステージ手動によるデプロイ判断 Deployment Pipeline
  42. Environment デプロイ戦略として、Blue-Greenデプロイ、カナリア・リリースに対応 42 Copyright © 2022, Oracle and/or its affiliates.

    All rights reserved. | 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
  43. Copyright © 2022, Oracle and/or its affiliates. All rights reserved.

    | 43 オラクルが提供する マイクロサービス・アプリケーション・フレームワーク
  44. エンタープライズ・アプリケーションの世界の変化 Copyright © 2022, Oracle and/or its affiliates. All rights

    reserved. | 44 Build Deploy Test Release DevOps Cycle 場所を問わず動作する クラウドネイティブな コンテナの展開 オープンソースの DevOps ツール群の連携 マイクロサービスと サーバーレス・ アプリケーション 複数言語を扱う Polyglot な アプリケーション Micro service 1 Busines s Domain Micro service 2
  45. Javaのマイクロサービス・フレームワーク OracleがホストするOSSプロジェクト • GitHubでソースコードを公開:https://github.com/oracle/helidon • Helidonの商用サポートはWebLogic Server/Coherence/Verrazzanoのサポート契約に含まれる マイクロサービスアプリケーションが必要とする機能を提供するJavaライブラリの集合体 • 単体のJVMとして動作し、アプリケーションサーバ不要、容易なコンテナ化

    • 必要なコンポーネントを追加して拡張することも可能 マイクロサービスの開発・運用を支援する機能を提供 • OpenMetrics(監視)、OpenTracing(追跡)、OpenAPI(API公開) • 耐障害性/回復性: ヘルスチェック、サーキット・ブレーカ 2つのプログラミングモデルを提供 • Helidon MP:宣言的記法(Java EE開発者フレンドリー) • Helidon SE:関数的型記法 Project Helidon Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 45
  46. Helidon SE と MP 46 • マイクロ・フレームワーク • 超軽量フットプリント •

    関数型 • Reactive Web Server • Eclipse MicroProfile 準拠 • 軽量フットプリント • 宣言型 • Java EEサブセット + マイクロサービス関連機能 Helidon MP Helidon SE CDI Extensions フットプリント重視 機能性重視 互換性(MicroProfile準拠)重視 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | ≒ + Eclipse MicroProfile + 拡張機能
  47. Helidon MP が準拠する業界規格 • マイクロサービス環境の中で動作するJavaアプリケーションの開発に必要な機能を規定 • マイクロサービス各種仕様に準拠 • マイクロサービスのデザインパターンを実装 •

    業界規格フレームワークの恩恵 • 開発者はビジネスロジックの実装に集中でき、効率的な開発ができる • 基盤となる実装は、MicroProfileプロバイダの品質維持・向上を期待できる • ベースは JavaEE (JakartaEE) のサブセット – アプリケーション・サーバー開発経験者が取り組みやすい Eclipse MicroProfile Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 47 OpenMetrics OpenTracing OpenAPI Circuit Breaker Bulk Head Health Check マイクロサービス各種仕様に準拠 マイクロサービスのデザインパターンを実装
  48. • Helidon は ライブラリをパッケージングした Java SE アプリケーションとして実行される • Helidon アプリケーションは個々の

    Java VM 上で実行(Java VM は共有されない) • 複数の パッケージング・オプション、Dockerにも対応 – ビルド・ツールを使って簡単に作成 多彩なパッケージング Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 48 実行可能 Jar Jlink ランタイム・イメージ GraalVM ネイティブ・イメージ Container Application Java Runtime Linux Container Custom Java Runtime Linux Container Native Application Linux Application
  49. 周辺 システム Cloud Services WebLogic Helidon ~ OCI上でのアプリケーション構成例 Copyright ©

    2022, Oracle and/or its affiliates. All rights reserved. | 49 App #1 デプロイメント App #2 デプロイメント App #3 デプロイメント App #4 デプロイメント フロント層 バック層 データ永続化層 OCI Database サービス • レプリカセットの維持(再起動) • ローリングアップデート • スケーリング APIs for Business Load Balancer API Gateway APIs for IT ReplicaSet Autonomous Database Streaming No SQL Database Functions Container Engine For Kubernetes Container Engine For Kubernetes Exadata Cloud Database Cloud Service MySQL Database Service Browser(SPA) Mobile App IoT App App App App App App App App App App App App ReplicaSet ReplicaSet ReplicaSet
  50. Copyright © 2022, Oracle and/or its affiliates. All rights reserved.

    | 50 オラクルのCloud Nativeアプリケーション戦略
  51. 既存のOn Premiseユーザーと新規Cloudユーザーの双方の開発ニーズに対応 積極的な開発投資、ソリューションをオープンソースとして公開 → 開発コミュニティへの貢献 各種Managed Serviceと組み合わせた統合ソリューションを実現 • Database Services

    – Autonomous Database Service, ExaCS, MySQL Database, NoSQL Database • Cloud Native Services – Functions, Streaming, API Gateway, Events, etc. Oracle Cloud Infrastructureの堅牢でセキュアな実行基盤 Kubernetesプラットフォーム上で 「Move & Modernize」と「Cloud Native」を両立 Oracle Cloudが提供するアプリケーション開発・実行基盤ソリューション • Autonomous • ExaCS • MySQL • NoSQL Database Services Cloud Native Services OKE/OCIR Oracle Cloud Infrastructure (IaaS/Security) • Functions • Streaming • API Gateway • Events • Integration • Etc. 既存 On Premise ユーザー 新規 Cloud ユーザー Move & Modernize Cloud Native • WebLogic on Kubernetes • WebLogic Deploy Tooling • Coherence Community Edition • Coherence Operator コンテナ化&運用支援ツール群 • Helidon: マイクロサービスFW • Fn: サーバーレスFW • Verrazzano: マルチクラスタ管理 • GraalVM: 次世代JVM DevOps支援ツール群 Reliable Agile 51 Copyright © 2022, Oracle and/or its affiliates. All rights reserved. |
  52. Copyright © 2022, Oracle and/or its affiliates. All rights reserved.

    | 52 オンプレミス クラウド Oracle Linux Oracle Cloud Infrastructure Oracle Linux Cloud Native Environment Oracle Cloud Infrastructure Cloud Native サービス … Oracle Private Cloud Appliance ポータビリティ オープン標準をベースとした Hybrid Cloud 環境での相互運用の実現 オラクルの Cloud Native アプリケーション戦略
  53. Hybrid Cloud環境を含む Kubernetesマルチ・クラスタ環境の包括的な管理を実現 • 各クラウド・ベンダーが提供するKubernetesサービスやオンプレミスのKubernetesクラスタを連携・一元管理 • Kubernetesを標準レイヤとする環境依存性を排除したシームレス&ポータブルな運用プラットフォーム • 従来型Java EEアプリケーションとマイクロサービス等の新規Polyglotアプリケーションの統合運用を実現

    Verrazzanoで実現する “Hybrid Cloud & Hybrid Application” Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 53 マルチクラスタ管理 Verrazzano インフラ運用管理 Rancher/Istio モニタリング・ログ収集 Prometheus Grafana Fluentd EFK Stack Jaeger SSO/アクセス管理 Keycloak Oracle Cloud Private Cloud 3rd Party Cloud Kubernetes Kubernetes Kubernetes
  54. マルチKubernetes環境のライフサイクルを統合的に管理可能なコンテナプラットフォーム ▪ 活用ケース クラウド/オンプレミスを含めた複数のKubernetes環境の統合実行基盤 従来のJava EEシステムと新規のマイクロサービス・アプリケーションの相互 運用のための統合実行基盤 ▪ 特徴 •

    オープンソースベースで構成されたコンポーネント • Open Application Model(OAM)で標準化されたアプリケーション 定義 • Observability含めたアプリケーションライフサイクルをサポート • 事前インストール済みのコンポーネントを利用した高いセキュリティの 実現 • WebLogic/Coherence/Helidonとの高い親和性 ▪ 価格 • Community Edition:無償 • Enterprise Edition:¥648,000/processor Verrazzano Enterprise Container Platform Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 54 Public Cloud Private Cloud On-premise Metrics Logging Tracing
  55. Multi Cloud • マネージド(クラウド)およびセル フマネージド(プライベート/オンプ レミス)のKu bernetesクラスタを サポート • ベンダーロックインの回避

    Application Lifecycle Management • 大規模アプリケーションを管理可 能 • アプリケーションに対するオペ レーション、デプロイメント戦略、 監視スタックを構成 Observability • Prometheus/Grafana/Opens earch/Kibana/Jaegerなどの最 も広く使用されているオープンソー スツールを利用した Observabilityの実現 • 各種ダッシュボードを即時に 利用可能 Verrazzano Enterprise Container Platformが持つ5つのコンセプト(1) Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 55 Public Cloud Private Cloud On-premise オペレー ション Observ ability セキュリティ デプロイメン ト戦略 ワーク ロード管 理 Metrics Logging Tracing
  56. Security • CalicoやPod Securityを利用したポリシーの適用 • サービスメッシュ間の通信暗号化 • アプリケーション認証、シングルサインオンの実現 Workload Management

    • WebLogic/Coherence/HelidonといったOracleが 提供する各種製品とのネイティブな連携とワークロード 設定の提供 • SpringBootやMicronaut、Java以外のアプリケー ションも含めたワークロードの提供とObservabilityの 提供 Verrazzano Enterprise Container Platformが持つ5つのコンセプト(2) Copyright © 2022, Oracle and/or its affiliates. All rights reserved. | 56
  57. Thank you 57 Copyright © 2022, Oracle and/or its affiliates.

    All rights reserved. |
  58. None
  59. Our mission is to help people see data in new

    ways, discover insights, unlock endless possibilities.