• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint プレゼンテーション"

Copied!
39
0
0

読み込み中.... (全文を見る)

全文

(1)

超分散システムを統治せよ!

マイクロサービス開発・展開のエッセンス

日本アイ・ビー・エム株式会社

IBMクラウド事業本部

エグゼクティブITスペシャリスト

樽澤 広亨

(2)

Copyright IBM Corporation 2018

自己紹介

IBM クラウド事業本部 アーキテクト

ISO IEC JTC1/SC38 専門委員

クラウド国際標準策定に従事

過去

米IBM ソフトウェア開発研究所

ソフトウェア製品開発エンジニア

IBM ソフトウェア・グループ

エバンジェリスト, 技術営業, etc.

(3)

このセッションについて

目的

⚫ マイクロサービス適用時の設計のポイントを知る

⚫ サービス・メッシュ最適化の方策を知る

(4)

Copyright IBM Corporation 2018

内容

✓ マイクロサービス概要

✓ サービスの設計

✓ Istioによるサービス・メッシュ最適化

✓ まとめ

(5)
(6)

Copyright IBM Corporation 2018

マイクロサービス概要

動機

⚫ アプリケーション個別の保守を可能にする柔軟

なモジュラー構造(サービス)の実現

対象分野

⚫ アーキテクチャー

⚫ 開発・運用チーム・フォーメーション

⚫ システム・ライフサイクル

クラウド・ネイティブ・アプリケーション

開発・運用のベスト・プラクティス

(7)

マイクロサービス・アークテクチャー

⚫ 小さなサービスの組合せ

でアプリを構成

⚫ 各サービスは

独立したコンテナで稼動

⚫ 各サービスは

軽量プロトコルで連携

⚫ 各サービスはそれぞれ

個別に自動デプロイ

⚫ 各サービスはそれぞれ

最適なプログラミング

言語で実装

⚫ 各サービスはそれぞれ

最適なデータ・

ストレージを利用

(8)

Copyright IBM Corporation 2018

マイクロサービス・アーキテクチャー全体像

8

ユーザー

インターフェース

ドメイン・

サービス

Backend for

Frontend

(API Gateway)

ドメイン・

サービス

リソース

コンテナー

サービス

リソース

プログラム

プログラム プログラム

プログ

ラム

アプリ

モジュール

モノリス (1枚岩)アプリケーション構造

マイクロサービスに基づいたアプリケーション構造

リポジトリー・

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

(9)

クラウド・ネイティブ・コンピューティング:開発・運用の流れと役割

ドメイン分析・設計

✓ ビジネス要件の洗い出し

✓ ドメイン・モデルの設計

継続的デリバリー(Continuous Delivery, CD)

開発

✓ コーディング

✓ ビルド

✓ テスト

✓ リリース

✓ デプロイ

運用

✓ アプリケーション監視

✓ 基盤監視

✓ ログ運用

✓ イベント統合管理

ドメイン駆動設計

(Domain Driven Design, DDD)

サイト・リライアビリティ・エンジニアリング

(Site Reliability Engineering, SRE)

局面

役割

手法

ドメイン スペシャリスト アーキテクトICT ICT アーキテクト SW エンジニア エンジニアSW Site Reliability エンジニア 繰り返し

継続的インテグレーション

(Continuous Integration, CI)

(10)

Copyright IBM Corporation 2018

サービスと開発・運用チーム・フォーメーションの関係

⚫ コンウェイの法則:システム構造は, プロジェクト体制を反映する

⚫ マイクロサービス :

➢ ビジネス目的に基づいてチーム編成

➢ システムは、独立して置き換え可能なサービスで構成される

Microservices

Monolith

ユーザー・インター フェース・チーム アプリケーション・ サーバー・チーム DBチーム ユーザー インターフェース層 アプリケーション層 サービス#1チーム サービス#1 サービス#2 サービス#3 サービス#2チーム サービス#3チーム DB層 ICTシステム構造 開発運用 プロジェクト体制 開発運用 プロジェクト体制 ICTシステム構造 開発 運用 開発 運用 開発 運用 開発 運用 開発運用 開発運用 疎結合 密結合 密結合 疎結合 疎結合 保守時全システムに対する作業が必要 保守時各サービスの置き換えが可能 ユーザー・インターフェース・ スペシャリスト アプリケーション・サーバー・ スペシャリスト DBスペシャリスト DBアクセス・プログラム アプリケーション・サーバー・ プログラム ユーザー・インターフェース・ページ とプログラム 密結合 疎結合

凡例

ビジネス 要件 ビジネス要件

要件#1

要件#2

要件#3

要件

実装 実装 実装

(11)

