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

Red hat data grid 8.0 release overview 日本語

Chihiro Ito
October 22, 2020

Red hat data grid 8.0 release overview 日本語

本資料はRed Hat Data Grid 8.0 (アップストリームではInfinispan 10) のリリース概要を紹介しています。

Chihiro Ito

October 22, 2020
Tweet

More Decks by Chihiro Ito

Other Decks in Technology

Transcript

  1. 2 内容 • Data Grid 8.0: 何が新しいか • Data Grid

    8.1 とその先 • 追加のスライド ◦ Data Gridの紹介 ◦ 使用事例 ◦ 特徴と機能
  2. RED HAT RUNTIMES 現代的アプリケーションのための制限のないJava開発 ハイブリッド・クラウドにおける近代 的なアプリケーション開発の促進: ✓ すぐに始められる ✓ 開発経験の簡単化

    ✓ DevOpsの自動化 ✓ ツールとプロセスの標準化 ✓ JDKの完全なサポート 最新, マイクロサービスベース開発 . 軽量, 高速な実行, 低い負荷へ最適化 RH Developer, CI/CD ツール, Security サービスとの統合 アプリケーション移行ツールキットが利用可能 Python, Go, .Net などのRed Hatによるサポート (ただしSLAは異なります) LAUNCH SERVICE JAVA WEB JBOSS WS JAVA/JAKARTA EE JBOSS EAP, OPEN LIBERTY JAVA SE OPENJDK SERVERLESS CLOUD FUNCTIONS SPRING SPRING BOOT JAVASCRIPT NODE.JS DISTRIBUTED DATA DATA GRID MESSAGING AMQ BROKER SSO MICROPROFILE THORNTAIL, OPEN LIBERTY REACTIVE VERT.X SECURITY JAVA.NEXT QUARKUS
  3. RED HAT DATA GRID RH Runtimes RH Integration RH Automation

    RH Openshift 製品との統合 正しいデータに接した 処理の実行 自動データ再配置と 高度なクラスタリング 高可用性 トランザクション、 問合せ、永続化、 イベントリスナ... 分散処理 伸縮自在の分散 インメモリグリッド Key/Value ストア 5
  4. 6 ライブラリ API 構成要素 Java C++ C# node.js ネイティブ クライアント

    CLI 物理マシン パブリッククラウド プライベートクラウド 仮想マシン 統合 EAP JWS Spring Fuse Open Liberty 永続化処理 メモリ管理 コンソール Prometheus JMX クラスタ RHDG サーバ サイト横断複製 索引 / 問合せ イベント / リスナ 分散処理 セキュリティ REST Hot Rod RED HAT DATA GRID 構成要素
  5. • 軽量スタンドアロンサーバー ◦ メモリ、ディスクの設置負荷、セキュリティを考慮する要素の削減 ◦ シンプルな構成 ◦ Keycloak/SSOとの統合 • 堅牢で広範なHTTP/REST

    API ◦ 応答時間が50%短縮化! ◦ データへのアクセスとデータ・グリッド管理操作の実行 ◦ クラスターとサーバーの状態を監視し、統計情報を取得 • 直感的で強力なコマンドラインインターフェイス (CLI) ◦ “cd”や”ls”などの使い慣れたBashコマンド、コマンド履歴、自動補完機能を備えた使いやすいCLI ◦ REST APIと統合し、包括的な操作セットを提供 ◦ 明確な例を含むコマンドのヘルプテキストとマニュアルページ RHDG 8.0 - 概要(I)
  6. • RHDG OperatorとOpenShiftの統合を改善 ◦ UBI-8 minimalをベースにした、より簡単でスリムなイメージ ◦ OpenShift Level 3

    Operator • OpenShiftで使用可能な管理コンソール • Quarkus との統合完了 ◦ Quarkus Hot Rod クライアント拡張(Quarkusで使用可能) ◦ Quarkusのためのコードは統合完了 RHDG 8.0 - 概要(II)
  7. • 負荷を削減 ◦ ディスク(50%) ◦ ヒープメモリ (50% at boot) ◦

    もはやEAPベースではない • 簡単な構成 ◦ Data Grid 固有のランタイム引数 ◦ 統合された構成の組み込みとサーバ・スキーマ ◦ Hot Rod / REST / CLI / コンソールを使用して動的に管理 ◦ クラスタ全体に複製された構成 • 単一のポート ◦ Hot Rod, REST 管理エンドポイントが単一のポートを介して提供される (11222) ◦ 自動プロトコル検出 (HTTP/1.1, HTTP/2 と Hot Rod). ◦ 性能向上のためのWildFly OpenSSLによるTLSとSNIのサポート RHDG 8.0 - サーバ
  8. • KeyCloak / RHSSO との統合 [技術プレビュー] ◦ 8.1の完全な統合とサポート ◦ コンソールログインは未統合

    • Hot Rod と REST両方の完全な RBAC (役割ベースアクセス制御) • WildFly Elytron を使用して実装されたセキュリティ ◦ PLAIN, DIGEST-MD5, SCRAM, EXTERNAL, OAUTHBEARER, GSSAPI, GS2 による Hot Rod 認証 ◦ BASIC, DIGEST, CLIENT_CERT, TOKEN and SPNEGO による HTTP 認証をサポート ◦ プロパティ, 証明書ストア, LDAP と KeyCloak レルム RHDG 8.0 - サーバセキュリティ
  9. • より高速で包括的な HTTP/REST API ◦ 50% の性能改善 ◦ オリジン間リソース共有 (CORS)

    リクエストをサポート • 使いやすい ◦ 開発者およびシステム管理者向け ◦ 任意の言語から • データ, DevOps と稼働状況の監視のための HTTP/REST操作 • データおよびオブジェクト操作API ◦ キャッシュ、カウンタ操作 ◦ 形式間の自動変換 (JSON, XML, Protobuf, Text) ◦ リスト、クエリーとページ区切り RHDG 8.0 サーバ - HTTP/REST 終端 (I)
  10. • キャッシュ、カウンタ、Protobuf スキーマの管理 • 稼働状況、稼働情報と統計 ◦ キャッシュ ◦ クラスタ ◦

    Data Grid ノード • 管理操作 ◦ クラスタのシャットダウン ◦ サイト横断の操作 • REST 終端は新しいCLIとコンソールによって活用される • サーバタスク RHDG 8.0 サーバ - HTTP/REST 終端 (II)
  11. • PatternFly4.xとReactをベースにした新しいコンソール • Openshiftで利用可能 • 特徴の初期構成-すばやく展開 ◦ キャッシュリスト ◦ キャッシュの詳細と統計情報

    ◦ テンプレートまたは名前テンプレートを使用したキャッシュの作成 ◦ カウンタリスト ◦ タスクリスト ◦ 全体の統計 ◦ クラスタリング情報 ◦ RHDG 8.0 - 管理コンソール
  12. • MicroProfile Metricsとの新しい互換性。 ◦ DGは、Prometheusとすぐ統合できるようにMicroProfile Metricsエンドポイントを提供 ◦ 次のような稼働情報 ▪ Gauges:JVMの稼働時間やキャッシュ操作の平均秒数などの値

    ▪ Histograms:読取り、書込みおよび削除操作にかかる時間をパーセントタイルで示す ◦ エンタープライズJavaとデータグリッドでマイクロサービスを開発するための監視機能 • JMXによる統計および管理操作の改善 ◦ JMXはデフォルトで無効 ◦ 簡単な設定でMBeanを出力: <jmx enabled="true" /> • ログ機能の向上 ◦ 粒度の粗いロギング分類(サブシステム) ◦ JSONロギングのサポート RHDG 8.0 - 可観測性
  13. • 改良されたレベル 3 Operator ◦ インストールと構成 ◦ セキュリティと資格情報 ◦ 永続的なボリュームストア構成

    ◦ サイト横断の構成 [技術プレビュー] ◦ クラスタのアップグレード(パッチとマイナーリリース) ◦ ロギングとPrometheusの統合 • UBI 8 minimal に基づくサーバーイメージ ◦ セキュリティに触れる面の縮小 ◦ 50% 軽量 ◦ YAMLベースの構成 ◦ 高度な使用例のための従来のInfinispan およびJGroups XML RHDG 8.0 - Data Grid Operator
  14. • Spring5とSpring Boot 2.2.xの統合 • サイト横断複製の性能が向上 ◦ 並列化の増加によるスループットの向上 ◦ 非ブロック要求によるスレッド使用量の削減

    ◦ DG 8.1に向けたさらなる改善 • Hot Rod プロトコルの自動検出 ◦ クライアントアプリケーションでHot Rodプロトコルのバージョンの宣言は不要 • 永続データの透過的なアップグレード • スレッド使用の削減、内部ではノンブロッキングを使用 • Infinispanコミュニティの知識を取り込み、技術的な正確性を高めるために Infinispanで書かれたドキュメント RHDG 8.0 - 他の改善
  15. Server: Data Grid サーバの入門 5分以内でダウンロード, インストール, 単純なクラスタを開始 CLI: Data Grid

    CLIの入門 CLIの開始方法、サーバーへの接続方法、およびリソースのナビゲート方法を簡単な手順で説明 Operator: • Data Grid Operatorの入門 OperatorHubからサブスクリプションを作成する方法について説明 • OpenShift上でData Gridを動かすガイド データグリッドCRDのすべてについて説明し、キャッシュサービスおよび データグリッドサービスクラスタの作成方法について説明 REST: Data Grid開発チームは、明確な例を含む 広範な REST API 資料 を提供 Code Tutorials • Hot Rod Java クライアント - キャッシュをリモートで作成および構成 • サイト横断の複製 - docker-composeを使用して2つの個別クラスタを作成し、コンソールにアクセスしてデータ・グリッドがキャッシュ内 のデータをバックアップするのを監視 • Operator - OpenShiftでデータ・グリッド・クラスタを作成し、サンプル・データを格納または取得 Data Grid 8のコードチュートリアルなどを参照: https://github.com/redhat-developer/redhat-datagrid-tutorials 入門ガイド + コードチュートリアル
  16. Data Gridに関する利用可能なすべてのドキュメントは、Red Hatカスタマポータルの Data Grid 8.0 Documentation Home を参照 Data

    Grid リリース情報 • リリースノート • 移行ガイド Data Grid Operator • Data Grid Operator サブスクリプションを作成 • OpenShift上でData Gridを動かす Data Grid サーバ • Data Grid サーバガイド • Data Grid Command Line Interface • Data Grid REST API 構成 • 構成ガイド • 構成スキーマの参考資料 ドキュメント フィードバック、編集、ドキュメントのリクエストはありますか? Data Gridのドキュメントは、上流のInfinispanプロジェクトから 直接更新できます。 Data Grid 8.0 のドキュメントは以下のソースから作成されます: https://github.com/infinispan/infinispan/tree/10.1.x/documentation Data Grid Operator 8.0 のドキュメントは以下から作成されます: https://github.com/infinispan/infinispan-operator/tree/1.1.x/docum entation/asciidoc ドキュメントチケットを JDG Jira project に追加できます
  17. • 3ヶ月ごとのスケジュールとアップストリームとの緊密な連携を目指す ◦ Q2: Infinispan 11 → RHDG 8.1 ◦

    Q3: Infinispan 12 → RHDG 8.2 ◦ Q4: Infinispan 13 → RHDG 8.3 RHDG 8.x 道筋 領域 改善 Quarkus 統合 Quarkus Hot Rod クライアントとネイティブサーバをサポート Operator & Openshift 機能の改善 自動スケール、新しいカスタムリソース製品横断の統合、 CLI、有用性 サイト横断の複製 サイト横断の複製の強化、 Active-Active 非同期複製 支援の能力を改善 稼働と統計の情報、 参照アーキテクチャとサイジング コンソールの機能 データ操作と可視化 データ管理ライフサイクル バックアップとリストア、オンラインローリングアップグレード、永続化 製品横断の統合 SSO, EAP
  18. RHDG 8.0 - 中止されたモジュール モジュール / 特徴 新しい状態 Hadoop 統合

    除去 Spark 統合 除去 EAP モジュール 除去 - EAP Infinispanサブシステムは、クライアントおよび組み込み使用時のモ ジュールを置き換え Camel コンポーネント 統合された状態で出荷 (Fuse) OSGI サポート 未サポート - 除去 Memcached 未サポート - 標準で無効化 Cassandra Cache Store 除去 Uberjars Mavenの依存関係とそれぞれのjarに置き換え JON プラグイン 除去 非推奨および削除の完全なリストは Data Grid 8.0 リリースノート.
  19. 28 • 迅速なアクセス • 拡張性 • データ冗長性と高可用性 • 共有メモリー領域 In-Memory

    Data Grids In-Memory Data Grid(IMDG)は、RAMに大量のデータをホストし、次の機能を提供する相互接続システムのアーキテクチャ: Red Hat Data Gridは、IMDGアーキテクチャを拡張して、次のような高度な機能を備えた 多目的の高性能データストアを提供します。 • 索引作成 • クエリ • 分散コンピューティング • 統合
  20. 30 主な利益: Red Hat Data Grid パフォーマンス データへの迅速な対応 データの安全性を確保 伸縮性

    データを拡張または縮小 生産性の向上 可用性 常にデータにアクセス可能 耐障害性のメリット
  21. 31 主な特徴: Red Hat Data Grid Red Hat Data Grid(RHDG)は、次のような高度な機能を備えたインメモリ分散データストアです。

    索引および問合せ、永続性、トランザクションおよびグリッド・イベント。 • 高い性能 - 高スループットと低レイテンシを実現するように最適化 • 柔軟、分散、高可用性 ◦ データを常に利用できるように、単一点障害を回避 ◦ 複数のデータ・センターで稼働するクラスタ間でデータを複製 ◦ 負荷の要求に応じてスケール・アップまたはスケール・ダウン • 分散実行 - データのある場所でコードを実行 • 複数言語 - 複数のプロトコルとデータ形式を同時に使用 • 統合 - 一般的なフレームワークやRed Hatミドルウェア製品で使用
  22. 33 アプリケーションの性能を改善 • データのキャッシュにはさまざまなモードを利用:分散、複製、無効化、ローカル • データを処理ロジックに近づけることにより、遅延を削減し、スループットを向上。 ◦ クライアントサーバーモード: データは一貫したハッシュによって1ホップ離れる ▪

    ニアキャッシュ機能により、リモート呼び出しを繰り返す必要性を削減 ◦ ライブラリモード: キャッシュしたデータは実行コードと同じメモリ空間に存在 • 非同期非ブロッキングAPIによる並列性の向上。 • 大規模なデータ処理のためにクラスタ全体でコードを実行 ◦ コードは、適切なデータの隣に透過的に配置 RHDG はアプリケーションに性能を過給します
  23. 34 例:高可用性と柔軟性 • 同じデータの複数のコピーにより冗長性が提供 • ノードの自動検出とクラスタリングにより、高可用性(HA)が実現 • ノードがクラスタから離脱またはクラスタに参加すると、データは自動的に再分散 ◦ 一貫したハッシュと状態転送を使用します。手動によるシャーディングや処理は不要

    • クライアントサーバーモード: Hot Rod のクライアントはクラスタの形態を認識 ◦ キャッシュのミスや失敗の可能性を最小限に抑えます。 • 複数のデータセンター間でキャッシュを構成 • サーバーヒントを使用すると、異なる物理サーバーにデータを割り当て可能 RHDGにより、データが常に利用可能になり、需要に応じて拡張します。
  24. 37 Data Centersを横断したデータ複製 地理的に離れた複数のサイトにデータを複製 • クラスタはアクティブなクライアント接続を同時に処理し、他のクラ スタのバックアップを提供 • RHDGは、データをバックアップ場所に自動的に複製 •

    RHDGクラスタ形態とキャッシュモードは、サイト間で独立 同期と非同期レプリケーションモードがサポート クライアントは自動的にバックアップ・サイトに切り替え データ・センターの不足時にサービス継続性を確保
  25. 38 HTTPセッションと共有した情報を外部化 • アプリケーションの可用性を向上。アプリケーションノードまたはサイトが停止した場合は、ユーザーセッション(ショッピングカー トなど)をRHDGクラスタに外部化 • フロントエンド・アプリケーションをステートレスにすることで、信頼性を高め、操作を単純化 • アプリケーションのアップグレードおよび導入プロセスが容易になります。 •

    セッション取得の性能が向上 ◦ ニアキャッシングにより、ネットワークトラフィックを最適化 • 共有した状態はアプリケーションごとでも複数のアプリケーションを横断しても使用可能 • 認証および役割に基づくアクセス制御(RBAC)によって制御されるデータセキュリティ。 • 標準のアプリケーション/Webサーバ(EAP,JWS/Tomcat)またはアプリケーション開発フレームワーク (SpringBoot/SpringSession、Vert.x)との統合が可能
  26. 39 例: Web, eCommerce, セッションオフローディング • HTTPセッションを高速な共有セッションストアに格納 • Webファーム全体で状態を共有 •

    サイト間レプリケーションとフェイルオーバー。 • 事前に計算されたまたはアクセス頻度の高いデータの 明示的なストレージ • 高速検索機能。 • JWS、Spring、EAPのセッション・マネージャーと統合 Databases Data Grid for Shared State
  27. 41 • ステートレスなサービス間で状態を共有し、インメモリ性能を 実現 • データの複雑さをサービスの実装の外に配置 • システムを停止させず、新しいバージョン(A/B or カナリア)を

    配備 • サービスの性能と可用性を向上させるため、サービスごとの ローカル・キャッシュまたは共有キャッシュ • ショッピングカート S-Z / A-F ショッピングカート G-L / M-R ショッピングカート M-R / S-Z ショッピングカート A-F / G-L 共有メモリサービス Micro Services Microserviceの中でデータと共に稼働 マイクロサービスアーキテクチャ(MSA)の導入をサポートする柔軟なデータ機能 マイクロサービスアーキテクチャにおけるデータ操作 のベストプラクティス µService µService µService v1 µService v2 分散キャッシュ
  28. 43 インメモリ・キー/バリューストアの特徴 期限切れ & 破棄 破棄される/されない要素の管理 要素数とメモリ使用量による区分 ヒープとオフヒープのメモリ管理 最大寿命 最大非アクティブ時間

    トランザクション & 永続化 JTA / XA トランザクション ファイルと RDBMS の保護 直通の書込と遅延の書込 セキュリティ & 許可 クラスタリング & キャッ シュモード 自動ノード検出 ノンブロッキングデータ分散 ネットワーク分割対応 サイト横断複製 複数のキャッシュモード: 分散, 複製, 無効化, ローカル 同期 / 非同期 モード データ整合性の解消 ローリング・アップグレード 役割ごとのアクセス制御 監査ログ クラスタ館転送 クライアント転送セキュリティ 証明書による許可 セキュリティ・マネージャ ノード認証による許可 TLS/SNI
  29. 高性能な Hot Rod プロトコル 44 言語に依存しない 自動制御できる高性能なバイナリプロトコル 接続形態を知覚: バックエンド・サーバがクラスタの変更をクライアントに 送信

    クライアントはデータ所有者に直接接続し、余分な経路を回避 複数のデータ・センターにおけるサイト間フェイルオーバー トランザクション ニア・キャッシュ 非同期API 継続問い合わせ リモート・イベント・リスナ リモート処理 リモート問い合わせ Java, C++, C#, node.js クライアン トが利用可能 パフォーマンスを維持しながら、アプリケーションからデータを分離 暗号化と認証 TLSによる暗号化 認証 Server Name Indication (SNI)
  30. 46 Java API とフレームワーク キャッシュ API CDI & JCACHE (JSR-107)

    public class GreetingService { @CacheResult public String foo(String user) { return "Hello" + user; } 組込 / クライアントサーバ 読み書き 非同期 API 一括操作 (i.e PutAll) リモートタスク処理 API 動的キャッシュ生成 カウンタ/ シーケンス グリッドに読み書きするための複数の選択肢とAPI Spring SpringBoot @Cacheable(value = "books", key = "#bookId") public Book findBook(Integer bookId) {...} Spring アノテーション Spring Boot スターター Bean コンフィグレーション Vert.xとの統合 CDI アノテーション データ/キャッシュインジェクション JCache 1.1 (JSR-107)をサポート cache.put("key", 100); assert cache.containsKey("key") == true; assert cache.get("key") == 100; assert 100 == cache.remove("key");
  31. 47 索引と問い合わせ 組込み / リモート問合せ 索引 Luceneベース 索引ストレージの複数の選択肢 言語間互換性のためのProtobufスキーマ 一括ロードまたはキャッシュ準備のための一括再インデッ

    ク JSON 索引 索引不要の問合せ 問合せ言語 - ワイルドカード, proximity, 正規表現,... 集約, グループ化, 順序 並行実行 - クラスタ問合せ送信 グリッド内のデータを効率的かつ正確に検索 select accountId, sum(amount) from com.acme.Transaction where amount < 20.0 group by accountId having sum(amount) > 1000.0 order by accountId
  32. 48 リスナと継続問合せ クラスタイベントとリスナ 継続問合せ リスナーベース クエリーされたデータセットに対する変更の継続的な 通知 キャッシュ要素通知: エントリの作成/変更/削除/期限切れ アクセス/破棄

    キャッシュマネージャ通知: キャッシュ開始 / 停止 / 変更を表示 ネットワークトラフィックを減らすサーバ側の イベントフィルタ グリッド・イベントまたはデータ変更を受信して、それらに対応 問合せを作成 結果を取得 イベントを受信: 結果を変更
  33. 49 分散実行 クラスタ実行 Java Streams データ・グリッドは、クラスタ全体 のデータ操作に対する操作を実 行するストリーム処理用のAPIを 提供 すべてのノードでコードを実行す

    るか、特定のエントリを所有し、非 同期に結果を受け取るノードでの みコードを実行 適切なデータの近くにコードをデプロイして実行 Server Tasks Data Gridサーバーにスクリプトを 追加し、リモートで実行 - シングル・ノードまたは マルチ・ノードの実行 - スクリプトはjavax.xml ファイルに基づく。また、JVM ベースのScriptEngine実装 と互換性 List<Object> jbossKeys = cache.entrySet().stream() .filter(e -> e.getValue().contains("JBoss")) .map(Map.Entry::getKey) .collect(Collectors.toList())); ClusterExecutor executor = cacheManager.executor().singleNodeSubmission().filterTa rgets(policy); for (int i = 0; i < invocations; ++i) { executor.submitConsumer((cm) -> { TransportConfiguration tc = cm.getCacheManagerConfiguration().transport(); return tc.siteId() + tc.rackId() + tc.machineId(); }, triConsumer).get(10, TimeUnit.SECONDS); }
  34. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s leading

    provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank You Q&A 51