マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

54
マイクロサービスで、 歩先くImmutable Infrastructureを指そう JTF2015 : July Tech Festa

Transcript of マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Page 1: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

マイクロサービスで、 ⼀一歩先⾏行くImmutable

Infrastructureを⽬目指そうJTF2015 : July Tech Festa

Page 2: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

しょっさん妻1娘4。外資インフラ系ITアーキテクト/ITコンサルタント/初級アクアリスト。深⽥田恭⼦子殿堂⼊入り。Perfume-‑かしゆか派/BABYMETAL。 座右の銘:⼈人⽣生即是遊戯。

0x29歳。

Page 3: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Todays ThemeService Oriented Architecture

Page 4: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Immutable Infrastructure

Page 5: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

‒–Chad Fowler (2013.06.23 6:57 pm)

“Trash Your Servers and Burn Your Code: Immutable Infrastructure and Disposable

Components”

http://chadfowler.com/blog/2013/06/23/immutable-deployments/

Page 6: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

BlueGreenDeploymentMartin Fowler

1 March 2010

http://martinfowler.com/bliki/BlueGreenDeployment.html

Page 7: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

BlueGreenDeploymentMartin Fowler

1 March 2010

http://martinfowler.com/bliki/BlueGreenDeployment.html

Page 8: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Issues

Page 9: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

IssuesStateless and Stateful Servers

Page 10: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

IssuesComplex System

Page 11: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

IssuesComplex System

Page 12: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Microservices

Page 13: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

‒–James Lewis (25 March 2014)

“Microservices”

http://martinfowler.com/articles/microservices.html

Page 14: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Characteristics of a Microservice Architecture

• Componentization via Services

• Organized around Business Capabilities

• Products not Projects

• Smart endpoints and dumb pipes

• Decentralized Governance

• Decentralized Data Management

• Infrastructure Automation

• Design for failure • Evolutionary Design

Page 15: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Characteristics of a Microservice Architecture

• Componentization via Services

• Organized around Business Capabilities

• Products not Projects

• Smart endpoints and dumb pipes

• Decentralized Governance

• Decentralized Data Management

• Infrastructure Automation

• Design for failure • Evolutionary Design

Page 16: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Componentization役割分担とインタフェイスの明確化

活性保守の仕組み作り

Page 17: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Componentization特定のサービス毎に Deploy

Page 18: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Microservicesを始めてみよう!

Page 19: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

どうやって…⋯

Page 20: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

ボクたちにはSOAがあるWeb Services

Page 21: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Service Oriented Architecture

ApplicationFront-end Service Service

Repository Service bus

SOA

Contract Implementation Interface

Business logic Data

Page 22: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Application Front-‑endエンドユーザとの対話

バッチなどからコールされるプロセス

Page 23: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Service

• 規約(contract) • ⽬目的、機能、制約、利⽤用法などの仕様 • 仕様は⾔言語に基づかなくてもいい

• インタフェース • 実装(Implementation)

• ビジネスロジック • データ

Page 24: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Service Repository公開されているサービスの情報を集約

Page 25: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Service BUS接続性・技術・通信概念の混在

技術的なサービス

Page 26: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

SOAの⽬目的

• システムとソフトウェアアーキテクチャの分離

• 疎結合 : お互いに無関係に設計可能

Page 27: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

Microservices vs SOA

• SOA • 集中統治 • 集中→分散管理 • ⼤大企業むけ • トップダウン

• Microservices • 分散統治 • 分散管理 • 中⼩小企業向け • ボトムアップ

Page 28: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

実現していくには…⋯

Page 29: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

SOA ロードマップ

1. 基礎段階 : 保守性の向上 2. ネットワーク化段階 : 柔軟性の向上 3. プロセス制御段階 : 俊敏性の向上

Page 30: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

基礎段階

Page 31: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

2層とデータ共有

エンタープライズ層

基本層

ECサイト

販売 会員管理 在庫管理 受注管理

発注アプリ

Application Front-‑end

Services

