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

Serverless

 Serverless

\Serverless/

4b071f90c5d9c0a58e2d9076460b7be4?s=128

さっちゃん

August 31, 2016
Tweet

More Decks by さっちゃん

Other Decks in Programming

Transcript

  1. Serverless

  2. Serverless λ

  3. None
  4. .。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

  5. Serverless

  6. FaaS

  7. FaaS (Function as a Service)

  8. FaaS (函數 as a Service)

  9. 例へば AWS Lambda Google Cloud Functions Azure Functions IBM OpenWhisk

  10. 例へば AWS Lambda Google Cloud Functions Azure Functions IBM OpenWhisk

  11. Serverless PaaS、IaaS、BaaSとは何が違ふの?

  12. Serverless Serverless Architectures http://martinfowler.com/articles/serverless.html

  13. Serverless FaaSはfull managedでstateless

  14. Serverless If your PaaS can efficiently start instances in 20ms

    that run for half a second, then call it serverless. https://twitter.com/adrianco/status/736553530689998848
  15. Serverless 0.02秒でインスタンスを起動し0.5秒だけ動作するなら、その PaaSはserverless。

  16. Serverless (Erlangっぽいよね)

  17. AWS Lambda 対応⾔語は Python 2 Node.js Java 8

  18. AWS Lambda λを呼び出せるイベントは LambdaのHTTP API、AWS IoT、API Gateway、CloudWatch Schedule、CloudWatch Logs、CognitoのSync、DynamoDBの 更新、Kinesis、S3の更新AWS

    SNS
  19. AWS Lambda λから使へるリソースは AWSの全部、 AWS外のAPIで呼べるリソースも何でも

  20. AWS Lambda バージョン管理 → 函數バージョンにエイリアスを付ける Log → CloudWatchに吐く 監視 →

    CloudWatchで API Gatewayでの認證 → 認證⽤のLambdaを呼ぶ
  21. AWS Lambda フレームワークには Serverless Apex 等

  22. AWS Lambda フレームワークには Serverless Apex 等

  23. Serverless Framework https://serverless.com/

  24. Serverless Framework Nearly 1.0 (1.0.0-beta2)

  25. Serverless Framework 10,316☆stars on GitHub

  26. Serverless Framework pluggable

  27. Serverless Framework プロジェクト = 函數とイベントとリソースの集まり

  28. Serverless Framework AWS Lambda Google Cloud Functions Azure Functions IBM

    OpenWhisk に対応してゐる
  29. λとAPI Gatewayとの連携

  30. λとAPI Gatewayとの連携 Terraformでやる場合

  31. λとAPI Gatewayとの連携 API GatewayとLambdaの組み合はせでリリースするバージョンを制御する - c4se記:さっちゃんで すよ☆ http://c4se.hatenablog.com/entry/2016/07/26/122508 29,238⽂字 Terraformのmoduleを書く

    - c4se記:さっちゃんですよ☆ http://c4se.hatenablog.com/entry/2016/08/09/152619 11,198⽂字
  32. λとAPI Gatewayとの連携 死

  33. λとAPI Gatewayとの連携 死

  34. λとAPI Gatewayとの連携 死

  35. λとAPI Gatewayとの連携 コードのデプロイ⼿順

  36. λとAPI Gatewayとの連携 最初のデプロイ: 1. aws_lambda_alias.prodのfunction_versionを "$LATEST" にしておく。Lambda函數作成前で、publish_versionも してゐずバージョンが未だ無い爲。 2. LambdaとAPI

    Gatewayをデプロイ。 3. API Gatewayをstagingステージにデプロイ。 4. stagingで検証。 5. Lambdaをpublish_versionして、Versionをメモする。 6. aws_lambda_alias.prodのfunction_versionを 上でメモしたバージョンに書き換へる。 7. Lambdaをデプロイ。 8. API Gatewayをprodステージにデプロイ。 API Gatewayの設定を更新した場合: 1. API Gatewayをデプロイ。 2. API Gatewayをstagingステージにデプロイ。 3. stagingで検証。 4. API Gatewayをprodステージにデプロイ。 Lambdaの設定やコードを変更した場合: 1. Lambdaをデプロイ。 2. stagingで検証。 3. Lambdaをpublish_versionして、Versionをメモする。 4. aws_lambda_alias.prodのfunction_versionを 上でメモしたバージョンに書き換へる。 5. Lambdaをデプロイ。
  37. λとAPI Gatewayとの連携 死

  38. λとAPI Gatewayとの連携 死

  39. λとAPI Gatewayとの連携 死

  40. λとAPI Gatewayとの連携 ⼀⽅、Serverlessでは s-function.json 2628⽂字

  41. λとAPI Gatewayとの連携 `sls deploy`

  42. λとAPI Gatewayとの連携 やりましたね!

  43. Serverless

  44. Serverless 0.02秒でインスタンスを起動し0.5秒だけ動作するなら、その PaaSはserverless。