Spotifyのチーム編成

スクワッド チャプター

トライブ

チャプター チャプター チャプター チャプター スクワッド スクワッド スクワッド スクワッド チャプター

トライブ

チャプター チャプター チャプター チャプター スクワッド スクワッド スクワッド

ギルド

(12)

Copyright IBM Corporation 2018

マイクロサービス、始める?始めない?

◼単純なシステムのマイクロサービス化は、高いコストに帰結

~”MicroservicePremium”

⚫自動デプロイメント, 分散システム運用監視, 結果整合性, ビジネス分析,

マイクロサービス

モノリス

複雑さ

生産性

基本方針

対象システムが複雑:マイクロサービス化を検討する

対象システムが単純:マイクロサービス化には向いていない

(13)

マイクロサービス適用に先立つ懸案事項

⚫ 様々な懸案の解決が求められる

◆サービス設計

✓構造

✓粒度~サービス化の

すすめ方

✓データ・モデル

✓トランザクション

マイクロサービス適用の結果…超分散システム化 !?

◆サービス・メッシュ最適化

✓ルーティング

✓サービスのリリース

✓テスト

✓耐障害性

✓テレメトリー

(14)

Copyright IBM Corporation 2018

(15)

サービスの構造

在庫管理

製品在庫

在庫

エンドポイント

配送

配送

エンドポイント

サービス

実装すべきビジネス要件

✓ インターフェースとモデルを包含する

インターフェース

プログラミング・インターフェース

モデル

ビジネス・データ

(16)

Copyright IBM Corporation 2018

サービスのレイヤー構造例

Backend for

Frontend

(API Gateway)

ドメイン・

サービス

リソース

コンテナー

サービス

リポジトリー・

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

⚫ゲートウェイ

⚫Façade

⚫ビジネス・

ロジック

⚫リソース・

アクセス

✓APIエンド・ポイント

✓データ/プロトコル変換

✓サービス・アグリゲーション

✓業務処理実装

✓データ, メッセージングへ

のアクセス

(17)

サービス化の進め方:ビジネス指向と繰り返し開発

前提/文脈

⚫ 素早いビジネス立上げ

⚫ 柔軟なビジネス変更

ビジネス指向

方針

✓ アジャイル開発

方策

⚫ 1回の分析・設計で

サービス最適化は不可能

開発・運用の

繰り返し

✓ 業務観点でサービスの

切り出し

✓ ドメイン駆動設計

ビジネスのローンチ&トラン

スフォーメーション

サービス粒度の最適化

期待される

効果

(18)

Copyright IBM Corporation 2018

サービス化の進め方:BFF/API Gatewayの粒度

⚫ Backend for Frontend (BFF)

◆サービス・アグリゲーション

⚫ API Gateway (API GW)

◆APIエンドポイント

◆データ&プロトコル変換

⚫ 2つの観点より設置単位を検討

◆ユースケース

(19)

サービス化の進め方:BFF/API Gatewayの粒度

⚫ ユースケースの観点での検討

◆1ユースケース毎に、1 BFF/API GWを推奨

◆複数ユースケースに1 BFF/API GWを設置した場合、粒度

が大きくなり、メンテナンスのボトルネックとなる

Backend for Frontend

(API Gateway)

ドメイン・サービス

ユースケース1

BFF/API GW

ユースケース2

BFF/API GW

ユースケース3

BFF/API GW

ユースケース1

ユースケース2

ユースケース3

(20)

Copyright IBM Corporation 2018

サービス化の進め方:BFF/API Gatewayの粒度

⚫ クライアントのタイプあるいは種類の観点での検討

◆原則クライアント種類毎に1 BFF/API GW設置を推奨

◆クライアント・タイプ毎に1 BFF/API GW設置した場合

✓BFF/API GWの種類が多くなりすぎ、メンテナンスのボトルネックになる

懸念

◆One-size-fits-allの場合

✓BFF/API GWが大きくなりすぎ、メンテナンスのボトルネックになる懸念

BFF

API GW API GWBFF API GWBFF API GWBFF API GWBFF API GWBFF BFF/API GW BFF/API GW BFF/API GW

BFF/API GW

(21)

Copyright IBM Corporation 2018

データ・アクセス

サービスを介してデータベースにアクセスする

2

マイクロサービス・スタイル

DB

DB

DB

非マイクロサービス・スタイル

DB

サービス サービス サービス サービス サービス サービス サービス サービス

DBのメンテナンスの影響を最小化し、サービスへの影響を極力排除する

(22)

Copyright IBM Corporation 2018

トランザクション処理

原則ローカル・トランザクション処理

2

⚫ 実装をシンプルに保ち、スピーディな障害対応に備える

