Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

今Serverlessが面白いわけ v19.09

プレゼンテーションスライド @ Serverless Meetup Tokyo #14
Presentation Slides for Breakout session at Serverless Meetup Tokyo #14
https://serverless.connpass.com/event/143446/

  • Login to see the comments

今Serverlessが面白いわけ v19.09

  1. 1. 今Serverlessが面白いわけ v19.09 Yoichi Kawasaki, Microsoft @yokawasa Presentation Slides for Serverless Meetup Tokyo #14
  2. 2. 川崎 庸市 / Yoichi Kawasaki @yokawasa https://github.com/yokawasa マイクロソフトコーポレーション Azure Cloud Native Technical Specialist インターネットサービス、エンタープライズ検索、クラウドサービス分野でのエンジニア生活を経て 現職。2017年~ Global Back Beltというグローバル組織のAPACチームに所属してクラウド開発分野で お客様、パートナー様の技術支援、外部セミナーやイベント登壇を通じてクラウド技術の普及に従事。 NoOps Japanコミュニティ運営
  3. 3. What and why Serverless?
  4. 4. Serverless=サーバが無い Serverless=サーバを管理する必要がない
  5. 5. The UNIX Super Text 上下 技術評論社出版 (December 1, 1992)
  6. 6. Serverlesscomputing Wikipedia-Serverless Computing Serverless AWS-https://aws.amazon.com/serverless/ Wikipedia AWS martinfowler.com
  7. 7. https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
  8. 8. 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)
  9. 9. 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
  10. 10. 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
  11. 11. Tech Adoption 2019 https://www.infoq.com/about-infoq CHASM
  12. 12. 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)
  13. 13. 内閣府 令和元年版高齢社会白書 https://www8.cao.go.jp/kourei/whitepaper/w-2019/gaiyou/pdf/1s1s.pdf 平成最後の時価総額ランキング。日本と世界その差を生んだ30年とは? https://media.startup-db.com/research/marketcap-global 金融・製造業主導の経済から、ITを駆使した ソフトウェア産業が世界を掌握 減り続ける労働人口
  14. 14. Monolith Microservices Infrastructure Host OS Hypervisor Guest OS Guest OS Bins/ Libs Bins/ Libs App App Infrastructure Host OS Container Engine Bins/ Libs Bins/ Libs App App
  15. 15. HTTP HTTP Proxy
  16. 16. /bin/sh /bin/sh /bin/sh 毎回Fork でシェルからスクリプト実行 コストが大きい
  17. 17. ベンダーロックインをなくすための標準化を 進めるベンダー中立な団体 https://www.cncf.io/ マルチプラットフォーム間での標準化がもたらす 価値について疑問視する意見はあるものの 標準化は着実に進められています
  18. 18. • 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
  19. 19. CNCF Serverless WGを中心に進められている イベントスキーマ標準化のための共通仕様 • 異なるシステム間でのイベントの相互運用性(” interoperability”)確保が目的 • イベントはさまざまなプロトコルで配送可能にする • 業界標準(HTTP, AMQP, MQTT, SMTP, JSON)、OSS(Kafka, AVRO, NATS)、ベンダー固有(Azure Event Grid), etc. https://cloudevents.io/ https://github.com/cloudevents/spec/blob/master/json-format.md サンプル: CloudEvent JSON (data部分が文字列の例) Cloud Event Proposal https://github.com/cncf/wg-serverless/tree/master/proposals/cloudevents CloudEvents Specs: https://github.com/cloudevents/spec
  20. 20. OSS Serverless Platform OSS Serverless Framework PublicCloud
  21. 21. https://www.pulumi.com/serverless/ https://github.com/pulumi/examples/blob/master/azure-ts- functions/index.ts
  22. 22. • https://aws.amazon.com/jp/blogs/news/firecracker- lightweight-virtualization-for-serverless-computing/ • https://github.com/firecracker- microvm/firecracker/blob/master/docs/design.md
  23. 23. https://quarkus.io/ • https://developers.redhat.com/blog/2019/03/07/quarkus-next- generation-kubernetes-native-java-framework/ • https://publickey1.jp/blog/19/javaquarkusjavajavared_hat.html
  24. 24. Kubernetes-based Serverless • Knative • KEDA • Virtual Kubelet
  25. 25. https://github.com/knative インフラストラクチャの抽象化 ネットワークの抽象化 アプリライフサイクルの抽象化
  26. 26. インフラストラクチャ の抽象化 ネットワーク の抽象化 アプリライフサイクル の抽象化 • コードのビルド • パッケージング • リクエスト受信 • ルーティング • スケール • イベントソースの 抽象化 • コードの発火 https://knative.dev/docs/serving/ https://knative.dev/docs/eventing/ https://knative.dev/docs/build/
  27. 27. 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
  28. 28. kubelet kube proxy Container Container runtime Virtual Kubelet • Alibaba Cloud ECI Provider • Azure Container Instances Provider • Azure Batch GPU Provider • AWS Fargate Provider • HashiCorp Nomad • OpenStack Zun https://github.com/virtual-kubelet/virtual-kubelet
  29. 29. https://aka.ms/AA630ny 本日の資料と過去の登壇資料 Microsoft Learn (無料学習サイト) はこちら
  30. 30. ご静聴いただき ありがとうございました Y A X B

×