cloud design pattern #4 compensating consumers_エンジニア勉強会20140917

12
Copyright © 2014 by S-cubism Technology Inc. All rights reserved. Copyright © 2014 by S-cubism Technology Inc. All rights reserved. Cloud Design Pattern #4 Compensating Consumers 2014/9/12 http://azure.microsoft.com/ja-jp/

Upload: -

Post on 19-Jun-2015

185 views

Category:

Technology


4 download

DESCRIPTION

2014/9/12 エスキュービズム社内勉強会時に使用した資料になります。

TRANSCRIPT

Page 1: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

Cloud Design Pattern#4 Compensating Consumers

2014/9/12

http://azure.microsoft.com/ja-jp/

Page 2: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

カテゴリ

可用性

データ管理

設計および実装

メッセージング

管理および監視

パフォーマンスおよびスケーラビリティ

回復性

セキュリティ

Page 3: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

概要

非同期処理の交通整理

同時実行している複数のコンシューマが、受信したメッセージを同一のメッセージングチャネルで処理することを可能とする。

システムが複数のメッセージを並行して処理できるようにし、スループットの最適化、スケーラビリティと可用性の改善、負荷分散を実現します。

Page 4: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

概要

http://msdn.microsoft.com/en-us/library/dn600223.aspx

Page 5: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

いつ使うか

・タスクが独立して、並行して実行可能な処理系

・タスクの作業量(時間)が変動しやすく、スケーラブルなソリューションが必要なとき

・可用性を高めたいとき(at least onceを保証したい)

Page 6: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

例:レポーティングサービスの場合

ECサイトの結構がっつりな分析レポートを出力する機能の場合。

出力ボタンをポチると、登録してあるメールアドレスに対してレポートが添付されて送付されてくる。という仕組み。

Page 7: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

構成/動作

フォーム Web APP

(Front)

Web APP

(Back)

DB

Message

Queue

Reporting

Task

①click!click!click!!!

③put messages

(id=1)

④get messages

(id=1)

②insert data

(id=1)⑤select data

(id=1)

⑥send mail w/ reports

http://blog-imgs-31.fc2.com/h/i/m/himastime/kumukumu1.jpg

Page 8: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

構成/動作

フォーム Web APP

(Front)

Web APP

(Back)

DB

Message

Queue

Reporting

Task

①click!click!click!!!

③put messages

(id=1)

④get messages

(id=1)

②insert data

(id=1)⑤select data

(id=1)

⑥send mail w/ reports

レスポンス待たなくて良い!

フロントへ負荷の影響がない!

http://blog-imgs-31.fc2.com/h/i/m/himastime/kumukumu1.jpg

Page 9: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

サービスプロバイダ

Service Bus Queue

メッセージキュー

Amazon SQShttp://aws.amazon.com/jp/sqs/

http://azure.microsoft.com/ja-

jp/documentation/services/service-bus/

http://cloud.nifty.com/service/mq.htm

Page 10: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

補足

考え方と実装は、割と前からある

クラウドが普及する

→ 分散システムにさらにスポットが当たる

→ クラウド環境での実装が求められる

→ 汎用的だし、PaaSで作っちゃう

→ あざーす(ユーザ)

http://www.rabbitmq.com/

Page 11: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

留意事項

1.順序保証はサービスによって異なる厳密なFIFOでなかったりする。

2.メッセージキュー自体のスケーリングを意識するPaaSで担保されてる?

3.タスクの処理結果に対する設計が必要プロセスが別なので。

メールなのか、ajaxで監視するのか。

Page 12: Cloud Design Pattern #4 Compensating Consumers_エンジニア勉強会20140917

Copyright © 2014 by S-cubism Technology Inc. All rights reserved.

まとめ

非同期処理の交通整理

同時実行している複数のコンシューマが、受信したメッセージを同一のメッセージングチャネルで処理することを可能とする。

システムが複数のメッセージを並行して処理できるようにし、スループットの最適化、スケーラビリティと可用性の改善、負荷分散を実現します。