19
IBM Bluemix OpenWhisk José Miguel Ordax Cassá [email protected] @jmordax

IBM Bluemix OpenWhisk - Meetupfiles.meetup.com/18480826/OpenWhisk Overview.pdf · OpenWhisk: Comparison to traditional models • OpenWhisk –Introduces event programming model –Charges

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

IBM Bluemix OpenWhisk

José Miguel Ordax Cassá

[email protected]

@jmordax

Whisk in a nutshell

„Event-action platform to execute code in response to events“

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

Trigger: „A class of events that can happen“T

Programming model

Actions: „An event-handler, i.e. code that runs in response to an event“A

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: Multi-runtime support, e.g. Docker containersA

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

Rules: „An association of a trigger and an action“R

R := T A

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/

Let’s demo it