Upload
others
View
16
Download
0
Embed Size (px)
Citation preview
Whisk in a nutshell
Serverless deployment & operations modelWe hide infrastructural and operational complexity allowing you to focus on coding: You provide code – we execute it!
Optimal utilization, fair pricing at any scaleWe provide you exactly with the resources you need – neither less nor more - and charge you only for code really being executed
Flexible programming model & powerful toolingWe support multiple languages (incl. Swift ) and even the execution of custom logic via docker containers plus tools to declaratively chain your code snippets
Open & open ecosystenOpen to run anywhere to avoid any kind of vendor lock-in and to accelerate the development of a powerful ecosystem
OpenWhisk: Comparison to traditional models
Swift
Application
Container VMCF
2
Polling
1b
Request
1a
• Traditional model
– Continous polling due to missing event programming model
– Charged even when idling
– No auto-scaling by default
Process & idle
OpenWhisk: Comparison to traditional models
• OpenWhisk
– Introduces event programming model
– Charges only for what is used
– Auto-scales Pool of actions
Swift DockerJS
Trigger
1
Running action
Running action
Running action
3
Deploy action within millisecs,run it, free up resources
OpenWhisk Engine
2
OpenWhisk: How does it work?
1
Event Providers
OpenWhisk
Cloudant
Git
Weather
…
…
Data event occurs, e.g.-Commit on a Git Repository-CRUD operation on Cloudant-….
Trigger execution of associated OpenWhisk action
2
…JS Swift Docker …
OpenWhisk: How does it work?
OpenWhisk
JS Swift Docker …
Incoming HTTP request, e.g.HTTP GET mynewcoolapp.com/customers
1 2 Invoke associated OpenWhisk action „getCustomers“
Browser
Mobile App
Web App
Variety of languages
Programming model
• Services define the events they emit as triggers , and developers associate the actions to handle the events via rules
• The developer only needs to care about implementing the desired application logic - the system handles the rest
T A R
Programming model
Actions: Multi-runtime support, e.g. JavaScriptA
function main(msg) {
return { message: 'Hello, ' + msg.name + ' from ' + msg.place };
};
Programming model
Actions: Multi-runtime support, e.g. SwiftA
func main(params:[String:Any]) -> [String:Any] {
var reply = [String:Any] ()
if let name = params[“name”] as? String {
print(“Hello \(name)”)
reply[“msg”] = “Goodbye \(name)”
}
return reply
}
Programming model
Actions: Can be chained to create sequences to increase flexibility and foster reuse
A
AA := A1 + A2 + A3
AB := A2 + A1 + A3
AC := A3 + A1 + A2
Programming model
Packages: „A shared collection of triggers and actions“P
A
A read
write
T changes A translate A forecast
A myAction
T myFeed
Yours
T commit
ThirdParty
Architecture
Trigger
Package
Feed
Package
Feed
Package
Feed
Package
Feed
REST
CLI iOS SDK
CRUD triggers, actions, and rulesInvoke actions
UI
Action
NodeJS
Action
Swift
Action
Docker
Rule
Rule
Rule
Action
NodeJS
Action
Docker
Service ecosytem
Bluemix services
3rd party services
Self-enabled services
Chain Chain Invoke
Join us today
• You want to try OpenWhisk on your own?
– Want to try out our IBM Bluemix OpenWhisk offering?
• Sign-up today at: https://new-console.ng.bluemix.net/openwhisk/
– Want to try out our open-source OpenWhisk offering?
• Visit: https://developer.ibm.com/openwhisk/