サーバーレスについて語るときに僕の語ること / What I Talk About When I Talk About Serverless and its Potential

84907687e50c8ac2a09b02e0d1b36ab1?s=47 Tori
November 03, 2017

サーバーレスについて語るときに僕の語ること / What I Talk About When I Talk About Serverless and its Potential

サーバーレスについて最近思っていることをポエムしました. サーバーレス過激派です.

Presented at Serverlessconf Tokyo 2017.

84907687e50c8ac2a09b02e0d1b36ab1?s=128

Tori

November 03, 2017
Tweet

Transcript

  1. SUPINF Inc. // twitter.com/toricls サーバーレスについて語るときに僕の語ること Yasuhiro HARA Nov. 3, 2017

    Serverlessconf 版
  2. SUPINF Inc. // twitter.com/toricls ❤ Serverless, Container ▶︎ - ▶︎

    AWS Certified SA / DevOps Engineer Professional Yasuhiro HARA @toricls
  3. SUPINF Inc. // twitter.com/toricls 最近のサーバーレス活動 pingbot github-codebuild-integration cobolambda - 外形監視

    & 通知ツール - - GitHub Push/PR を契機に AWS CodeBuild でいい感じに CI できるようにするツール - - COBOL が AWS Lambda 上で動く夢のツール -
  4. SUPINF Inc. // twitter.com/toricls github.com/toricls/pingbot 管理画面 Slack 通知 - 外形監視

    & 通知ツール -
  5. SUPINF Inc. // twitter.com/toricls rate(1 minute) invoke http/https invoke stream

    github.com/toricls/pingbot SPA Bot - 外形監視 & 通知ツール -
  6. SUPINF Inc. // twitter.com/toricls ▶︎ 2016年7月実装、9月公開 ▶︎ サーバーレス・アーキテクチャーの POC ▶︎

    S3 バケットへの SPA デプロイは Bash ▶︎ それ以外のリソースは全部 CloudFormation github.com/toricls/pingbot - 外形監視 & 通知ツール -
  7. SUPINF Inc. // twitter.com/toricls github.com/toricls/github-codebuild-integration プルリク コミット履歴 - GitHub Push/PR

    を契機に AWS CodeBuild でいい感じに CI できるようにするツール -
  8. SUPINF Inc. // twitter.com/toricls github.com/toricls/github-codebuild-integration - GitHub Push/PR を契機に AWS

    CodeBuild でいい感じに CI できるようにするツール -
  9. SUPINF Inc. // twitter.com/toricls ▶︎ AWS CodeBuild は並列数じゃなくて実行時間課金 :) ▶︎

    CI 結果でプルリクのマージ可否を制御したい ▶︎ AWS SAM & CloudFormation でデプロイ ▶︎ GitHub Webhook も CloudFormation で管理・設定 github.com/toricls/github-codebuild-integration - GitHub Push/PR を契機に AWS CodeBuild でいい感じに CI できるようにするツール -
  10. SUPINF Inc. // twitter.com/toricls github.com/toricls/cobolambda - COBOL が AWS Lambda

    上で動く夢のツール -
  11. SUPINF Inc. // twitter.com/toricls 今日のお話

  12. SUPINF Inc. // twitter.com/toricls 「サーバーレス」ってなんですか?

  13. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと

  14. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと A ͞Μ (Ծ໊)

  15. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと このイケてる SaaS を 利用すれば ナウいサーバーレスだ!

    A ͞Μ (Ծ໊)
  16. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと このイケてる SaaS を 利用すれば ナウいサーバーレスだ!

    A ͞Μ (Ծ໊) mBaaS もヤングや!
  17. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと このイケてる SaaS を 利用すれば ナウいサーバーレスだ!

    A ͞Μ (Ծ໊) mBaaS もヤングや! Functional SaaS フゥゥウ〜!!
  18. SUPINF Inc. // twitter.com/toricls 今までもずっとやってた方法論のことを サーバーレスって呼んでるんですか? 昨今の「サーバーレス」に思うこと

  19. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと このイケてる SaaS を Lambda と組み合わせて

    ナウいサーバーレスだ! A ͞Μ (Ծ໊)
  20. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと このイケてる SaaS を Lambda と組み合わせて

    ナウいサーバーレスだ! A ͞Μ (Ծ໊) うーん..
  21. SUPINF Inc. // twitter.com/toricls SaaS を含んだ構成 = サーバーレスじゃない と言っているわけではありません ⚠

  22. SUPINF Inc. // twitter.com/toricls Lambda だって言ってみれば SaaS です ⚠

  23. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと SaaS や Lambda を フル活用して

    サーバー管理から 解放されましょう! B ͞Μ (Ծ໊)
  24. SUPINF Inc. // twitter.com/toricls SaaS や Lambda を フル活用して サーバー管理から

    解放されましょう! B ͞Μ (Ծ໊) 昨今の「サーバーレス」に思うこと 間違っていないと思う
  25. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと SaaS や Lambda を フル活用して

    サーバー管理から 解放されましょう! B ͞Μ (Ծ໊) 管理しなきゃいけないサーバーは確かにない
  26. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと SaaS や Lambda を フル活用して

    サーバー管理から 解放されましょう! B ͞Μ (Ծ໊) サーバー管理から解放されるの、とても良い
  27. SUPINF Inc. // twitter.com/toricls 昨今の「サーバーレス」に思うこと SaaS や Lambda を フル活用して

    サーバー管理から 解放されましょう! B ͞Μ (Ծ໊) セキュリティ・パッチとか当てなくていいの、 最高よね
  28. SUPINF Inc. // twitter.com/toricls 「サーバーレス」のメイン・トピックはそこなの?

  29. SUPINF Inc. // twitter.com/toricls 「サーバー管理からの解放」ってそんなに喋ることある?

  30. SUPINF Inc. // twitter.com/toricls もしも「サーバー管理からの解放」が主題なら

  31. SUPINF Inc. // twitter.com/toricls e.g. いつもの Express アプリケーションを API Gateway

    と Lambda に載せて Yeah もしも「サーバー管理からの解放」がサーバーレスの主題なら
  32. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する Lambda API Gateway RDS
  33. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する Lambda API Gateway RDS ❄ ίʔϧυɾελʔτ͕͊͊͊͊
  34. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する Lambda API Gateway RDS rate(1 minute)
  35. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する いやいやいや
  36. SUPINF Inc. // twitter.com/toricls Lambda e.g. Express アプリを API Gateway

    + Lambda + RDS する API Gateway RDS
  37. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する API Gateway RDS
  38. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する API Gateway RDS ίωΫγϣϯ਺͕͊͊͊͊͊
  39. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する API Gateway RDS
  40. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する API Gateway RDS EC2
  41. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する 謎のコネクション・プーリング ミドルウェア
  42. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する
  43. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する まじかよ
  44. SUPINF Inc. // twitter.com/toricls e.g. Express アプリを API Gateway +

    Lambda + RDS する 積み重なるワークアラウンド 犠牲になる機能性
  45. SUPINF Inc. // twitter.com/toricls 「サーバー管理からの解放」 という文脈"だけ"で サーバーレスを捉えている なぜこんな悲劇が起きたのか

  46. SUPINF Inc. // twitter.com/toricls これまでのアーキテクチャーや方法論を そのまま持ち込もうとしている なぜこんな悲劇が起きたのか

  47. SUPINF Inc. // twitter.com/toricls ·ͩҾ͖ฦͤ·͢

  48. SUPINF Inc. // twitter.com/toricls システムの価値を差別化するものは何か

  49. SUPINF Inc. // twitter.com/toricls 何がシステムの価値を差別化するか 自分たちのシステムのために書かれたコード

  50. SUPINF Inc. // twitter.com/toricls May 26 2016, Serverlessconf NYC -

    https://twitter.com/serverlessconf/status/735839492431548418
  51. SUPINF Inc. // twitter.com/toricls ▶︎ Function are the unit of

    deployment and scaling. ▶︎ No machines, VMs, or containers visible in the programming model. ▶︎ Permanent storage lives elsewhere. ▶︎ Scales per request; Users cannot over- or under-provision capacity. ▶︎ Never pay for idle (no cold servers/containers or their costs). ▶︎ Implicitly fault-tolerant because functions can run anywhere. ▶︎ BYOC - Bring Your Own Code. ▶︎ Metrics and logging are a universal right. Apr 19 2016, AWS Chicago Summit - https://www.slideshare.net/AmazonWebServices/getting-started-with-aws-lambda-and-the-serverless-cloud/29 The Serverless Manifesto
  52. SUPINF Inc. // twitter.com/toricls 自分たちのコードを動かす Managed FaaS を 最大限活かせるアーキテクチャーは どうすれば実現できるのか

    「サーバーレス」について本当に議論したいこと
  53. SUPINF Inc. // twitter.com/toricls そのアーキテクチャーは どのようなものなのか 「サーバーレス」について本当に議論したいこと

  54. SUPINF Inc. // twitter.com/toricls Event Driven Architecture

  55. SUPINF Inc. // twitter.com/toricls Event Driven ではないシステム

  56. SUPINF Inc. // twitter.com/toricls Event Driven ではないシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

  57. SUPINF Inc. // twitter.com/toricls Event Driven ではないシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文
  58. SUPINF Inc. // twitter.com/toricls Event Driven ではないシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文 Data Data
  59. SUPINF Inc. // twitter.com/toricls Event Driven ではないシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文 Data Data 売上集計サービス New!
  60. SUPINF Inc. // twitter.com/toricls Event Driven ではないシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文 Data Data 売上集計サービス Data New!
  61. SUPINF Inc. // twitter.com/toricls Event Driven ではないシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文 Data Data 売上集計サービス Data こっちのコードに手を 入れなきゃいけない 感じになる New!
  62. SUPINF Inc. // twitter.com/toricls Event Driven なシステムではどうなるか

  63. SUPINF Inc. // twitter.com/toricls Event Driven なシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

  64. SUPINF Inc. // twitter.com/toricls Event Driven なシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文
  65. SUPINF Inc. // twitter.com/toricls Event Driven なシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文 event
  66. SUPINF Inc. // twitter.com/toricls Event Driven なシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文 subscribe subscribe event
  67. SUPINF Inc. // twitter.com/toricls Event Driven なシステムの例 受注管理サービス 配送予約サービス 在庫管理サービス

    注文 subscribe subscribe publish event
  68. SUPINF Inc. // twitter.com/toricls 受注管理サービス 配送予約サービス 在庫管理サービス 注文 subscribe subscribe

    publish event 売上集計サービス Event Driven なシステムの例 New!
  69. SUPINF Inc. // twitter.com/toricls 受注管理サービス 配送予約サービス 在庫管理サービス 注文 subscribe subscribe

    publish event 売上集計サービス subscribe Event Driven なシステムの例 New!
  70. SUPINF Inc. // twitter.com/toricls 受注管理サービス 配送予約サービス 在庫管理サービス 注文 subscribe subscribe

    publish event 売上集計サービス subscribe Event Driven なシステムの例 既存のコードに 手を入れなくても サービスを増やせる (理論上は) New!
  71. SUPINF Inc. // twitter.com/toricls Event Driven なシステムにおける 「データ」の考え方

  72. SUPINF Inc. // twitter.com/toricls 受注管理サービス publish event 配送予約サービス 在庫管理サービス subscribe

    subscribe 売上集計サービス subscribe Event Sourcing という考え方 DB 注文イベント
  73. SUPINF Inc. // twitter.com/toricls 受注管理サービス publish event 配送予約サービス 在庫管理サービス subscribe

    subscribe 売上集計サービス subscribe Event Sourcing という考え方 DB 注文イベント Event Sourcing Event Store
  74. SUPINF Inc. // twitter.com/toricls 受注管理サービス publish event 配送予約サービス 在庫管理サービス subscribe

    subscribe 売上集計サービス subscribe Event Sourcing という考え方 DB 注文イベント Event Sourcing Event Store 全イベントの再生によるデータ復元
  75. SUPINF Inc. // twitter.com/toricls みなさんの心の声が聞こえます

  76. SUPINF Inc. // twitter.com/toricls やりたいなら 勝手にイベント・ドリブンしなよ みなさんの心の声が聞こえます

  77. SUPINF Inc. // twitter.com/toricls 特に議論することなくない? みなさんの心の声が聞こえます

  78. SUPINF Inc. // twitter.com/toricls いやいや

  79. SUPINF Inc. // twitter.com/toricls 受注管理サービス 配送予約サービス 在庫管理サービス 注文 subscribe subscribe

    publish event 売上集計サービス subscribe Event Driven なシステム (再掲)
  80. SUPINF Inc. // twitter.com/toricls Event Driven なシステムの実現のためにもっと思考が必要なところの例 ▶︎ 「イベント・ディスカバリ」どうする? (like

    サービス・ディスカバリ) ▶︎ 在庫管理システムにイベントが流れた時点で在庫がなかったら? ▶︎ 在庫不足イベントが発火してそれに Subscribe してる受注管理サービス が注文キャンセルしてそのイベントを Publish してキャンセルイベントに Subscribe している XX システムが jふぃ̌̎jふぃあjwrじょ̎̏ckまm
  81. SUPINF Inc. // twitter.com/toricls 受注管理サービス publish event 配送予約サービス 在庫管理サービス subscribe

    subscribe 売上集計サービス subscribe Event Driven なシステムの実現のためにもっと思考が必要なところの例 DB 注文イベント Event Sourcing Event Store こいつらは何者なのか
  82. SUPINF Inc. // twitter.com/toricls FaaS と Event Driven の 相性がいいことは

    なんとなくみんな分かっている
  83. SUPINF Inc. // twitter.com/toricls それぞれが模索していく中で面白いものが少しずつ出始めている ▶︎ Durable Functions ▶︎ Azure

    Cloud Functions のエクステンションという位置付け ▶︎ 関数内のステートの復元をイベントストアからのリプレイという手段で実現している ▶︎ https://azure.github.io/azure-functions-durable-extension/ ▶︎ Event Gateway ▶︎ Serverless 社による「イベント・ドリブン」への解をプロダクトにする試み ▶︎ Function の呼び出し契機をユニバーサルなイベントとして表現しようとしている ▶︎ https://github.com/serverless/event-gateway
  84. SUPINF Inc. // twitter.com/toricls でも ▶︎ 実現のためのベスト・プラクティスはまだない ▶︎ 実現のために必要なシステム上のコンポーネントも揃っていない ▶︎

    そもそも何が必要なのかもまだはっきりしていない ▶︎ と、僕は思っているのです
  85. SUPINF Inc. // twitter.com/toricls λ おしまい

  86. SUPINF Inc. // twitter.com/toricls おまけ「本ポエムの図解」

  87. SUPINF Inc. // twitter.com/toricls 私の脳内「サーバーレス」世界

  88. SUPINF Inc. // twitter.com/toricls 私の脳内「サーバーレス」世界 サーバーレス・アプリケーション

  89. SUPINF Inc. // twitter.com/toricls 私の脳内「サーバーレス」世界 サーバーレス・アプリケーション サーバーレス・アーキテクチャー

  90. SUPINF Inc. // twitter.com/toricls 私の脳内「サーバーレス」世界 サーバーレス・アプリケーション サーバーレス・アーキテクチャー FaaS

  91. SUPINF Inc. // twitter.com/toricls 私の脳内「サーバーレス」世界 サーバーレス・アプリケーション サーバーレス・アーキテクチャー FaaS サーバーレス・マニフェスト イベント・ドリブン・アーキテクチャー

  92. SUPINF Inc. // twitter.com/toricls 私の脳内「サーバーレス」世界 サーバーレス・アプリケーション サーバーレス・アーキテクチャー FaaS サーバーレス・マニフェスト イベント・ドリブン・アーキテクチャー

    ベンダー様の思惑
  93. SUPINF Inc. // twitter.com/toricls 私の脳内「サーバーレス」世界 サーバーレス・アプリケーション サーバーレス・アーキテクチャー FaaS サーバーレス・マニフェスト イベント・ドリブン・アーキテクチャー

    ベンダー様の思惑 「俺たちの FaaS」