Serverless Computing: Customer Adoption Insights & Patterns

Michael Behrendt

IBM Distinguished Engineer Chief Architect, Serverless/FaaS & IBM Cloud Functions

@Michael_beh

© 2017 IBM Corporation Evolution of serverless IBM Cloud Functions

Functions

Containers

Virtual machines

Bare Metal Increasing focus on business logic business on focus Increasing Decreasing concern (and control) over stack implementation

© 2017 IBM Corporation

OpenWhisk IBM Cloud Functions

FaaS platform to execute code in response to events

Apache open source project: openwhisk.org

© 2017 IBM Corporation IBM Cloud Functions IBM Cloud Functions

FaaS platform to execute code in response to events IBM Cloud Functions: Managed service as part of the IBM Cloud .net/openwhisk

© 2017 IBM Corporation IBM Watson and Cloud Platform

Healthcare Financial Logistics DsX IoT Virtual agent Application Services

Compare Knowledge Personality Conversation Discovery Tone Analysis AI + Comply Query Insights Visual Document Nat. Language Nat. Language Speech + more... Recognition Conversion Understanding Classifier

Ingest Enrich Store Analyze Apply Data The Watson Data Platform Public, Private, Licensed

Dev Services Containers Messaging Blockchain Logging + more... Cloud Infrastructure Storage Compute Physical Network Infrastructure Mgmt + more... OpenWhiskIBM Cloud Functions IBM Cloud Functions Concepts Source (events) Results

Triggers (response)

Actions (code)

Rules

© 2017 IBM Corporation IBM Cloud Functions IBM Cloud Functions

JS/NodeJS 6 Swift 3 Multi- language Java Support

Supported Python 3 PHP Languages

Community Haskell Scala Efforts …

… and more to come

© 2017 IBM Corporation OpenWhiskIBM Cloud Functions IBM Cloud Functions

Support for Blocking different invocation models Non-blocking

Periodic

© 2017 IBM Corporation OpenWhiskIBM Cloud Functions IBM Cloud Functions

Supports Action 1 higher-level

programming Action 2

constructs Chaining/ Parameter Sequencing Binding

© 2017 IBM Corporation OpenWhiskIBM Cloud Functions IBM Cloud Functions A Differentiated Model for FaaS Composition • Respond to the need for more complex, coordinated flows required for end to end solutions across cloud Services • Enable more expressive programming through direct integration of new Composition, constructs into existing language bindings Control Flow and State Management

© 2017 IBM Corporation OpenWhiskIBM Cloud Functions IBM Cloud Functions

Event Provider Periodic IBM Cloudant Message Hub

Mobile Push Github IBM App Connect

© 2017 IBM Corporation l OpenWhiskIBM Cloud Functions IBM Cloud Functions

Granular pricing

Pay only for the exact time your actions run. When an action is not invoked, it’s not in memory, so you don’t pay anything.

© 2017 IBM Corporation OpenWhiskIBM Cloud Functions IBM Cloud Functions

Reduce Costs Time an action was running * memory allocated to action

$ 0.000017 per GBs Free tier: 400000 GBs

© 2017 IBM Corporation What is serverless good for? IBM Cloud Functions

OpenWhisk allows you to build up an entirely serverless application architecture

© 2017 IBM Corporation Customers and Partners IBM Cloud Functions

Customers and Partners Clients Partners

© 2017 IBM Corporation What is IBMOpenWhisk Cloud Functions good for? good for? IBM Cloud Functions

Outsource compute-intensive tasks to a powerful & Mobile scalable serverless platform and implement your actions backend even without changing the programming language.

© 2017 IBM Corporation What is IBMServerlessOpenWhisk Cloud goodFunctions good for? for? good for? IBM Cloud Functions

Mobile backend

The Weather Gods https://itunes.apple.com/us/app/weather- gods/id1041512978?mt=8

© 2017 IBM Corporation The Weather Gods High Level Architecture IBM Cloud Functions

Weather Update Trigger 3 OpenWhisk Actions Rain Scanner Weather External Weather Gods Model Data

Triggers Snow 2 Scanner

TWC Weather Checker Wind Bluemi Scanner Cron trigger x every 3 minutes 1 Notification Model

