プレゼンテーションスライド @ Serverless Meetup Tokyo #14
Presentation Slides for Breakout session at Serverless Meetup Tokyo #14
https://serverless.connpass.com/event/143446/
11. Serverless computing refers to the concept of building and running applications that do not require server management. It
describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and
then executed, scaled, and billed in response to the exact demand needed at the moment.
Serverless computing does not mean that we no longer use servers to host and run code; nor does it mean that operations
engineers are no longer required. Rather, it refers to the idea that consumers of serverless computing no longer need to spend time
and resources on server provisioning, maintenance, updates, scaling, and capacity planning. Instead, all of these tasks and
capabilities are handled by a serverless platform and are completely abstracted away from the developers and IT/operations teams.
As a result, developers focus on writing their applications’ business logic. Operations engineers are able to elevate their focus to
more business critical tasks.
A serverless computing platform may provide one or both of the following:
1. Functions-as-a-Service (FaaS), which typically provides event-driven computing. Developers run and manage application code
with functions that are triggered by events or HTTP requests. Developers deploy small units of code to the FaaS, which are
executed as needed as discrete actions, scaling without the need to manage servers or any other underlying infrastructure.
2. Backend-as-a-Service (BaaS), which are third-party API-based services that replace core subsets of functionality in an application.
Because those APIs are provided as a service that auto-scales and operates transparently, this appears to the developer to be
serverless.
https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
スケーリングされ、使った分だけ課金
• Functions-as-a-Service (FaaS)
• Backend-as-a-Service (BaaS)
12.
13. 1970 1980 1990 2000 2010 2020
2006 2008 2010
Amazon EC2
Google
App Engine Microsoft
Azure
Oracle Cloud
2012
Google
Compute
Engine
Alibaba Cloud
2006.8 2008.4 2010.2 2012.5
14. 2014 2015 2016 2017 2018
AWS Lambda
2014.11
Google Cloud
Functions
Azure
Functions
2016.2
2016.3
IBM
Cloud Functions
Serverless
Framework
2015.10
2016.12
OpenWhisk
(OSS) by IBM
Fn Project
(OSS) by Oracle
2017.10
Serverless
Whitepaper
by CNCF
2018.2
2019
2018.12
Oracle
Function
2018.7
Knative
by Google
17. Serverless computing refers to the concept of building and running applications that do not require server management. It
describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and
then executed, scaled, and billed in response to the exact demand needed at the moment.
Serverless computing does not mean that we no longer use servers to host and run code; nor does it mean that operations
engineers are no longer required. Rather, it refers to the idea that consumers of serverless computing no longer need to spend time
and resources on server provisioning, maintenance, updates, scaling, and capacity planning. Instead, all of these tasks and
capabilities are handled by a serverless platform and are completely abstracted away from the developers and IT/operations teams.
As a result, developers focus on writing their applications’ business logic. Operations engineers are able to elevate their focus to
more business critical tasks.
A serverless computing platform may provide one or both of the following:
1. Functions-as-a-Service (FaaS), which typically provides event-driven computing. Developers run and manage application code
with functions that are triggered by events or HTTP requests. Developers deploy small units of code to the FaaS, which are
executed as needed as discrete actions, scaling without the need to manage servers or any other underlying infrastructure.
2. Backend-as-a-Service (BaaS), which are third-party API-based services that replace core subsets of functionality in an application.
Because those APIs are provided as a service that auto-scales and operates transparently, this appears to the developer to be
serverless.
https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
開発者や運用者が本質的な
ビジネスロジックの開発や、クリティカルタスクに集中できる
サーバ管理が不要 需要に応じてスケーリングされ、使った分だけ課金
• Functions-as-a-Service (FaaS)
• Backend-as-a-Service (BaaS)
29. • Events ( Cloud Event and it’s API & SDK for CE )
• Workflows / Function Composition
• Event Orchestration / Chaining
• Function Signatures
• Common function logging, observing, and monitoring
• Common function model
• Common function Benchmark framework
CNCF Serverless WG / Proposals
https://github.com/cncf/wg-serverless/tree/master/proposals
41. https://github.com/kedacore/keda
• KubernetesのHPA (Horizontal Pod
Autoscaler)は全PodのCPUやメモリ消費率
でスケールを調整するのが基本動作
• KEDAはRabbit MQ 、Kafka Streaming、
Azure Storage Queue、Azure Service Bus
Queueなど非HTTPなイベントに連動した
Podのスケール調整ができるのが特徴
• KEDAがZeroスケールイン・アウトして、
それ以外はHPAがスケールイン・アウト
Storage
Queue
ServiceBus
Queue
Kafka
RabbitMQ
HPA KEDA
1->N or N->1 0->1 or 1->0
…
K E D A
Multi-Cloud / Cross Cloud
ベンダロックイン、特定クラウドプロバイダのアーキテクチャなどの恐れがある
今後はロックインを避け、マルチクラウドでいけるようになthe unification of FaaS APIs or frameworks such as IronFunctionsの動きがでるでしょう
マルチクラウドの話に戻すと、恐らくデータの集積の基本となるクラウドと、それを元に部分的に複数のクラウドを使っていくという形が増えていくのではないでしょうか。今だとデータをS3に集めて、AI部分のみ別のクラウド使って、またADだけAzure使ってという所は結構あるかもしれません。基本となるクラウドが1つあれば、後は良いとこ取りできるよというのがマルチクラウドだと思います。
ベンダーロックインの恐れと、Cloud Agnostic solutionの現れ + ハイブリッドモデルServerless container orchestration
one design, any cloudの話: WalmartLabs' OneOps, for example, bills itself as "one design, any cloud." OneOps is a comprehensive solution, but it requires some commitment to its architecture to take full advantage.
Cloud Runは Knative から作成されている
Cloud Run を使用してフルマネージド型でコンテナを実行するか、Cloud Run with GKE を使用して Google Kubernetes Engine クラスタ内でコンテナを実行するかを選択できる
https://thenewstack.io/how-google-cloud-run-combines-serverless-with-containers/