the future will be...
2016.10.22
株式会社セクションナイン 吉田真吾
serverless
吉田真吾
n バックグラウンド
証券システム基盤開発
p 基盤開発、Oracleチューニングなど
エバンジェリスト
p 講演年間113回(2013年実績)
p AWS設計・構築・移行(2014-2015)
n 現在のしごと
(株)セクションナイン 社長
p AWSコンサルティング
Mobingi, K.K. VP of Eng
p サービスデベロップメント
n 実績等
p AWSウルトラクイズ
初代チャンピオン (2012年)
p AWS Samurai 2014
p AWSエキスパート養成読本 執筆
p AWS認定全資格(5種類)保持
p Oracle Database 11g認定 (OCP,
Performance Tuning)保持
What is Serverless?
2012: The Dawn of Serverless
• Why The Future Of Software And Apps Is Serverless
by Ken Fromm, VP of Business Development at Iron.io
• コンピューティングリソースの調達リードタイムの短縮
• スタンダローンアプリからの変化(現在のMicroservices)
• クラウドで柔軟にコンピューティングリソースをサービスとして
利用することができる
• サーバーが要らないということではなく、開発者はサーバーにつ
いて「考えなくてもよくなる」
http://readwrite.com/2012/10/15/why-the-future-of-software-and-apps-is-serverless/
2014: The Dawn of Serverless Computing (FaaS)
• FaaSの台頭
• All you need is “Code”
• 調達リードタイムの最短化
• based on Container tech
• 分散実行環境
• コスト低減
• 実行時間のみ課金
• アーキテクチャにおける責務
• Stateful >> Statelessへ
• 永続データ >> 揮発性
• モノリシック >> Microservices
• バッチ処理 >> イベントドリブン
https://aws.amazon.com/jp/about-aws/events/reinvent-report-2014-pt2/
Serverless Compute Manifesto
1. ファンクションはデプロイ単位/拡張可能単位で管理
2. 機器/仮想サーバー/コンテナがプログラミングモデル
から見えてはいけない
3. データを永続化するストレージは他の場所に確保する
4. リクエスト単位にスケールを管理することでユーザー
をキャパシティ管理から解放する
5. 実行時間のみに課金し、アイドル時間に課金してはな
らない
6. どこでも実行できることで、いわんや耐障害性がある
7. コードだけ持ち込めば動作する
8. メトリクス収集やログ取得は必須要件である
メッセージドリブンアプリケーション
• オンライン広告システム
• 素早い配信(と同時に)
アクティビティ記録
• 非同期にサーバーに送信してい
た部分をスケーラビリティを気
にしなくていいFaaSに送信
• その他、アップロードコンテン
ツのサムネイル作成など
http://martinfowler.com/articles/serverless.html
https://speakerdeck.com/ikait/serverless-architecture-supports-nikkeis-paper-viewer
https://speakerdeck.com/ikait/serverless-architecture-supports-nikkeis-paper-viewer
https://speakerdeck.com/ikait/serverless-architecture-supports-nikkeis-paper-viewer
2015: The Dawn of Serverless API
• Amazon API Gateway
• Web APIのためのフロントサービス
http://www.publickey1.jp/blog/15/amazon_api_gateway.html
UIドリブンアプリケーション
• Backend For Frontendでサーバー
レス活用
1. 認証ロジックをBaaSで置換え
2. DynamoDBにクライアントから直
接アクセスするように
3. 大半のロジックをクライアントの
シングルページアプリケーション
に(UXに気をつける)してサーバー
側はAPI Gatewayで束ねる
4. 検索機能をFaaS上に
5. セキュリティの考慮で課金は別DB
に別FaaSでアクセスするように
http://martinfowler.com/articles/serverless.html
• GitHub Pages や S3 でのSPAのホスティングも
現在は「サーバーレス」の中に含む
http://www.slideshare.net/acloudguru/ant-stanley-being-serverless
How does Serverless
help us?
サーバーレスが活用される場面
• ソフトウェア開発の高速化
• サービスマネジメント
• サービスの継続性/可用性管理 → 低減
• 容量、能力(キャパシティ)管理 → 低減
サーバーレスが活用される場面
• ソフトウェア開発の高速化
• サービスマネジメント
• サービスの継続性/可用性管理 → 低減
• 容量、能力(キャパシティ)管理 → 低減
ソフトウェア開発の高速化
• 製品がマーケットにフィットす
るかどうかが最も重要である
• ビジネスに関連するコードの開
発時間に極力時間を使うべきで
ある
• 顧客とまわすイテレーションを
最大化すべきである
• 依存性を最小化すべきである:
仕様確定待ちで開発者を待たせ
たり、運用やDBAやその他の開
発者の影響で待たせることを極
力避けるべきである
http://www.slideshare.net/ServerlessConf/joe-emison-10x-product-development
ソフトウェア開発の高速化
• Commercial Search
• 2人の開発者で4ヶ月で作った
• 13,307行のTypeScript
• 開発者の稼働は95%以上だった(なにかに依存
した待ち時間はほとんどなかった)
• コンセプトはMicroservicesだが、自分たちは
コアしか書いていない
• 構成
• Auth: Firebase
• Static Site Hosting: Netlify
• 画像管理: Cloudinary
• 検索: Algolia
• ペインポイント
• Firebaseのダッシュボードでは大きなデータ
セットが扱えない(APIであればOK)
• RDBMSからFirebaseに移行する開発者のラー
ニングカーブは人それぞれ、非常識ってほど
ではないけど
http://www.slideshare.net/ServerlessConf/joe-emison-10x-product-development
サーバーレスが活用される場面
• ソフトウェア開発の高速化
• サービスマネジメント
• サービスの継続性/可用性管理 → 低減
• 容量、能力(キャパシティ)管理 → 低減
Serverlessness, NoOps and the Tooth Fairy
• 来たるサーバーレスな未来では、アプリ
ケーション開発者がもっと運用品質に対
する責任を担うことになる
• インフラは外部にホストしてるから運用の
ことは考えたくないと言っても、アプリが
落ちているかもしれない状況においてはど
んな変更があったか、サービス側の問題か、
切り分ける必要性がある
• 運用とはなにか?
• 運用は自分の組織の技術スキルや練習、デ
ザイン周りの文化づくり、システムの構築
やメンテナンス、ソフトウェアのデリバ
リー、技術的な問題の解決
"In the glorious Future, we will be Serverless,
and there will be NoOps. - thought leaders"
http://www.slideshare.net/ServerlessConf/charity-hound-serverless-noops-the-tooth-fairy
Serverlessness, NoOps and the Tooth Fairy
• 運用とはなにか?
• 運用は自分の組織の技術スキルや練習、デ
ザイン周りの文化づくり、システムの構築
やメンテナンス、ソフトウェアのデリバ
リー、技術的な問題の解決
• 運用エンジニアのコアコンピテンシー
• スケーラビリティ
• レジリエンシー
• 可用性
• メンテナンス性
• 複雑なシステムを簡素化するモニタリング
の実装と可視性
• グレイスフル デグラデーション:ソフト
ウェアのアップグレードなど
http://www.slideshare.net/ServerlessConf/charity-hound-serverless-noops-the-tooth-fairy
Serverlessness, NoOps and the Tooth Fairy
• サーバーレス運用エンジニアリン
グのベストプラクティス
• あなたのプロダクトの問題はあなた
以上にちゃんと直せる人はいない
• クリティカルパスを理解する
• できるかぎり小さく維持する
• SaaSプロバイダの技術情報と、何に
どう依存しているか理解する
• アウトソース先に問題が起きても、
自身のサービスにおけるそれによる
結果については依然としてあなたが
責任を持たなければいけない
http://www.slideshare.net/ServerlessConf/charity-hound-serverless-noops-the-tooth-fairy
Serverlessness, NoOps and the Tooth Fairy
• トレードオフ
• 可視性が下がる
• 自分自身で問題をfixできない
し、新機能を実装することも
できない
• サービスはあなたの支払うお
金で維持されている
• 制限や制約は公開されること
もあるし、公開されないこと
もある
http://www.slideshare.net/ServerlessConf/charity-hound-serverless-noops-the-tooth-fairy
プラットフォーム事業者 フレームワークやツール
アプリケーション開発者
サーバーレスエコシステム
• サーバー構築不要
• スケーラブル
• 従量課金 etc…
• API定義と関数コード
の一体管理
• チーム開発(テスト、
デプロイ) etc…
• 企画→開発→デリバリーに
集中
• サービスマネジメント
• etc…
プラットフォーム
• Function as a Service
• AWS Lambda @ Amazon Web Services
• BlueMix OpenWhisk @ IBM
• Azure Functions @ Microsoft
• Google Cloud Functions @ Google
• Functional SaaS
• Firebase, Realm, Shifter, Game Server Services,
Cloud Automator, SendGrid, Auth0, Algolia,
Iron.io, etc…
Ecosystem (フレームワーク)
• コードの再利用性
• リポジトリで共有
• CI/CDも:ビルド→レグレッショ
ンテスト→デプロイ
• APIやDBも含めた統合開発・管
理
アプリ開発者
• 世界のServerless Meetups
• 32コミュニティ(2016/10/20)
サーバーレスでどう稼ぐ?
• スタートアップ:Functional SaaS
• ひとつの機能(Microservices)をより上手に
• Realm Platform, Shifter, Game Server Services,
SendGrid, Algolia, Iron.io, Auth0, etc…
• スタートアップ:フレームワーク
• Serverless Framework & The Serverless platform
• プロフェッショナルサービス
• オンライン教育プラットフォーム
• 受講者のライフサイクル→リクルーティング領域
• システム(マルチサービス)インテグレーション
Serverless
the future will be
Serverless Community (JP)
https://www.facebook.com/groups/813718382095265/
後半に続きます

