Content-Length: 272253 | pFad | http://www.slideshare.net/ktabei/ss-46130308
東急ハンズのクラウドデザインパターン アーキテクチャー編 | PPT東急ハンズのクラウドデザインパターン アーキテクチャー編
- 1. @ Copyright HANDSLAB INC All Rights Reserved.
2015年3月22日
東急ハンズのクラウドデザインパターン
アーキテクチャー編
ハンズラボ株式会社
チーフエンジニア
田部井 一成
- 5. TW:@HandsLabInc #jawsug #jawsdays #handslab 4
開発チーム
東急ハンズの内製化を担当してきた
元店舗従業員も開発
RDB?オブジェクト指向?
ネイティブなエンジニアと協業
ユニケージ開発手法
バックエンドの言語はbash
データはテキストファイルで保持
ミドルウェアやパッケージを極力排除
フロントエンドはHTML5
レガシーなバックエンドに、フロントは極力最新の
WEB技術を組み合わせる
- 8. TW:@HandsLabInc #jawsug #jawsdays #handslab 7
①リアルタイム
FTPd
S3Bucket SQS Worker SNS
SQS Worker
SQS Worker
POSレジ
新POS
売上テーブル
在庫テーブル
新PDA/店舗PC店舗
WEB/APP
サーバ
レジ売上から在庫・売上データ更新フローの例
- 9. TW:@HandsLabInc #jawsug #jawsdays #handslab 8
①リアルタイム
レジ売上から在庫・売上データ更新フローの例
既存POSからの売上受信
は、POSから直接FTPサー
バへ保存。
S3 Event Notifications を
利用し、トランザクションの
書き込みをSQSへキューイ
ング。
FTPd
S3Bucket SQS Worker SNS
SQS Worker
SQS Worker
POSレジ
新POS
売上テーブル
在庫テーブル
新PDA/店舗PC店舗
WEB/APP
サーバ
- 10. TW:@HandsLabInc #jawsug #jawsdays #handslab 9
①リアルタイム
Workerはキューをクロール
し、処理区分に応じたSNSト
ピックを発行。
SNSは更新対象のSQSへ
キューイング。
今回は売上なので、売上と
在庫それぞれのSQSへ。
FTPd
S3Bucket SQS Worker SNS
SQS Worker
SQS Worker
POSレジ
新POS
売上テーブル
在庫テーブル
新PDA/店舗PC店舗
WEB/APP
サーバ
レジ売上から在庫・売上データ更新フローの例
- 11. TW:@HandsLabInc #jawsug #jawsdays #handslab 10
①リアルタイム
Workerは自分の担当の
キューをクロールし、
DynamoDBの在庫/売上を
更新する。
店舗従業員は、各自の
PDA/店舗PCからアクセス
する。
AppサーバはDynamoDB
から在庫/売上を取得すると、
現時点の数量がリアルタイ
ムに表示される
FTPd
S3Bucket SQS Worker SNS
SQS Worker
SQS Worker
POSレジ
新POS
売上テーブル
在庫テーブル
新PDA/店舗PC店舗
WEB/APP
サーバ
レジ売上から在庫・売上データ更新フローの例
- 13. TW:@HandsLabInc #jawsug #jawsdays #handslab 12
ミッション
大原則:フルマネージドサービスを使い倒す!
② 夜間バッチレス
夜中に電話で起こされるのはもう嫌・・・
確定データ作成処理のお守りをする毎日
完了遅延で開店ができない・・・
日中も常に確定データを作り続け、店舗業務終了と
同時に日次データが完成
- 14. TW:@HandsLabInc #jawsug #jawsdays #handslab 13
②夜間バッチレス
FTPd
S3Bucket
POSレジ
新POS
レジ売上から日次データ更新までの流れ
Worker 日次データ
集計データ 新PDA/店舗PC店舗
WEB/APP
サーバ
既存POSからの売上受信
は、POSから直接FTPサー
バへ保存。
1トランザクション1ファイル
で、リアルタイム用とは別の
Bucketに保存する
- 15. TW:@HandsLabInc #jawsug #jawsdays #handslab 14
②夜間バッチレス
FTPd
S3Bucket
POSレジ
新POS
レジ売上から日次データ更新までの流れ
Worker 日次データ
集計データ 新PDA/店舗PC店舗
WEB/APP
サーバ
WorkerはS3上の取引ファイル
を集めて日次・集計処理。
一日分の取引を、日中常に洗い
替え処理するイメージ。
日次データは当日発生した
トランザクションのまとめファ
イル。
集計データは、過去データ
も含めた、計算済みファイル。
- 16. TW:@HandsLabInc #jawsug #jawsdays #handslab 15
②夜間バッチレス
FTPd
S3Bucket
POSレジ
新POS
レジ売上から日次データ更新までの流れ
Worker 日次データ
集計データ 新PDA/店舗PC店舗
WEB/APP
サーバ
店舗Appサーバは、過去
データの参照や、リアルタイ
ム性が不要な情報は、S3か
らファイルを取得する。
店舗業務終了後、サーバを
停止する。
店舗の業務が終わり、デー
タが発生しなくなったら、
Workerを止める。
最後の日次処理データ=確
定データ。
- 17. TW:@HandsLabInc #jawsug #jawsdays #handslab 16
②夜間バッチレス
FTPd
S3Bucket
POSレジ
新POS
レジ売上から日次データ更新までの流れ
Worker 日次データ
集計データ 新PDA/店舗PC店舗
WEB/APP
サーバ
店舗Appサーバは、過去
データの参照や、リアルタイ
ム性が不要な情報は、S3か
らファイルを取得する。
店舗業務終了後、サーバを
停止する。
店舗の業務が終わり、デー
タが発生しなくなったら、
Workerを止める。
最後の日次処理データ=確
定データ。
詳しくはWEBで!
- 20. TW:@HandsLabInc #jawsug #jawsdays #handslab 19
③スケールアウト
SQS/SNSの活用で、各部が疎結合/ステートレス!
AutoScaling、DynamoDB、S3でデータ/処理能力がオートスケール!
S3Bucket
Worker
日次データ
集計データ
FTPd
S3Bucket SQS Worker SNS
SQS Worker
SQS Worker
POSレジ
新POS
売上テーブル
在庫テーブル
新PDA/店舗PC店舗
WEB/APP
サーバ
ASG
ASG
ASG
ASG
ASG
キュー数で
オートスケール!
負荷で
オートスケール!
- 21. TW:@HandsLabInc #jawsug #jawsdays #handslab 20
③スケールアウト
SQS/SNSの活用で、各部が疎結合/ステートレス!
AutoScaling、DynamoDB、S3でデータ/処理能力がオートスケール!
S3Bucket
Worker
日次データ
集計データ
FTPd
S3Bucket SQS Worker SNS
SQS Worker
SQS Worker
POSレジ
新POS
売上テーブル
在庫テーブル
新PDA/店舗PC店舗
WEB/APP
サーバ
ASG
ASG
ASG
ASG
ASG
キュー数で
オートスケール!
負荷で
オートスケール!
売上高1兆円規模でも対応可能!!
※2013年3月期
売上高 828億万円(Wikipediaより)
- 22. TW:@HandsLabInc #jawsug #jawsdays #handslab 21
③スケールアウト
1兆円システムへの懸念点・・・
S3Bucket
Worker
日次データ
集計データ
FTPd
S3Bucket SQS Worker SNS
SQS Worker
SQS Worker
POSレジ
新POS
売上テーブル
在庫テーブル
新PDA/店舗PC店舗
WEB/APP
サーバ
ASG
ASG
ASG
ASG
ASG
1Bucketが受けられる書き
込みリクエストは、100件/秒
まで
SNSは毎秒3000件を超え
るとAWSの中の人に怒られ
る
SQSも毎秒3000件を超える
とAWSの中の人に怒られる
Editor's Notes
- #5: その分止まってはいけない感が強い
レガシーな仕組みがまだまだ多い
オンプレミス、閉域網、Win2003・・・
弊社で、内製でクラウド化
- #6: これからは、これらにAWSのサービスを組み合わせて行きたい
- #7: フルマネージドを使い倒す!
→さらに具体的な3つの目標があった
- #13: 間に構成要素がたくさんあるのに、リアルタイム?
- #14: 確定データの話
一日のデータをためてから確定処理→夜中にエラー
→確定処理が遅延、開店できない。もしくはプランB
- #17: データの構造とかわかりにくい?
詳しくはWEBで!
- #18: データの構造とかわかりにくい?
詳しくはWEBで!
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://www.slideshare.net/ktabei/ss-46130308
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy