Serverless
-
Upload
sachirou-inoue -
Category
Engineering
-
view
85 -
download
3
Transcript of Serverless
Serverless
Serverless
λ
.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)
Serverless
FaaS
FaaS(Function as a Service)
FaaS(函數 as a Service)
例へば AWS LambdaGoogle Cloud Functions
Azure FunctionsIBM OpenWhisk 等
例へば AWS LambdaGoogle Cloud Functions
Azure FunctionsIBM OpenWhisk 等
Serverless
PaaS、IaaS、BaaSとは何が違ふの?
Serverless
Serverless Architectures http://martinfowler.com/articles/serverless.html
Serverless
FaaSはfull managedでstateless
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
Serverless
0.02秒でインスタンスを起動し0.5秒だけ動作するなら、そのPaaSはserverless。
Serverless
(Erlangっぽいよね)
AWS Lambda
対応⾔語は Python 2Node.jsJava 8
AWS Lambda
λを呼び出せるイベントはLambdaのHTTP API、AWS IoT、API Gateway、CloudWatch
Schedule、CloudWatch Logs、CognitoのSync、DynamoDBの更新、Kinesis、S3の更新AWS SNS
AWS Lambda
λから使へるリソースはAWSの全部、
AWS外のAPIで呼べるリソースも何でも
AWS Lambda
バージョン管理 → 函數バージョンにエイリアスを付けるLog → CloudWatchに吐く
監視 → CloudWatchでAPI Gatewayでの認證 → 認證⽤のLambdaを呼ぶ
AWS Lambda
フレームワークにはServerless
Apex 等
AWS Lambda
フレームワークにはServerless
Apex 等
Serverless Framework
https://serverless.com/
Serverless Framework
Nearly 1.0(1.0.0-beta2)
Serverless Framework
10,316☆stars on GitHub
Serverless Framework
pluggable
Serverless Framework
プロジェクト = 函數とイベントとリソースの集まり
Serverless Framework
AWS LambdaGoogle Cloud Functions
Azure FunctionsIBM OpenWhisk に対応してゐる
λとAPI Gatewayとの連携
λとAPI Gatewayとの連携
Terraformでやる場合
λと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⽂字
λとAPI Gatewayとの連携
死
λとAPI Gatewayとの連携
死
λとAPI Gatewayとの連携
死
λとAPI Gatewayとの連携
コードのデプロイ⼿順
λと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をデプロイ。
λとAPI Gatewayとの連携
死
λとAPI Gatewayとの連携
死
λとAPI Gatewayとの連携
死
λとAPI Gatewayとの連携
⼀⽅、Serverlessではs-function.json 2628⽂字
λとAPI Gatewayとの連携
`sls deploy`
λとAPI Gatewayとの連携
やりましたね!
Serverless
Serverless
0.02秒でインスタンスを起動し0.5秒だけ動作するなら、そのPaaSはserverless。