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

Serverless with OpenStack 101

Serverless with OpenStack 101

at OpenStack Days Tokyo 2018 / Cloud Native Days Tokyo 2018;
in "ops WorkShop" session.

How to provide serverless with OpenStack?

Fc358d63dcdcbad7a5c29198785dec2c?s=128

Naoto Gohko

August 02, 2018
Tweet

Transcript

  1. Serverless with OpenStack 101 https://etherpad.openstack.org/p/JP-Ops-workshop-6-serverless 2018/08/02 OpenStack Days/Cloud Native Days

    2018 Ops Workshop #6 (in 日本橋) @naoto_gohko
  2. 少しお話の時間をください

  3. LT presenter(It’s me) • Naoto Gohko / 郷古 直仁 (@naoto_gohko)

    • Cloud Service development divistion, GMO Internet Inc., • 最近の活動主体 • Japan OpenStack user会 • その他参加勉強会など • Rancher JP, PaaS, Serverless, SDNなど @MikumoConoHa
  4. Private cloud Public cloud 提供側として考える必要性 ユーザの需要も考えないと

  5. Serverless (自分の捉え方) 冗長性と可用性が担保される様なインフラの構築運用や、OSや ミドルウェアを気にする必要がない、「開発に集中できる」アー キテクチャーのユーザ(developer)への提供 ユーザ視点 noOps: エンドユーザは利用(運用)するだけ、スケールもおまかせ サービス運用側 ユーザアカウント管理、スケールする構成、billing連動

  6. ServerlessとFaaS(自分の捉え方) FaaS(Function as a service) • コードのみの実行できる(Function), サービスではない(not Services) -

    “down when done” • Event driven programming model • Scale – “infinite”, transparent for dev, handled by Platform/Framework • Pay-per use consumption model API gateway BaaS(Backend as a service) • 認証、メッセージング、AI、chat DataStore service • noSQL(CRUD datastore), Object Storage(S3, Swift) Workflows
  7. とある新人研修の開発合宿の 現場 なにか成果物を作っている

  8. 短期間でサービスアプリケーションを作 る新人研修の合宿開発 • IaaS (ConoHa) + PHP, Fask, Node-RED, etc.

    • Serverless開発を選択したチーム • Frameworkを使ってアイデア開発に注力できる • Input / Outputがはっきりしているので開発効率がよい (AWS Lambda)
  9. None
  10. Serverlessが必要な現場 (use case) • Data Processing • Services for web

    and mobile apps • Ex) SPA (Single Page Application) (Vm instanceを全く使わない開発、webIDEのみでの開発) • Other workflow/automation • DevOps automation ( ex; github build flow ) • IoT, Alexa, ChatBot • IFTTT, slack • Etc.
  11. Serverless ecosystemとして利 用できる (外部サービスも含めて)

  12. AWS, Azure, Google, IBM =[bind]=豊富な内部サービスとbind 豊富な内部サービス(Cognitive) • AI • Bot

    • messaging • Workflow • DB • CloudWatch • storage • Bigdata これらを活用して、[bind]するのが、serverless/FaaSとなる
  13. OpenStack(public/private)でどうするのか 1) OpenStackのコンポーネントのServerless化、Serverless サービスの利用 • Swift  Storlets, s3select化 •

    Trove  noSQLでかつCRUD(restful)アクセスできるDBの投入 • FaaS  Qiling 2) 外部サービスの積極的活用とServerlessでの[bind] • EX)次ページ参照 3) Kubernetes on OpenStack上へのServerlessアプリケーショ ンの追加 • OpenFaaS, Kongなど
  14. Ex) External service

  15. OpenStack FaaS projects #1 2016/12 • OpenStack Picasso (IronFunctions runtime)

    https://launchpad.net/picasso • Github: https://github.com/openstack/picasso “openstack fn” コマンドで統合的に利用できた Telemetry, Swift Object Storageでの利用しか開発側が当時想定 しない (もったいない)  残念な展開に
  16. Picassa (2016/12/20)

  17. Picassa last issue: 2017/02/28 • IronFunctions • Kubernetesなどのruntime環境  そのまま発散、開発止まる

  18. 3月のIRC MTGでなにかあった らしい (Oracle … ) https://blog.iron.io/ も4月末まで空白 … orz

  19. Iron.io (to Oracle), Fn Project • Iron.ioはOracleへ • オープンソース志向の開発者たち 

    Fn Project はじめました (http://fnproject.io/) https://medium.com/@hhiroshell/fn- project%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F8%E3%81%A4%E3%81%AE% E7%90%86%E7%94%B1-f4e20ef73b15 Fn Project (runtime; Kubernetes, Docker Swarm, Mesosphere) • Fn Server • Fn Load Balancer • Fn FDK’s • Fn Flow Fn Project は Oracle cloud でのサービス化へ https://www.slideshare.net/charlier-shoe/fn-project Fn Flow
  20. OpenStack FaaS projects #2 2017/November 6-8 SYDNY summit • OpenStack

    Qinling (本命) https://launchpad.net/qinling • Yourtube(demo): https://www.youtube.com/watch?v=K2SiMZllN_A • Github: https://github.com/openstack/qinling FaaS for OpenStack 1.0としてOpenStack “Rocky” でリリースされる 予定 “openstack function <hogehoge> “ としてCLI Functionは今の所 Python, nodejs のみ?らしい qinling/qinling_tempest_plugin/functions
  21. OpenStack Vancouver Summit https://www.openstack.org/assets/presentation-media/How-to- implement-FaaS-in-OpenStack-for-public-cloud3.pdf

  22. https://launchpad.net/qinling

  23. FaaS for OpenStack : Qinling

  24. qinling docs https://docs.openstack.org/qinling/latest/ Quick start https://docs.openstack.org/qinling/latest/quick_start.html#getting -started-with-qinling Kubernetes curl –sSL

    https://raw.githubusercontent.com/openstack/qinling/master/example/kub ernetes/k8s_qinling_role.yaml | kubectl create -f -
  25. Qinling; requires Misral workflow Aodh Billin ? Swift Data Store

    Magnum Container as a service (Kubernetes)
  26. OpenStack FaaS projects #3; Storelet https://wiki.openstack.org/wiki/Storlets https://github.com/openstack/storlets Docs https://storlets.readthedocs.io/en/latest/ Swiftに特化

  27. Alternative; k8s integration K8s := scalable container runtime

  28. Why to service Serverless on k8s • 1) If you

    are already running k8s cluster • On Public/Private cloud • 2) Unify multiple clouds with one Serverless Framework Ex) • on Public; DigitalOcean k8s • on Private; OpenStack cloud k8s • 3) When using k8s simply as a scalable execution environment
  29. OpenStack with Opensource FaaS #1 Iron Function (ex: on kuberrnetes)

    • Functions • Functions-ui Fn Project (ex: on kubernetes) http://fnproject.io/ Fission (Platform9) (on kubernetes) https://fission.io/
  30. OpenStack with Opensource FaaS #2 Kubeless (on kuberrnetes) https://kubeless.io/ OpenWhisk

    (on kubernetes) https://openwhisk.apache.org/ Funktion (Red Hat has stopped funding this OSS project, 2017/11/29) Need to fork!!
  31. ServerlessのためのFramework 開発する、Debugする、のにひつようなもの

  32. “Serverless Framework” plugin Lambda, Azure, OpenWhiskなどをFrameworkで抽象化

  33. Serverless framework for FaaS #1 Iron Function (ex: on kuberrnetes)

    • Functions • Plugin : nothing
  34. Serverless framework for FaaS #2 Kubeless (on kuberrnetes) https://kubeless.io/ custom

    resource difinitions: CRDとして実装 https://github.com/serverless/serverless-kubeless OpenWhisk (on kubernetes) https://openwhisk.apache.org/ https://github.com/serverless/serverless-openwhisk
  35. Serverless framework for FaaS #3 OpenFaaS https://www.openfaas.com/ Docs: https://docs.openfaas.com/ Github:

    https://github.com/openfaas/faas (Thanks!! @yoshidashingo) 最近の活発度は一番かもしれません
  36. Billingの問題 fuction cpu time (API log)

  37. Ingress (API gateway) API log and Billing API gateway •

    APIのアクセスログからfluentdなどで計測情報を取得 • API time(ms) • API access count(number of X) Kong, etc. Docker(k8s) runtime • 精密には、functionを実行するdocker(Container Runtime)の proc IDのCPU timeの測定が必要(dockerのlog ?)
  38. Private cloudの Azure Stack で App Service と Functionsの 利用

     普通にbillingサービスまである さすがだ
  39. Summary: Serverless with OpenStack 101 Qinling project (OpenStack) • RuntimeはKubernetesでscaleできる

    • Functionはpython(いまのところ) • OpenStackとの統合度合いは良さそう • Serverless Frameworkとの互換性もナシ(泣) FaaS on Kubernes on OpenStack • Runtimeだけなら、こちらから選択するのが現実的 • こちにAuth, API gateway, Billingつけるほうがよいか? • Kubeless << k8sのCRDになっているので、FaaS単体としては使いづらい?
  40. “Serverless Meetup Tokyo #8” ; added after discussion (I thought

    of later) 追加資料
  41. OpenFaaSの最近のGoogleTrends OpenFaaSは確かにTrend, github star, github watchと もに多い OpenWhiskは始まりが古い 文、contributersは多い

  42. https://www.serverless-ruby.org/ FaaSでRuby使えるように!!