Group Storm Notification Scanner Scanner Notification 4 Send Weather Frost Scanner Notificati Collector Set flag to Trigger on check weather for each user location in the Notification group ETC Trigger For each user Scanner Cloudant location updated © 2017 IBM Corporation What is IBMOpenWhisk Cloud Functions good for? good for? IBM Cloud Functions Data processing

© 2017 IBM Corporation What is IBMOpenWhisk Cloud Functions good for? good for? IBM Cloud Functions Data processing

Ideally suited for working with multimedia data like audio, image and video data: Audio normalization Image rotation, sharpening, noise reduction or Thumbnail generation Image OCR’ing Video transcoding …

© 2017 IBM Corporation What do our customers do with IBM Cloud Functions? IBM Cloud Functions Data processing

http://ecc.ibm.com/case- study/us-en/ECCF- CDC12387USEN

10x faster 90% less cost

© 2017 IBM Corporation SiteSpirit High Level Architecture IBM Cloud Functions

Per Customer Sequence Upload Bucket Crop Resolutions Buckets Trigger 1 Object ? 4 Storage Action

mediaspirit-newfile-uploaded

ms2-crop-done mediaspirit-transform ms2-moveuploaded-done + 2 + + ms2-imagecropper ms2-moveuploaded- cloudant/create upload 3 + + ms2-fetch-cropres ms2-get-clientconfig + ms2-get-clientconfig ms2-cloudant- trigger

ms2-image-moveupload- Costumer DB ms2-imagecrop trigger ms2- -trigger changelistener Manager DB

© 2017 IBM Corporation What do our customers do with IBM Cloud Functions? IBM Cloud Functions Data processing

Less cost <$2 for all paper checks processed within 1 year

© 2017 IBM Corporation Santander High Level Architecture IBM Cloud Functions

Resized Images

Represents System of Records Archived Audited Parsed Processed

Save Images Changes Changes

1 2 3 4

Find Parse Record Checks Check Deposit

Object Storage Email OCR Notification Engine

IBM Bluemix IBM Cloudant Trigger Action

© 2017 IBM Corporation Openwhisk What is IBMOpenWhisk Cloud Functions good for? good for? IBM Cloud Functions

Cognitive

© 2017 IBM Corporation What is IBMOpenWhisk Cloud Functions good for? good for? IBM Cloud Functions

Cognitive

Skylink https://github.com/IBM-Bluemix/skylink

© 2017 IBM Corporation What is Serverless good for? IBM Cloud Functions

Abilisense https://www.abilisense.com/

© 2017 IBM Corporation Abilisense High Level Architecture IBM Cloud Functions

Sound Machine Processing Learning 2a 1

Object Storage

Abilisense 2b 3 4 MQTT HTTP Notifications

IBM Watson IOT Openwhisk Abilisense Platform

REST REST

IBM Weather Channel Smart Cities

Compose for MangoDB © 2017 IBM Corporation IBM Cloud Functions Abilisense

Assumptions Assumptions

Home Devices 1.000 Un. Runtime Action per Millisecond 5

Avg. Sound File Size 1 MB Memory MB 512

Avg. Number of Sound Readings 10 Monthly Number of Executions 5,000,000.00 IoT Reading Frequency 1 Hourly Monthly Cost $14.45 IoT Recording Data Size 2 KB

Weather Data Reading Frequency 1 Hourly

Weather Data Reading Size 2 KB

Weather Data Total Capability 1.41 MB

© 2017 IBM Corporation IBM Cloud Functions Potential research areas

• Problem determination for apps with a large number of actions

• Latency reduction

• Density increase

• State handling

• Building complex apps

• …

© 2017 IBM Corporation Learn more IBM Cloud Functions

Learn Commercial offering home: more bluemix.net/openwhisk Open-source offering home: openwhisk.org

Slack: slack.openwhisk.org

© 2017 IBM Corporation Learn more IBM Cloud Functions

Github github.com/openwhisk

Learn Twitter twitter.com/openwhisk more Medium medium.com/openwhisk

Slideshare slideshare.net/OpenWhisk

Youtube youtube.com/channel/UCbzgShnQk8 F43NKsvEYA1SA

© 2017 IBM Corporation IBM Cloud Functions

Thank you

© 2017 IBM Corporation