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 for the Cloud Native Era with Fission


Published on

Soam Vasani of Platform9 shares how makes use of NATS and Kubernetes for Serverless workflows

Published in: Software
  • Be the first to comment

Serverless for the Cloud Native Era with Fission

  1. 1. Serverless for the Cloud-Native Era Event-driven processing with Fission, NATS, and Kubernetes Soam Vasani Software Engineer Platform9 Systems
  2. 2. Fission Functions ● Easy lightweight services on Kubernetes ● Fast cold-starts using pools of ready containers ● Lots of languages supported (JS, Python, Go, Ruby, and lots more) ● Invoke functions using various triggers ○ HTTP for synchronous invocations
  3. 3. Fission and NATS ● Fission supports NATS Streaming triggers ● Reliable Async Function invocation using NATS Streaming ● Request / Response channels
  4. 4. Event-driven Function Systems ● Chain together functions using channels managed by a single NATS-Streaming deployment ● This lets you compose functions together in powerful ways
  5. 5. Ops: Difficult in event driven systems ● Monitoring and Performance? ○ How can you tell how long a whole “workflow” takes? ● Upgrades ○ Upgrading without disruption in a complex system ○ What are the compatibility constraints? ● Cancellation, Restarts, Tracing, etc.
  6. 6. Workflows: “Managed” event driven systems ● Create “flowcharts” of function ● Specify dataflow and control flow ● Workflow engine abstracts away communication
  7. 7. Sample workflow output: WhaleWithFortune tasks: GenerateFortune: run: fortune inputs: "{$.Invocation.Inputs.default}" WhaleWithFortune: run: whalesay inputs: "{$.Tasks.GenerateFortune.Output}" requires: - GenerateFortune
  8. 8. Simple Workflow demo
  9. 9. Workflows architecture overview
  10. 10. Workflow dependencies demo
  11. 11. Questions? Comments? ● ● Github: ○ ○ ● Slack: ● Twitter: @fissionio ● Fission is a project by Platform9 Systems and contributors