⚫ サービス間の疎結合を維持する

マイクロサービス・スタイル

DB

DB

DB

サービス サービス サービス

Local TX

Local TX

Local TX

非マイクロサービス・スタイル

DB

DB

DB

サービス サービス サービス

Global TX

Local TX : ローカル・トランザクション Global TX : グローバル・トランザクション

(23)

トランザクション処理:複数リソースの同期処理

⚫ Saga パターン

◆複数リソースの同期を取るデザイン・パターン

◆ローカル・トランザクション, イベント, 補償トランザクションを活用

DB

サービス サービス

DB

サービス

DB

不具合

正常系処理の流れ

異常系処理の流れ ~ 補償トランザクション

1.DB処理 2.イベント伝播 3.DB処理 4.イベント伝播 5.DB処理 a.キャンセル処理呼び出し b.DB処理 (キャンセル) d.DB処理 (キャンセル) c.イベント伝播 (キャンセル処理呼び出し)

サーバーレス(FaaS)のイベント駆動処理に最適な処理パターン…

(24)

Copyright IBM Corporation 2018

データ&トランザクション処理:

CQRSとイベント・ソーシング

⚫ Command Query Responsibility Segregation

◆コマンド(データ更新)とクエリ(データ参照)に、異

なるデータ・モデルを利用

⚫ イベント・ソーシング

◆一連の業務情報をイベント・ストアに書き込む

◆適宜ビューを生成し参照処理に充てる

データモデル

最適化

パフォーマンス

監査性・証跡性

アクセス制御

(25)

Copyright IBM Corporation 2018

データ&トランザクション処理:

CQRSとイベント・ソーシング

2

CQRSパターン

2018/03/10, 顧客A, L社パソコン, 数量1, … 2018/03/11, 顧客B, Z社マウス, 数量1, … 在庫情報 受注情報

イベント・ストア

ビュー

イベント・ソーシング・パターン

クエリー

Data Transfer Object 参照系アプリ

コマンド

検証 ドメイン・ロジック データ永続化 更新系アプリ 更新系処理は コマンドを利用 参照系処理はクエリーを利用 更新系処理では 全てのイベントを イベント・ストアに 格納 参照用に最適化された ビューを基に高速に 検索処理 適宜、イベント・ストアを 基にビューを生成、同期

(26)

Copyright IBM Corporation 2018

データ&トランザクション処理:データをどこに配置?

⚫ 参照系データと更新系データの分離の実装モデル

クラウド

お客様

データセンター

キャッシュ

アプリケーション

DB

データ更新は

マスターDBに適用

データ参照はキャッシュを利用

エンド・ユーザー

DBとキャッシュ間は

適宜同期

例)

✓ 更新の都度

✓ 一定の更新件数毎

✓ インターバル

セキュア

マスターDBを安全なお客様データセンターに配備

パフォーマンス最適化

高頻度の検索要求にはクラウド上のキャッシュで素早く処理

クラウド-DC間のネットワークは、比較的低頻度の更新処理に限定

(27)

Copyright IBM Corporation 2018

Istioによるサービス・メッシュ最適化

(28)

Copyright IBM Corporation 2018

サービス・メッシュ

コンテナー

サービス

マイクロサービス・アーキテクチャーにおけるサービス間ネットワーク

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

コンテナー

サービス

課題

⚫ ルーティング?

⚫ サービスのリリース?

⚫ テスト?

⚫ 耐障害性?

⚫ テレメトリー?

(29)

Istio

⚫ オープンソース・コミュニティ開発

⚫ マルチ・プラットフォーム・サポート

⚫ アプリケーション非依存

マイクロサービスの相互接続, 管理,

セキュリティのためのオープンプラットフォーム

サービス・メッシュ最適化のソリューション

(30)

Copyright IBM Corporation 2018

Istioの主要な機能

サービスの継続的なリリース

⚫ ブルー/グリーン・デプロイメント

⚫ カナリア・リリース

信頼性検証のためのEnd-to-Endテスト支援

⚫ フォールト・インジェクション(カオス・エンジニアリング)

システム障害の影響最小化

⚫ サーキット・ブレーカー

統合ダッシュボードログ, トレース, メトリクスの一覧監視

⚫ 統合ダッシュボード

サービス間通信の認証・認可・暗号化

⚫ 相互TLS

(31)

アーキテクチャー

コントロール・プレーン

サービスA

Pilot

Mixer

Citadel

Pod

Pod

Pod

Envoy

サービスA

実装

サービスB

Pod

Pod

Pod

Envoy

サービスB

実装

Envoyの構成管理

Mutual TLS

による認証

サイドカー型

