Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバーレスのポテンシャルとシステム表現 / How Serverless Loves Event-Driven Architecture

Tori Hara
February 16, 2018

サーバーレスのポテンシャルとシステム表現 / How Serverless Loves Event-Driven Architecture

サーバーレスはどのようなものか、どのように捉えることが望ましいかについて話しました.

Presented at Developers Summit 2018.

Tori Hara

February 16, 2018
Tweet

More Decks by Tori Hara

Other Decks in Technology

Transcript

  1. SUPINF Inc. // twitter.com/toricls ❤ Serverless, Docker/Container ▶︎ AWS Certified

    SA / DevOps Engineer Professional ▶︎ - Yasuhiro HARA @toricls
  2. SUPINF Inc. // twitter.com/toricls rate(1 minute) invoke http/https invoke stream

    github.com/toricls/pingbot SPA Bot - 外形監視 & 通知ツール -
  3. SUPINF Inc. // twitter.com/toricls コンピューティング・リソース調達方法の歴史を振り返る EC2 DC Container + Lambda

    物理面の調達と運用を アウトソース リソースそのものの 調達と運用を アウトソース 調達したリソースを 自分たちで管理・運用 アプリケーションのみ 自分たちで管理・運用
  4. SUPINF Inc. // twitter.com/toricls 「サーバーレス」のメリットを構成する要素 1. 機能の提供 2. コード実行環境の提供 Functional

    SaaS / BaaS Auth0 Firebase SendGrid ... PaaS FaaS Google App Engine Heroku ... AWS Lambda Azure Functions ...
  5. SUPINF Inc. // twitter.com/toricls 「サーバーレス」のメリットを構成する要素 1. 機能の提供 2. コード実行環境の提供 Functional

    SaaS / BaaS Auth0 Firebase SendGrid ... PaaS FaaS Google App Engine Heroku ... AWS Lambda Azure Functions ... 機能と運用のアウトソース
  6. SUPINF Inc. // twitter.com/toricls 「サーバーレス」のメリットを構成する要素 1. 機能の提供 2. コード実行環境の提供 Functional

    SaaS / BaaS Auth0 Firebase SendGrid ... PaaS FaaS Google App Engine Heroku ... AWS Lambda Azure Functions ... 機能と運用のアウトソース 運用のアウトソース
  7. SUPINF Inc. // twitter.com/toricls 「サーバーレス」の見えにくいメリット Functional SaaS / BaaS Auth0

    Firebase SendGrid ... ▶︎ 機能性がコンポーネントとし て切り出される ▶︎ 結果、マイクロサービス的な 取り組みが必要とされる ▶︎ e.g. サーキット・ブレイカー
  8. SUPINF Inc. // twitter.com/toricls PaaS Google App Engine Heroku ...

    「サーバーレス」の見えにくいメリット ▶︎ プラットフォーム側の運用の 流儀に沿う必要がある ▶︎ 結果、アプリケーションの作 りに制約が入る ▶︎ e.g. The 12-Factor App
  9. SUPINF Inc. // twitter.com/toricls FaaS AWS Lambda Azure Functions ...

    「サーバーレス」の見えにくいメリット ▶︎ 完全なステートレスの要求 ▶︎ べき等性(*) の要求 ▶︎ ユーザーに自前でプロセス管 理をさせない設計だからこそ 得られる数々の利点
  10. SUPINF Inc. // twitter.com/toricls FaaS AWS Lambda Azure Functions ...

    「サーバーレス」の見えにくいメリット ▶︎ イベント・ドリブン プラットフォーム自体が ネイティブに
  11. SUPINF Inc. // twitter.com/toricls Event-driven ではないシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス 注文

    Data Data 売上集計サービス Data こっちのコードに手を 入れなきゃいけない 感じになる
  12. SUPINF Inc. // twitter.com/toricls 受注管理サービス 配送予約サービス 在庫管理サービス 注文 subscribe subscribe

    publish event 売上集計サービス subscribe Event-driven なシステムの例 既存のコードに 手を入れなくても サービスを増やせる (理論上は) New!
  13. SUPINF Inc. // twitter.com/toricls Dependency graphs - Service orchestration vs

    Service choreography https://www.thoughtworks.com/de/insights/blog/scaling-microservices-event-stream Orchestrated services Fully choreographed services
  14. SUPINF Inc. // twitter.com/toricls Dependency graphs - Service orchestration vs

    Service choreography https://www.thoughtworks.com/de/insights/blog/scaling-microservices-event-stream Orchestrated services Fully choreographed services ツラい
  15. SUPINF Inc. // twitter.com/toricls ઌ΄Ͳͷ Event-driven なシステム例を AWS で DynamoDB

    / 受注情報 subscribe subscribe subscribe Lambda / 配送予約サービス Lambda / 売上集計サービス Lambda / 在庫管理サービス
  16. SUPINF Inc. // twitter.com/toricls ઌ΄Ͳͷ Event-driven なシステム例を AWS で DynamoDB

    / 受注情報 stream stream stream Lambda / 配送予約サービス Lambda / 売上集計サービス Lambda / 在庫管理サービス Lambda / 受注管理サービス save
  17. SUPINF Inc. // twitter.com/toricls ઌ΄Ͳͷ Event-driven なシステム例を拡張 save stream Lambda

    / Data Transform stream stream stream publish Kinesis Data Streams / Data Transform
  18. SUPINF Inc. // twitter.com/toricls with TTL Event-driven なシステムの別の形 save item

    deletion event stream archive サーバーレス・アーキテクチャーの真髄
  19. SUPINF Inc. // twitter.com/toricls 「サーバーレス」なシステムについてのまとめ ▶︎ 運用面だけでなくアーキテクチャー面のメリットがわりとデカい ▶︎ アーキテクチャー面のメリットはプラットフォームの特性を生かすことを意識しないと得に くいことも

    ▶︎ イベント・ドリブンな形でシステムを表現できないか?という考え方 ▶︎ サービス間の相互作用をイベントとして表現できれば ▶︎ サービス間が疎結合に保たれて ▶︎ 洗練されたアーキテクチャーが手に入る ▶︎ サーバーレス楽しい