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 bluemix.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 Docker 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