プロキシー

サイドカー型

プロキシー

$istioctl

CLI

管理作業

管理

HTTP

gRPC

TCP

HTTP, gRPC, TCP

アクセス制御、

ポリシー設定等

(32)

Copyright IBM Corporation 2018

カナリア・リリース

現行本番環境

次期本番環境

ロード

バランサー

(Envoy)

エンド・ユーザー

3.本番環境

完全移行

1.90%トラフィック転送

1.10%トラフィック転送

4.100%トラフィック転送

2.試行 &

フィード

バック

次期/代替リリースの試行とフィードバック

(33)

フォールト・インジェクション:遅延

コンテナー

サービス

コンテナー

サービス

3.意図的な遅延

2.リクエスト

1.リクエスト

7.レスポンス

Envoy

応答時間

の遅延

ネットワーク・

レイテンシーを

シミュレート

4.リクエスト

6.レスポンス

5.レスポンス

意図通り

の動作か

確認

ネットワーク遅延障害時のEnd-to-endテストを容易に実施可能

(34)

Copyright IBM Corporation 2018

フォールト・インジェクション:エラー・コードの返信

コンテナー

サービス

コンテナー

サービス

2.リクエスト

1.リクエスト

4.エラーの返信

Envoy

エラーの

受信

意図的に

エラー・コード

を返す

3.エラーの返信

意図通り

の動作か

確認

障害を

シミュレーション

ネットワーク・エラー発生時のEnd-to-endテストを容易に実施可能

(35)

サーキット・ブレーカー

◼超分散システムでは, サービス呼出失敗が大規模障害に繋がる

◆想定される影響

⚫応答時間遅延

⚫システム・リソースのブロック

⚫システム全体のダウン

◼解決策:サーキット・ブレーカー

◆一定回数のサービス呼び出し失敗以降、サービス呼出元に即座にエラーを返す

◆期待される効果

⚫応答時間短縮

⚫システム・リソース・ブロックの排除

サービス呼び出し失敗時の影響を最小化する

デザイン・パターン

(36)

Copyright IBM Corporation 2018

サーキット・ブレーカー

◼動作フロー

サービス

呼出障害

ブレーカー

オープン

ブレーカー

クローズ

コンテナー

サービス

コンテナー

サービス

サーキット・ブレーカー(Envoy)

1.リクエスト

4.エラー

障害

2.リクエスト

3.タイムアウト

エラー回数が閾値に達した場合…

障害回復を確認できた場合…

コンテナー

サービス

コンテナー

サービス

サーキット・ブレーカー(Envoy)

1.リクエスト

2.エラー

障害

a.ヘルスチェック

コンテナー

サービス

コンテナー

サービス

サーキット・ブレーカー(Envoy)

1.リクエスト

4.レスポンス

2.リクエスト

即座にエラー

を返す

ヘルス・チェック試行

3.レスポンス

(37)
(38)

Copyright IBM Corporation 2018

まとめ

⚫ マイクロサービスは、複雑なシステム開発・

運用に効果的

⚫ マイクロサービス開発・運用にあたっては、

サービス設計に加え, サービス・メッシュの

最適化が求められる

⚫ Istioは, サービス・メッシュ最適化のソ

リューション

(39)

ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報 提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むも のでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗 示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害 が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかな る保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したもので もなく、またそのような結果を生むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示 するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっ ていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講 演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示すること を意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用し た測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラ ミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、 個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示された ものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。

IBM、IBM ロゴ、ibm.com、IBM Cloudは、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス 名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧くだ さい。

参照

関連したドキュメント

支援要請入力詳細 13ページ 患者受入入力詳細 14ページ 支援可能スタッフ3.

and Kristjan Vassil (2010) Internet voting in Estonia : a comparative analysis of four elections since 2005 : report for the Council of Europe”Report for the Council of Europe.

2021年1月15日にHa Tay Pharmaceutical Joint Stock Company(

がん化学療法に十分な知識・経験を持つ医師のもとで、本剤の投与が適切と判断さ

日医かかりつけ医機能研修制度 令和 年度応用研修会 「メタボリックシンドロームからフレイルまで」 飯島勝矢 Tamakoshi A ら. Obesity

(Immuno Checkpoint Inhibitor Proper use Support team

剣道部 柔道部 硬式野球部 卓球部 水泳部 ラグビー部 ソフトテニス部 テニス部 ハンドボール部 サッカー部 バドミントン部

●Gartner Magic QuadrantにてクラウドHCM Suiteにおけるリーダーの評価.. Copyright © 2022 Nomura System Corporation Co, Ltd. All Rights Reserved.. Copyright © 2022 Nomura