Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

東急ハンズのクラウドデザインパターン アーキテクチャー編

20.237 visualizaciones

Publicado el

JAWS DAYS 2015
Big Track 「東急ハンズのクラウドデザインパターン」
アーキテクチャー部分の資料です。

Publicado en: Tecnología
  • Inicia sesión para ver los comentarios

東急ハンズのクラウドデザインパターン アーキテクチャー編

  1. 1. @ Copyright HANDSLAB INC All Rights Reserved. 2015年3月22日 東急ハンズのクラウドデザインパターン アーキテクチャー編 ハンズラボ株式会社 チーフエンジニア 田部井 一成
  2. 2. TW:@HandsLabInc #jawsug #jawsdays #handslab 1 自己紹介  名前:田部井 一成  所属:ハンズラボ株式会社  担当:外販案件、特にポイントシステム  特技:シェル芸、電子工作  趣味:ビールクラフト、燻製、歩く、寝る  好きなAWSサービス:
  3. 3. TW:@HandsLabInc #jawsug #jawsdays #handslab 2 今日お話したいこと 新基幹システムのアーキテクチャーについて
  4. 4. TW:@HandsLabInc #jawsug #jawsdays #handslab 3 東急ハンズの基幹システム?  本資料では、MDシステムのこと  MD:マーチャンダイジング  商品管理、在庫管理、売上管理・・・ 小売業にとっての根幹業務を担うシステム!
  5. 5. TW:@HandsLabInc #jawsug #jawsdays #handslab 4 開発チーム 東急ハンズの内製化を担当してきた  元店舗従業員も開発  RDB?オブジェクト指向?  ネイティブなエンジニアと協業  ユニケージ開発手法  バックエンドの言語はbash  データはテキストファイルで保持  ミドルウェアやパッケージを極力排除  フロントエンドはHTML5  レガシーなバックエンドに、フロントは極力最新の WEB技術を組み合わせる
  6. 6. TW:@HandsLabInc #jawsug #jawsdays #handslab 5 ミッション ① リアルタイム 大原則:フルマネージドサービスを使い倒す! ② 夜間バッチレス ③ スケールアウト
  7. 7. TW:@HandsLabInc #jawsug #jawsdays #handslab 6 ミッション ① リアルタイム 大原則:フルマネージドサービスを使い倒す!  即時のリアルデータによる、接客向上  将来のEC連携・統合への布石  即時性の必要なデータをDynamoDBに
  8. 8. TW:@HandsLabInc #jawsug #jawsdays #handslab 7 ①リアルタイム FTPd S3Bucket SQS Worker SNS SQS Worker SQS Worker POSレジ 新POS 売上テーブル 在庫テーブル 新PDA/店舗PC店舗 WEB/APP サーバ レジ売上から在庫・売上データ更新フローの例
  9. 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. 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. 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 サーバ レジ売上から在庫・売上データ更新フローの例
  12. 12. TW:@HandsLabInc #jawsug #jawsdays #handslab 11 ①リアルタイム  ポイント  更新処理のトリガーをS3に  S3に1ファイル置くだけで、後続処理はよしなに  複数SQSへのキューイングはSNSで  例外処理の省力化  SNSがバッファになる
  13. 13. TW:@HandsLabInc #jawsug #jawsdays #handslab 12 ミッション 大原則:フルマネージドサービスを使い倒す! ② 夜間バッチレス  夜中に電話で起こされるのはもう嫌・・・  確定データ作成処理のお守りをする毎日  完了遅延で開店ができない・・・  日中も常に確定データを作り続け、店舗業務終了と 同時に日次データが完成
  14. 14. TW:@HandsLabInc #jawsug #jawsdays #handslab 13 ②夜間バッチレス FTPd S3Bucket POSレジ 新POS レジ売上から日次データ更新までの流れ Worker 日次データ 集計データ 新PDA/店舗PC店舗 WEB/APP サーバ 既存POSからの売上受信 は、POSから直接FTPサー バへ保存。 1トランザクション1ファイル で、リアルタイム用とは別の Bucketに保存する
  15. 15. TW:@HandsLabInc #jawsug #jawsdays #handslab 14 ②夜間バッチレス FTPd S3Bucket POSレジ 新POS レジ売上から日次データ更新までの流れ Worker 日次データ 集計データ 新PDA/店舗PC店舗 WEB/APP サーバ WorkerはS3上の取引ファイル を集めて日次・集計処理。 一日分の取引を、日中常に洗い 替え処理するイメージ。 日次データは当日発生した トランザクションのまとめファ イル。 集計データは、過去データ も含めた、計算済みファイル。
  16. 16. TW:@HandsLabInc #jawsug #jawsdays #handslab 15 ②夜間バッチレス FTPd S3Bucket POSレジ 新POS レジ売上から日次データ更新までの流れ Worker 日次データ 集計データ 新PDA/店舗PC店舗 WEB/APP サーバ 店舗Appサーバは、過去 データの参照や、リアルタイ ム性が不要な情報は、S3か らファイルを取得する。 店舗業務終了後、サーバを 停止する。 店舗の業務が終わり、デー タが発生しなくなったら、 Workerを止める。 最後の日次処理データ=確 定データ。
  17. 17. TW:@HandsLabInc #jawsug #jawsdays #handslab 16 ②夜間バッチレス FTPd S3Bucket POSレジ 新POS レジ売上から日次データ更新までの流れ Worker 日次データ 集計データ 新PDA/店舗PC店舗 WEB/APP サーバ 店舗Appサーバは、過去 データの参照や、リアルタイ ム性が不要な情報は、S3か らファイルを取得する。 店舗業務終了後、サーバを 停止する。 店舗の業務が終わり、デー タが発生しなくなったら、 Workerを止める。 最後の日次処理データ=確 定データ。 詳しくはWEBで!
  18. 18. TW:@HandsLabInc #jawsug #jawsdays #handslab 17 ②夜間バッチレス  ポイント  DynamoDBを使わない  集計処理や洗い替えには向かない  RDSを使わない  大規模にスケールできない  そもそもテキストファイル文化  S3にデータを保存する謎の安心感
  19. 19. TW:@HandsLabInc #jawsug #jawsdays #handslab 18 ミッション 大原則:フルマネージドサービスを使い倒す! ③ スケールアウト  今後の新システムの全店導入をスムーズに  新店オープンでも処理能力の心配を無しに  EC連動/統合を視野にいれる
  20. 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. 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. 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の中の人に怒られる
  23. 23. TW:@HandsLabInc #jawsug #jawsdays #handslab 22 まとめ ハンズラボでは、こういう、ちゃんとした、基幹システムもつく れるということや
  24. 24. TW:@HandsLabInc #jawsug #jawsdays #handslab 23 まとめ ハンズラボでは、こういう、ちゃんとした、基幹システムもつく れるということや しかも、既存の考え方にとらわれず、常に 新しいソリューションを追い求めます!
  25. 25. TW:@HandsLabInc #jawsug #jawsdays #handslab 24 今後の予定  新MDシステムの全店舗展開  新POSの開発  ECとの連動、統合  そして、外販へ・・・ 今後も目玉開発が目白押し! ハンズラボでは、一緒に新アーキテクチャーを構築し てくれるメンバーを募集してます!

×