サーバーレスの話

  • 1.
    the future willbe... 2016.10.22 株式会社セクションナイン 吉田真吾 serverless
  • 2.
    吉田真吾 n バックグラウンド 証券システム基盤開発 p 基盤開発、Oracleチューニングなど エバンジェリスト p講演年間113回(2013年実績) p AWS設計・構築・移行(2014-2015) n 現在のしごと (株)セクションナイン 社長 p AWSコンサルティング Mobingi, K.K. VP of Eng p サービスデベロップメント n 実績等 p AWSウルトラクイズ 初代チャンピオン (2012年) p AWS Samurai 2014 p AWSエキスパート養成読本 執筆 p AWS認定全資格(5種類)保持 p Oracle Database 11g認定 (OCP, Performance Tuning)保持
  • 4.
  • 6.
    2012: The Dawnof Serverless • Why The Future Of Software And Apps Is Serverless by Ken Fromm, VP of Business Development at Iron.io • コンピューティングリソースの調達リードタイムの短縮 • スタンダローンアプリからの変化(現在のMicroservices) • クラウドで柔軟にコンピューティングリソースをサービスとして 利用することができる • サーバーが要らないということではなく、開発者はサーバーにつ いて「考えなくてもよくなる」 http://readwrite.com/2012/10/15/why-the-future-of-software-and-apps-is-serverless/
  • 7.
    2014: The Dawnof Serverless Computing (FaaS) • FaaSの台頭 • All you need is “Code” • 調達リードタイムの最短化 • based on Container tech • 分散実行環境 • コスト低減 • 実行時間のみ課金 • アーキテクチャにおける責務 • Stateful >> Statelessへ • 永続データ >> 揮発性 • モノリシック >> Microservices • バッチ処理 >> イベントドリブン https://aws.amazon.com/jp/about-aws/events/reinvent-report-2014-pt2/
  • 8.
    Serverless Compute Manifesto 1.ファンクションはデプロイ単位/拡張可能単位で管理 2. 機器/仮想サーバー/コンテナがプログラミングモデル から見えてはいけない 3. データを永続化するストレージは他の場所に確保する 4. リクエスト単位にスケールを管理することでユーザー をキャパシティ管理から解放する 5. 実行時間のみに課金し、アイドル時間に課金してはな らない 6. どこでも実行できることで、いわんや耐障害性がある 7. コードだけ持ち込めば動作する 8. メトリクス収集やログ取得は必須要件である
  • 9.
    メッセージドリブンアプリケーション • オンライン広告システム • 素早い配信(と同時に) アクティビティ記録 •非同期にサーバーに送信してい た部分をスケーラビリティを気 にしなくていいFaaSに送信 • その他、アップロードコンテン ツのサムネイル作成など http://martinfowler.com/articles/serverless.html
  • 10.
  • 11.
  • 12.
  • 13.
    2015: The Dawnof Serverless API • Amazon API Gateway • Web APIのためのフロントサービス http://www.publickey1.jp/blog/15/amazon_api_gateway.html
  • 14.
    UIドリブンアプリケーション • Backend ForFrontendでサーバー レス活用 1. 認証ロジックをBaaSで置換え 2. DynamoDBにクライアントから直 接アクセスするように 3. 大半のロジックをクライアントの シングルページアプリケーション に(UXに気をつける)してサーバー 側はAPI Gatewayで束ねる 4. 検索機能をFaaS上に 5. セキュリティの考慮で課金は別DB に別FaaSでアクセスするように http://martinfowler.com/articles/serverless.html
  • 15.
    • GitHub Pagesや S3 でのSPAのホスティングも 現在は「サーバーレス」の中に含む http://www.slideshare.net/acloudguru/ant-stanley-being-serverless
  • 16.
  • 17.
    サーバーレスが活用される場面 • ソフトウェア開発の高速化 • サービスマネジメント •サービスの継続性/可用性管理 → 低減 • 容量、能力(キャパシティ)管理 → 低減
  • 18.
    サーバーレスが活用される場面 • ソフトウェア開発の高速化 • サービスマネジメント •サービスの継続性/可用性管理 → 低減 • 容量、能力(キャパシティ)管理 → 低減
  • 19.
    ソフトウェア開発の高速化 • 製品がマーケットにフィットす るかどうかが最も重要である • ビジネスに関連するコードの開 発時間に極力時間を使うべきで ある •顧客とまわすイテレーションを 最大化すべきである • 依存性を最小化すべきである: 仕様確定待ちで開発者を待たせ たり、運用やDBAやその他の開 発者の影響で待たせることを極 力避けるべきである http://www.slideshare.net/ServerlessConf/joe-emison-10x-product-development
  • 20.
    ソフトウェア開発の高速化 • Commercial Search •2人の開発者で4ヶ月で作った • 13,307行のTypeScript • 開発者の稼働は95%以上だった(なにかに依存 した待ち時間はほとんどなかった) • コンセプトはMicroservicesだが、自分たちは コアしか書いていない • 構成 • Auth: Firebase • Static Site Hosting: Netlify • 画像管理: Cloudinary • 検索: Algolia • ペインポイント • Firebaseのダッシュボードでは大きなデータ セットが扱えない(APIであればOK) • RDBMSからFirebaseに移行する開発者のラー ニングカーブは人それぞれ、非常識ってほど ではないけど http://www.slideshare.net/ServerlessConf/joe-emison-10x-product-development
  • 21.
    サーバーレスが活用される場面 • ソフトウェア開発の高速化 • サービスマネジメント •サービスの継続性/可用性管理 → 低減 • 容量、能力(キャパシティ)管理 → 低減
  • 22.
    Serverlessness, NoOps andthe Tooth Fairy • 来たるサーバーレスな未来では、アプリ ケーション開発者がもっと運用品質に対 する責任を担うことになる • インフラは外部にホストしてるから運用の ことは考えたくないと言っても、アプリが 落ちているかもしれない状況においてはど んな変更があったか、サービス側の問題か、 切り分ける必要性がある • 運用とはなにか? • 運用は自分の組織の技術スキルや練習、デ ザイン周りの文化づくり、システムの構築 やメンテナンス、ソフトウェアのデリバ リー、技術的な問題の解決 "In the glorious Future, we will be Serverless, and there will be NoOps. - thought leaders" http://www.slideshare.net/ServerlessConf/charity-hound-serverless-noops-the-tooth-fairy
  • 23.
    Serverlessness, NoOps andthe Tooth Fairy • 運用とはなにか? • 運用は自分の組織の技術スキルや練習、デ ザイン周りの文化づくり、システムの構築 やメンテナンス、ソフトウェアのデリバ リー、技術的な問題の解決 • 運用エンジニアのコアコンピテンシー • スケーラビリティ • レジリエンシー • 可用性 • メンテナンス性 • 複雑なシステムを簡素化するモニタリング の実装と可視性 • グレイスフル デグラデーション:ソフト ウェアのアップグレードなど http://www.slideshare.net/ServerlessConf/charity-hound-serverless-noops-the-tooth-fairy
  • 24.
    Serverlessness, NoOps andthe Tooth Fairy • サーバーレス運用エンジニアリン グのベストプラクティス • あなたのプロダクトの問題はあなた 以上にちゃんと直せる人はいない • クリティカルパスを理解する • できるかぎり小さく維持する • SaaSプロバイダの技術情報と、何に どう依存しているか理解する • アウトソース先に問題が起きても、 自身のサービスにおけるそれによる 結果については依然としてあなたが 責任を持たなければいけない http://www.slideshare.net/ServerlessConf/charity-hound-serverless-noops-the-tooth-fairy
  • 25.
    Serverlessness, NoOps andthe Tooth Fairy • トレードオフ • 可視性が下がる • 自分自身で問題をfixできない し、新機能を実装することも できない • サービスはあなたの支払うお 金で維持されている • 制限や制約は公開されること もあるし、公開されないこと もある http://www.slideshare.net/ServerlessConf/charity-hound-serverless-noops-the-tooth-fairy
  • 26.
    プラットフォーム事業者 フレームワークやツール アプリケーション開発者 サーバーレスエコシステム • サーバー構築不要 •スケーラブル • 従量課金 etc… • API定義と関数コード の一体管理 • チーム開発(テスト、 デプロイ) etc… • 企画→開発→デリバリーに 集中 • サービスマネジメント • etc…
  • 27.
    プラットフォーム • Function asa Service • AWS Lambda @ Amazon Web Services • BlueMix OpenWhisk @ IBM • Azure Functions @ Microsoft • Google Cloud Functions @ Google • Functional SaaS • Firebase, Realm, Shifter, Game Server Services, Cloud Automator, SendGrid, Auth0, Algolia, Iron.io, etc…
  • 28.
    Ecosystem (フレームワーク) • コードの再利用性 •リポジトリで共有 • CI/CDも:ビルド→レグレッショ ンテスト→デプロイ • APIやDBも含めた統合開発・管 理
  • 29.
  • 30.
    サーバーレスでどう稼ぐ? • スタートアップ:Functional SaaS •ひとつの機能(Microservices)をより上手に • Realm Platform, Shifter, Game Server Services, SendGrid, Algolia, Iron.io, Auth0, etc… • スタートアップ:フレームワーク • Serverless Framework & The Serverless platform • プロフェッショナルサービス • オンライン教育プラットフォーム • 受講者のライフサイクル→リクルーティング領域 • システム(マルチサービス)インテグレーション
  • 31.
    Serverless the future willbe Serverless Community (JP) https://www.facebook.com/groups/813718382095265/
  • 32.