Page 32: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

ネットワーク化段階

Page 33: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

中継層

カプセル化エンタープライズ層

基本層

ECサイト

販売 会員管理 在庫管理 受注管理

在庫&受注(2PC)

技術的なカプセル化 複雑なロジックの集約

Service bus

Page 34: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

中継層

テクノロジ ゲートウェイ

エンタープライズ層

基本層

ECサイト

販売

EJB Gateway

配送システム

B2Bポータル

.Net Gateway

MQ Gateway

Service bus

Page 35: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

中継層

付加機能サービス(3例)

エンタープライズ層

基本層

新Client

レガシーアプリ

データ拡張

新機能が必要なClient

レガシー Client

新機能追加 新機能追加

追加属性 パッケージ ソフト

新Client

レガシー アプリ

Page 36: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

中継層

データの拡張エンタープライズ層

基本層

新Client

レガシーアプリ

データ拡張

新機能が必要なClient

レガシー Client

新機能追加 新機能追加

追加属性 パッケージ ソフト

新Client

レガシー アプリ

引き継いだモデルを変更せず、 レガシーアプリケーションの データモデルを拡張

Page 37: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

中継層

パッケージに 新機能追加

エンタープライズ層

基本層

新Client

レガシーアプリ

データ拡張

新機能が必要なClient

レガシー Client

新機能追加 新機能追加

追加属性 パッケージ ソフト

新Client

レガシー アプリ

パッケージに対して 新たな機能を追加

中継サービスで、 パッケージソフトを ラッピング

Page 38: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

中継層

既存の維持と新機能エンタープライズ層

基本層

新Client

レガシーアプリ

データ拡張

新機能が必要なClient

レガシー Client

新機能追加 新機能追加

追加属性 パッケージ ソフト

新Client

レガシー アプリ

既存のプロトコロルを維持 新たなクライアント機能を追加

Page 39: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

プロセス制御段階

Page 40: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

中継層

プロセスのカプセル化エンタープライズ層

基本層

ECサイト

販売 会員管理 在庫管理 受注管理

在庫&受注(2PC)

プロセス層予約

プロセス

Page 41: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

プロセス層

単純化エンタープライズ層

基本層

ECサイト

販売 会員管理 在庫管理 受注管理

予約 プロセス

Page 42: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

中継層

中継層の考え⽅方

在庫&受注(2PC)

プロセス層オンライン プロセス

B2B プロセス

モバイル プロセス

共通 プロセス

オンライン プロセス

B2B プロセス

モバイル プロセス

プロセス層

複数のプロセスが利⽤用する場合

プロセスの中⼼心化

1

2

Page 43: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

プロセス層

プロセス中⼼心化エンタープライズ層

基本層

ECサイト (チケット)

メール 予約 キャンセル 待ち

予約 プロセス

キャンセル プロセス

プロセスの 状態保持

プロセスの 状態保持

Page 44: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

summary

Page 45: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

サービス化:疎結合 ↓

影響の極⼩小化

Page 46: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

適合可能な技術の選択

Page 47: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

新しいものと 古いものを 組み合わせる

Page 48: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

⾞車輪の再発明は しない

Page 49: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

再利⽤用しようRe-‑usable not Re-‑cycle

Page 50: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

流⾏行に流されない

Page 51: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

もっと知りたい⼈人は

Page 52: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

SOA⼤大全サービス指向アーキテクチャ 導⼊入・設計・構築の指針 http://amzn.to/1Lmtq4V

Page 53: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

ありがとうこのスライドで利⽤用している⼀一部の写真は、ぱくたその写真素材を利⽤用しています。

この写真を継続して利⽤用する場合は、ぱくたそ公式サイトからご⾃自⾝身でダウンロードしていただくか、 ぱくたそのご利⽤用規約に同意していただく必要があります。

同意しない場合は写真のご利⽤用はできませんのでご注意ください。

Page 54: マイクロサービスで、一歩先行くImmutable Infrastructureを目指そう

ご清聴 ありがとうございました