$30 off During Our Annual Pro Sale. View Details »

aiboクラウドサービスを支えるサーバーレス技術 / Serverlessconf Tokyo 2018 aibo

aiboクラウドサービスを支えるサーバーレス技術 / Serverlessconf Tokyo 2018 aibo

aiboクラウドサービスを支えるサーバーレス技術

森本 良平 ( Ryohei Morimoto )
@ryoheimorimoto

---

2018年1月11日のaibo発売以降、おかげさまでaiboのビジネスは順調に成長しています。

aiboのクラウドサービスはサーバーレス技術に支えられています。
aiboクラウドサービスでどのようにサーバーレス技術を活用しているか、また、私たちが行っているサーバーレスなプラクティスなどをご紹介します。

Ryohei Morimoto

September 29, 2018
Tweet

More Decks by Ryohei Morimoto

Other Decks in Technology

Transcript

  1. Serverlessconf Tokyo 2018 aiboクラウドサービスを⽀えるサーバーレス技術 Serverlessconf Tokyo 2018 ソニー株式会社 / ソニーネットワークコミュニケーションズ株式会社

    森本 良平 Copyright 2018 Sony Corporation 2018.9.29
  2. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 2 Copyright 2018 Sony

    Corporation aibo撮影 • 森本 良平 (@ryoheimorimoto) • 所属 - ソニー株式会社 - ソニーネットワークコミュニケーションズ株式会社 • 仕事 - DevOps全般 - あらゆるものを⾃動化することがライフワーク ⾃⼰紹介
  3. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 3 Copyright 2018 Sony

    Corporation aiboご紹介
  4. ѪΒ͠͞ ஌తೝࣝ දݱྗ ֶशɾҭ੒

  5. ϋʔυ΢ΣΞ ೝࣝ ߦಈ੍ޚ ঢ়گཧղ ߦಈܭը ஌తॲཧ ʢ&EHFʣ Ϣʔβʔʗपล؀ڥ ஌తॲཧ ʢ$MPVEʣ

    ηϯγϯά ϝΧτϩχΫε */ 065 ΤοδίϯϐϡʔςΟϯάγεςϜ ΞʔΩςΫνϟ
  6. ϋʔυ΢ΣΞ ೝࣝ ߦಈ੍ޚ ঢ়گཧղ ߦಈ੍ޚ ஌తॲཧʢ&EHFʣ Ϣʔβʔʗपล؀ڥ ஌తॲཧ ʢ$MPVEʣ ηϯγϯά

    ϝΧτϩχΫε */ 065 ΤοδίϯϐϡʔςΟϯάγεςϜ ΞʔΩςΫνϟ ؾͮ͘ ஌తೝࣝ ߦಈ͢Δ දݱྗ ߟ͑Δ ֶशɾҭ੒ ηϯγϯάٕज़ ϝΧτϩχΫεٕज़ "*ٕज़
  7. Χϝϥ Y 5P'ηϯα λονηϯα Y ϚΠΫ Y ਓײηϯα র౓ηϯα *.6ʢ಄ʣ

    14%ηϯα Y ಄ Y ޱ Y ट Y ࣖ Y લ଍ Y ޙ଍ Y ͬ͠Ά Y ࠊ Y ຊମγεςϜߏ੒ ηϯγϯάσόΠε ΞΫνϡΤʔλ 2VBMDPNNš4OBQESBHPOä  "12 εϐʔΧʔ 3".(# 30.(# ΞϓϦέʔγϣϯ ϓϩηοαʢ40$ʣ Ϟʔγϣϯ ϓϩηοα 0-&%Y ʢಏʣ -5&8J'J *.6ʢମʣ
  8. ू߹஌ʹΑΔ"*ͷਐԽ ݸʑͷಈ࡞؀ڥ͔Β ڞ௨"* 1'Λߏங 1FSTPOBM"* $PNNPO"*

  9. BJCPશମߏ੒ $MPVE"* BJCP .ZBJCP ετΞ -5&8J'J

  10. <&34> ΤϯλςΠϯϝϯτϩϘοτ IUUQBJCPDPN

  11. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 11 Copyright 2018 Sony

    Corporation 国内出荷 2万台達成 https://www.sony.co.jp/SonyInfo/News/Press/201807/18-062/index.html
  12. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 12 Copyright 2018 Sony

    Corporation USでも販売開始します https://www.sony.com/en_us/SCA/company-news/press-releases/sony-electronics/2018/sonys-limited-first-litter-edition-aibo-is-now-ava.html
  13. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 13 Copyright 2018 Sony

    Corporation aiboクラウドサービスで、 サーバーレスアーキテクチャを 何に使っているか??
  14. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 14 Copyright 2018 Sony

    Corporation aiboクラウド システム構成
  15. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 15 Copyright 2018 Sony

    Corporation スモールチームで開発分担 Frontend - My aibo (Android / iOS / Web) aibo Cloud Core - aibo専⽤のビジネスロジック 共通基盤 - 他のプロダクトでも使いまわせる機能群 データ分析基盤 - aiboの⾏動や膨⼤なセンサーデータを集計、分析
  16. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 16 Copyright 2018 Sony

    Corporation My aiboアプリで aiboとコミュニケーション ・⾃分の情報 ・写真 etc... ・各種設定 ・ふるまいコマンド etc... IoT Core Lambda Web App Mobile App DynamoDB aibo 個体ごとの証明書埋め込み (IoT Core の Client認証利⽤) API Gateway aibo My aibo
  17. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 17 Copyright 2018 Sony

    Corporation aiboのデータ活⽤ $MPVE"* #* aibo データ収集 EdgeへのFeedback %BUB-BLF Athena EMR BIの構成 Kinesis Firehose S3 アドホック分析 S3 Redshift
  18. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 18 Copyright 2018 Sony

    Corporation 製造事業所 (⼯場) との連携 製造事業所 物流 製造 梱包 調整検査 セキュリティサーバ 秘密鍵と証明書 インストール 証明書の Just In Time Registration Web API で ハードウェア情報を登録 証明書とハードウェア情報の関連付け Lambda DynamoDB API Gateway IoT Core
  19. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 19 Copyright 2018 Sony

    Corporation ソニーストアと連携 ソニーストア お届け 開梱後、ペアリング等の ⾯倒な設定なしですぐに使える オーナー ソニーストア S3 購⼊データ (Batch処理) 各種ID発⾏ リソース登録 APIで登録済みの 情報を参照 Lambda DynamoDB API Gateway
  20. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 20 Copyright 2018 Sony

    Corporation カスタマーサポートとの連携 うちの⼦、調⼦ 悪いのですが? 状態をチェック します 各種設定値 (※⾮個⼈情報のみ) や エラー履歴などを参照 CS専⽤端末 aibo aiboがUploadした情報に特権アクセス Closed Network 定期的に⾃分の状態を更新 Private API Lambda DynamoDB API Gateway
  21. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 21 Copyright 2018 Sony

    Corporation aiboの修理 (Backup / Restore) 修理拠点 万が⼀、本体交換が必要な場合、 aiboの記憶を新しい本体に引き継ぐ アクティビティ データ管理 Repair⽤端末 Closed Network 交換⽤aibo (1) Restore 指⽰ (2) Web APIで 各種ID付け替え (3) 各種データを交換⽤aiboへ 修理へ オーナーのもとへ オーナーと再開 Private API Lambda DynamoDB API Gateway Backup (client side encryption)
  22. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 22 Copyright 2018 Sony

    Corporation なぜサーバーレスを選択したか? エンジニアリングの視点 • サーバーレスアプリのDevOps経験があった • 早く安くできることを実感していた サーバーレスでスモールスタート! ビジネス的な視点 • 新⽣aiboが市場に受け⼊れられるかどうか未知数 • 販売台数の予測が難しい aiboクラウドサービスは、FaaSに限らず様々な AWS の Managed Service で構築
  23. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 23 Copyright 2018 Sony

    Corporation aiboクラウドサービスを⽀える サーバーレス なプラクティス
  24. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 24 Copyright 2018 Sony

    Corporation サーバーレスなプラクティス 1. サーバーレス マイクロサービス アーキテクチャ 2. 共通フレームワーク 3. CI / CD 4. パフォーマンス 5. モニタリング 6. セキュリティ 7. 要件変更
  25. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 25 Copyright 2018 Sony

    Corporation 1. サーバーレス マイクロサービス アーキテクチャ aiboクラウドは様々なマイクロサービスで構成されている ・適切にドメイン分離し、管理できる範囲でチーム分担 ・基本的にサーバーレスで構築 aibo My aiboアプリ ⼯場 ソニーストア コールセンター aibo Cloud Core ID Mgmt Service Auth Service Store Service CS Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector aibo 専⽤サービス群 共通基盤 ... ...
  26. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 26 Copyright 2018 Sony

    Corporation 1. サーバーレス マイクロサービス アーキテクチャ いわゆる インフラチーム や Opsチーム は存在しない aibo Cloud Core ID Mgmt Service Auth Service Store Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector CS Service aibo 専⽤サービス群 共通基盤 ... ... ・Scrum of Scrums な開発チーム ・独⽴して運⽤、ノウハウは共有
  27. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 27 Copyright 2018 Sony

    Corporation 1. サーバーレス マイクロサービス アーキテクチャ いわゆる インフラチーム や Opsチーム は存在しない aibo Cloud Core ID Mgmt Service Auth Service Store Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector CS Service aibo 専⽤サービス群 共通基盤 ... ... ・Scrum of Scrums な開発チーム ・独⽴して運⽤、ノウハウは共有 各マイクロサービスの開発チームが DevOps する コミュニケーションコスト ⼩ 各マイクロサービスの改善スピード ⼤ !!
  28. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 28 Copyright 2018 Sony

    Corporation 1. サーバーレス マイクロサービス アーキテクチャ aibo Cloud Core ID Mgmt Service Auth Service Store Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector CS Service aibo 専⽤サービス群 共通基盤 ... ... 毎⽇のように、何かしらのサービスでリリースがある 今⽇ Photo リリースします〜 明⽇はAuth リリースします!
  29. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 29 Copyright 2018 Sony

    Corporation 1. サーバーレス マイクロサービス アーキテクチャ aibo Cloud Core ID Mgmt Service Auth Service Store Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector CS Service aibo 専⽤サービス群 共通基盤 ... ... 毎⽇のように、何かしらのサービスでリリースがある 今⽇ Photo リリースします〜 明⽇はAuth リリースします! リリースはクイックに! テストの意識が⾼まる リリースに対する障壁が⼩さい状態をKeep
  30. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 30 Copyright 2018 Sony

    Corporation 1. サーバーレス マイクロサービス アーキテクチャ マイクロサービスの構成はチームごとに⾃由 ただし、インターフェースは明確にしておく REST APIは全て SwaggerでAPI定義 aibo Cloud Core ID Mgmt Service Auth Service Store Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector CS Service aibo 専⽤サービス群 共通基盤 ... ...
  31. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 31 Copyright 2018 Sony

    Corporation 1. サーバーレス マイクロサービス アーキテクチャ マイクロサービスの構成はチームごとに⾃由 ただし、インターフェースは明確にしておく REST APIは全て SwaggerでAPI定義 aibo Cloud Core ID Mgmt Service Auth Service Store Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector CS Service aibo 専⽤サービス群 共通基盤 ... ... Swaggerで常に最新のWeb API仕様をメンテ + 公開 開発者全員がSwagger UIで常に最新のAPI仕様にアクセスできる マイクロサービスあり過ぎで、aibo / My aiboの組み込みが⼤変 API定義の⼆重管理
  32. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 32 Copyright 2018 Sony

    Corporation 1. サーバーレス マイクロサービス アーキテクチャ (課題) マイクロサービスがたくさんあると、aibo / My aiboアプリ は組み込みが⼤変 aibo Cloud Core ID Mgmt Service Auth Service Store Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector CS Service aibo 専⽤サービス群 共通基盤 ... ... Easy ! SDK SDK SDK SDK SDK SDK Swagger Codegenで SDKを⾃動⽣成
  33. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 33 Copyright 2018 Sony

    Corporation (課題) マイクロサービスがたくさんあると、aibo / My aiboアプリ は組み込みが⼤変 1. サーバーレス マイクロサービス アーキテクチャ aibo Cloud Core ID Mgmt Service Auth Service Store Service Photo Service Initialization Service Backup Service Data Analytics IoT Hub Service Cloud AI Log Collector CS Service aibo 専⽤サービス群 共通基盤 ... ... Easy ! SDK SDK SDK SDK SDK SDK Swagger Codegenで SDKを⾃動⽣成 Swagger Codegenで各サービスのSDKを⾃動⽣成 組み込みを少しでも楽に ちゃんとAPI仕様を書くようになる
  34. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 34 Copyright 2018 Sony

    Corporation サーバーレスなプラクティス 1. サーバーレス マイクロサービス アーキテクチャ 2. 共通フレームワーク 3. CI / CD 4. パフォーマンス 5. モニタリング 6. セキュリティ 7. 要件変更
  35. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 35 Copyright 2018 Sony

    Corporation 2. 共通フレームワーク マイクロサービス開発のための共通フレームワークを整備 構成管理・デプロイ Lambda Runtime 開発⾔語 Testing CI Common Infrastructure となりのチームは Apex と Python で開発していたりする。 チームごとに好きなものを利⽤。
  36. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 36 Copyright 2018 Sony

    Corporation 2. 共通フレームワーク マイクロサービス開発のための共通フレームワークを整備 Common Modules • S3 に Hosting (Private Repository として) • 各⾃がLocalにダウンロードして開発 • デプロイ時も CircleCI で S3 から Module 取得して AWS にデプロイ / ⾊々なサービスで使う機能は共通モジュール化 Authorizer 各サービス共通のToken検証⽤モジュール Event Handler cloudia-api-builder を Wrap した Web API Routing Logger bunyan (バニヤン) を拡張した独⾃Logger Error Handler サービス共通の Exception Handler Configuration Lambda の環境変数や API Gateway のステージ情報を管理 各種Utility 各⾃が作ったお便利 Utility を集約してみんなで使う!
  37. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 37 Copyright 2018 Sony

    Corporation 2. 共通フレームワーク Common Infrastructure と Common Modules を使ったサービステンプレートを整備 Service Template Hello World Example Common Infrastructure Common Modules • テンプレートの Clone ですぐに開発可能 • CI が設定済みなのですぐにデプロイ可能 • CloudWatch Logs の Metrics Filters 準備済み (とりあえずエラーログ吐いておけばアラーム⾶ばせる) • CloudWatch の Dashboard も簡単に構築可能 などなど... (Local開発環境構築済み)
  38. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 38 Copyright 2018 Sony

    Corporation 2. 共通フレームワーク Common Infrastructure と Common Modules を使ったサービステンプレートを整備 Service Template Hello World Example Common Infrastructure Common Modules • テンプレートの Clone ですぐに開発可能 • CI が設定済みなのですぐにデプロイ可能 • CloudWatch Logs の Metrics Filters 準備済み (とりあえずエラーログ吐いておけばアラーム⾶ばせる) • CloudWatch の Dashboard もすぐに構築 などなど... (Local開発環境構築済み) サービステンプレートや共通モジュールはチーム全員でメンテ 共通フレームワークを熟知 → マイクロサービス開発の敷居がどんどん低くなる チーム全員でサーバーレス関連技術のレベルアップ
  39. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 39 Copyright 2018 Sony

    Corporation サーバーレスなプラクティス 1. サーバーレス マイクロサービス アーキテクチャ 2. 共通フレームワーク 3. CI / CD 4. パフォーマンス 5. モニタリング 6. セキュリティ 7. 要件変更
  40. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 40 Copyright 2018 Sony

    Corporation 3. CI / CD Dev Stage GitHub Development Push & Pull Request Build Event Hook Unit Test Provision & Deploy Sanity Check Result 1 2 5 6 8 9 Integration Test 7 Prod Code Quality Check Load Test 3 4 https://rocro.com/ コードの品質チェック、API Doc⾃動⽣成、 負荷テスト環境 などを提供するSaaS
  41. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 41 Copyright 2018 Sony

    Corporation 3. CI / CD 各環境のコードベースを (断固) 統⼀ 環境差異はConfigurationのみ。インフラ構成も基本的には全環境で同じ。 Dev環境 QA環境 Prod環境 開発⽤ファームウェア 本番⽤ファームウェア 仮想デバイス Release Release
  42. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 42 Copyright 2018 Sony

    Corporation 3. CI / CD 各環境のコードベースを (断固) 統⼀ 環境差異はConfigurationのみ。インフラ構成も基本的には全環境で同じ。 Dev環境 QA環境 Prod環境 開発⽤ファームウェア 本番⽤ファームウェア 仮想デバイス Release Release メンテコストが⼩さい (Git Treeの状態が常にClean ) 環境違いによるトラブルを回避 無駄にインフラコストがかかっている箇所がある (NAT Gatewayとか...) 各環境のコードベースを (断固) 統⼀
  43. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 43 Copyright 2018 Sony

    Corporation 3. CI / CD 先⽇の CircleCI 1.0 終了問題 2018.8.31 に CircleCI 1.0 が終了するとのことで、世の中がざわついた https://circleci.com/blog/sunsetting-1-0/
  44. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 44 Copyright 2018 Sony

    Corporation 3. CI / CD 先⽇の CircleCI 1.0 終了問題 2018.8.31 に CircleCI 1.0 が終了するとのことで、世の中がざわついた https://circleci.com/blog/sunsetting-1-0/ サービステンプレートを修正して、各マイクロサービスに適⽤ (circle.yaml を .circleci/config.yml に置き換え) サービステンプレートを⼀気に全マイクロサービスに適⽤ (+ちょっと修正) ほぼ⼯数をかけることなく移⾏完了
  45. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 45 Copyright 2018 Sony

    Corporation サーバーレスなプラクティス 1. サーバーレス マイクロサービス アーキテクチャ 2. 共通フレームワーク 3. CI / CD 4. パフォーマンス 5. モニタリング 6. セキュリティ 7. 要件変更
  46. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 46 Copyright 2018 Sony

    Corporation 4. パフォーマンスに関するプラクティス マイクロサービス毎のLambdaのメモリサイズ調整 ⼀⽅、アプリの認証で待たされるとユーザーはイライラ AuthServiceはLambdaのメモリ増強しておく (2048 MBとか) ユーザーが処理速度を体感できず、通信が⽀配的なサービスは、 Lambdaのメモリは少なくても⼤丈夫 (256MBとか) Auth Service Store Service [e.g.] AuthService スケールアップの例 • Lambdaのメモリ 512MB --> 2048MB • 処理速度が約2倍になった (ただしコストも2倍)
  47. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 47 Copyright 2018 Sony

    Corporation 4. パフォーマンスに関するプラクティス マイクロサービス毎のLambdaのメモリサイズ調整 ⼀⽅、アプリの認証で待たされるとユーザーはイライラ AuthServiceはLambdaのメモリ増強しておく (2048 MBとか) ユーザーが処理速度を体感できず、通信が⽀配的なサービスは、 Lambdaのメモリは少なくても⼤丈夫 (256MBとか) Auth Service Store Service [e.g.] AuthService スケールアップの例 • Lambdaのメモリ 512MB --> 2048MB • 処理速度が約2倍になった (ただしコストも2倍) マイクロサービス毎のパフォーマンスチューニング 個別最適化で、 処理速度 (UX) とコストのバランスが取りやすい
  48. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 48 Copyright 2018 Sony

    Corporation 4. パフォーマンスに関するプラクティス ROCRO の負荷テストサービス Loadroid と X-Ray を使ったパフォーマンス検証 Loadroid : ⾃動負荷試験サービス • クラウド負荷試験サービス。シナリオを書くだけで、クラウド上に 負荷サーバーを⾃動構築、負荷試験実施、結果の⾃動集計。 • ⼤規模負荷試験、数⼗万台のIoT機器を模擬した試験など、 難度の⾼い試験が⼿軽に可能 アプリケーションやその基盤となるサービスの実⾏状況を把握し、パフォーマンスの 問題やエラーの根本原因を特定して、トラブルシューティングができる AWS X-Ray
  49. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 49 Copyright 2018 Sony

    Corporation 4. パフォーマンスに関するプラクティス あるマイクロサービスのパフォーマンス検証結果 たまにパラメータストアからのデータロードにかなり時間がかかる現象を発⾒ (とある秘密情報を、API呼び出しのたびにパラメータストアから取得していた) ROCRO Loadroidでのテスト結果 X-RayのConsoleで詳細をチェック API呼び出しにかなり時間が かかることがある 詳細を確認
  50. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 50 Copyright 2018 Sony

    Corporation 4. パフォーマンスに関するプラクティス Serverless Frameworkで、パラメータストアからLambdaの環境変数にデータをセット (引⽤) https://serverless.com/framework/docs/providers/aws/guide/variables/ 脱パラメータストアを実施 ⾼速化 安定化
  51. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 51 Copyright 2018 Sony

    Corporation 4. パフォーマンスに関するプラクティス Serverless Frameworkで、パラメータストアからLambdaの環境変数にデータをセット (引⽤) https://serverless.com/framework/docs/providers/aws/guide/variables/ 脱パラメータストアを実施 ⾼速化 安定化 ROCRO の負荷テストサービス Loadroid と X-Ray を使ったパフォーマンス最適化 Serverless Frameworkはもちろん、強⼒なツール群(ROCRO や X-Ray など) を使いこなすことで、マイクロサービスはパワーアップする
  52. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 52 Copyright 2018 Sony

    Corporation サーバーレスなプラクティス 1. サーバーレス マイクロサービス アーキテクチャ 2. 共通フレームワーク 3. CI / CD 4. パフォーマンス 5. モニタリング 6. セキュリティ 7. 要件変更
  53. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 53 Copyright 2018 Sony

    Corporation 5. モニタリング サーバーレスでもOpsは (まだ) 必要 • AWS の各種リソース監視 - DynamoDB / API Gateway / エラー監視 ... • aiboの各種イベント対応 - 例) My aiboアプリへのPush配信前に各種AWSリソースをスケールアップ • 外部サービスとの連携状況チェック • コスト最適化施策 etc...
  54. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 54 Copyright 2018 Sony

    Corporation 5. モニタリング [事例紹介] 外部システムとの連携時の、マイクロサービスならではの課題 想定外のデータが外部システムから流れ、マイクロサービス間でデータ不整合が発⽣ 外部システム 外部システムの Gateway aibo Cloud Core ID Mgmt Service 想定外のデータ 各種ID発⾏ データ不整合 発⽣ ID情報 • I/Fは明確でも流れるデータがおかしいと事故ることがある • ⼈の⼿が介在するようなケースでは、ヒューマンエラーで想定外のデータが発⽣し得る サービスが分かれていると気づきにくい チームが違うとなおさら
  55. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 55 Copyright 2018 Sony

    Corporation 5. モニタリング データ不整合が起きる前提で、それを検知できる仕組みを導⼊しておく 外部システム 外部システムの Gateway aibo Cloud Core ID Mgmt Service 各種ID発⾏ ID情報 通常と異なるIDの 組み合わせを検知 原因不明のID削除 リクエストを検知 アラート アラート 想定外のデータ
  56. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 56 Copyright 2018 Sony

    Corporation 5. モニタリング データ不整合が起きる前提で、それを検知できる仕組みを導⼊しておく 外部システム 外部システムの Gateway aibo Cloud Core ID Mgmt Service 各種ID発⾏ ID情報 通常と異なるIDの 組み合わせを検知 原因不明のID削除 リクエストを検知 アラート アラート 想定外のデータ データ不整合が起きる前提で、それを検知できる仕組みを導⼊しておく 各マイクロサービスで、I/Fはもちろん、データに対しても責任を持つ 不正なデータをどこかで検知できる確率が上がる
  57. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 57 Copyright 2018 Sony

    Corporation 5. モニタリング インシデント検知! とにかくすばやく対応! ⾃動復旧できるように サービスを改修 不正データ検出の 仕組みを各サービス で検討・導⼊ チームや部署横断で 対策を検討 カイゼンの Loopに載せる!
  58. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 58 Copyright 2018 Sony

    Corporation 5. モニタリング インシデント検知! とにかくすばやく対応! ⾃動復旧できるように サービスを改修 不正データ検出の 仕組みを各サービス で検討・導⼊ チームや部署横断で 対策を検討 カイゼンの Loopに載せる! • 最初はマニュアル対応でデータ復旧 (やむなし) • 現象が明確になり次第、⾃動復旧できるようにサービスを改修 サービスイン直後は外部システム連携でトラブルが多かった 多くのカイゼンの結果、ここ数ヶ⽉は外部システム連携によるトラブル無し
  59. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 59 Copyright 2018 Sony

    Corporation サーバーレスなプラクティス 1. サーバーレス マイクロサービス アーキテクチャ 2. 共通フレームワーク 3. CI / CD 4. パフォーマンス 5. モニタリング 6. セキュリティ 7. 要件変更
  60. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 60 Copyright 2018 Sony

    Corporation 6. セキュリティに対するプラクティス セキュリティはいつだって避けて通れない⼤きな課題 アプリケーションをサーバーレスでつくる ⾯倒なインフラセキュリティ対応から開放される!! 当然、サーバーレスでもリスクアセスメントや内部監査、Penetration test は実施 (サーバーレスでもAWSに申請すれば Pen test を実施可能) 各種Injection や Port Scanning、Directory Traversal など、 インフラの脆弱性試験を受診するが、いつも⼤きな問題は⾒つからない サーバーレスの⽅が⾃分でインフラを管理するよりも楽で安全
  61. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 61 Copyright 2018 Sony

    Corporation 6. セキュリティに対するプラクティス (例) 認証 / 認可や Credential管理は Auth Service を監査すれば⼗分 その他のサービスは共通の Authorizer を利⽤し、 全く同じ構成の箇所は監査を簡略化 通信経路は何だね? もちろんHTTPSです DBの暗号化は しとるのかね? SSEで暗号化して、 権限もIAMで..云々 Auth Service 〇〇 Serviceと同じ Custom Authorizer を使ってます よし、OK。 ※ イメージです Other Services ※ イメージです ※ただし Pen Test はちゃんとやる
  62. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 62 Copyright 2018 Sony

    Corporation 6. セキュリティに対するプラクティス (例) 認証 / 認可や Credential管理は Auth Service を監査すれば⼗分 その他のサービスは共通の Authorizer を利⽤し、 全く同じ構成の箇所は監査を簡略化 通信経路は何だね? もちろんHTTPSです DBの暗号化は しとるのかね? SSEで暗号化して、 権限もIAMで..云々 Auth Service 〇〇 Serviceと同じ Custom Authorizer を使ってます よし、OK。 ※ イメージです Other Services ※ イメージです ※ただし Pen Test はちゃんとやる マイクロサービスのセキュリティ監査のスコープを⼩さくする 時間がかかりがちなセキュリティ監査の⼯数を短縮できる
  63. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 63 Copyright 2018 Sony

    Corporation サーバーレスなプラクティス 1. サーバーレス マイクロサービス アーキテクチャ 2. 共通フレームワーク 3. CI / CD 4. パフォーマンス 5. モニタリング 6. セキュリティ 7. 要件変更
  64. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 64 Copyright 2018 Sony

    Corporation 7. 要件変更に対するプラクティス 限られた時間の中で、みんなが良いものを作ろうと思ってやっているので当然! 新規事業は いつだって 安定しない ⼤企業っぽく ない雰囲気 ビジネス要因での ピボット そりゃもう⽇々 開発要件が変わる ステークホルダ からの様々な助⾔ 多くの不安定要素
  65. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 65 Copyright 2018 Sony

    Corporation 7. 要件変更に対するプラクティス 限られた時間の中で、みんなが良いものを作ろうと思ってやっているので当然! 新規事業は いつだって 安定しない ⼤企業っぽく ない雰囲気 ビジネス要因での ピボット そりゃもう⽇々 開発要件が変わる ステークホルダ からの様々な助⾔ 多くの不安定要素 要件が変わってブーブー⾔ってる暇があれば、さっさと捨てて作り直す! マイクロサービス化されているので、⼩さい単位で作り直せるから気持ちが楽 サーバーレスなので「インフラから作り直しかorz 」が (あまり) 無いので気持ちが楽
  66. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 66 Copyright 2018 Sony

    Corporation まとめ
  67. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 67 Copyright 2018 Sony

    Corporation まとめ 新⽣aiboはサーバーレス技術によって⽀えられています。 今後もサーバーレスなプラクティスをどんどん蓄積し、 クイックに新しい機能やサービスを提供していきます。 そして、サーバーレスのコミュニティへの貢献も 続けられたらと思う次第であります。 引き続きよろしくお願いします。
  68. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 68 Copyright 2018 Sony

    Corporation おわりに
  69. ソニー株式会社 AIロボティクスビジネスグループ Serverlessconf Tokyo 2018 2018.9.29 69 Copyright 2018 Sony

    Corporation aiboもあなたに会いたがっています ソニーストア オンライン ソニーストア銀座 アクセス aibo販売のご案内 https://goo.gl/maps/JUJDbEUXhDD2 https://aibo.sony.jp/store/reserve/
  70. SONYはソニー株式会社の登録商標または商標です。 各ソニー製品の商品名・サービス名はソニー株式会社またはグループ各社の登録商標または商標です。その他の製品および会社名は、各社の商号、登録商標または商標です。