Slide 1

Slide 1 text

MICROSERVICES WITHOUT SERVERS JAMES THOMAS, IBM

Slide 2

Slide 2 text

SERVERS ARE KILLING YOUR PRODUCTIVITY

Slide 3

Slide 3 text

IDEA PROFIT?

Slide 4

Slide 4 text

HARD DRIVE FAILS

Slide 5

Slide 5 text

HARD DRIVE FAILS LINUX OS VULNERABILTY

Slide 6

Slide 6 text

HARD DRIVE FAILS LINUX OS VULNERABILTY MIDDLEWARE VERSION UPDATE

Slide 7

Slide 7 text

HARD DRIVE FAILS LINUX OS VULNERABILTY MIDDLEWARE VERSION UPDATE UPGRADE NETWORK INFRASTRUCTURE

Slide 8

Slide 8 text

HARD DRIVE FAILS LINUX OS VULNERABILTY MIDDLEWARE VERSION UPDATE UPGRADE NETWORK INFRASTRUCTURE MORE MEMORY AND BIGGER CPU

Slide 9

Slide 9 text

HARD DRIVE FAILS LINUX OS VULNERABILTY MIDDLEWARE VERSION UPDATE UPGRADE NETWORK INFRASTRUCTURE MORE MEMORY AND BIGGER CPU DB TABLE INDEX GETS CORRUPTED

Slide 10

Slide 10 text

HARD DRIVE FAILS LINUX OS VULNERABILTY MIDDLEWARE VERSION UPDATE UPGRADE NETWORK INFRASTRUCTURE MORE MEMORY AND BIGGER CPU DB TABLE INDEX GETS CORRUPTED GET ANOTHER SERVER…

Slide 11

Slide 11 text

WASN’T THE CLOUD SUPPOSED TO FIX THIS?

Slide 12

Slide 12 text

“COMPUTING AS A UTILITY” Source: https://flic.kr/p/5aHJFh

Slide 13

Slide 13 text

POWER SUB-STATION? Source: http://i22.photobucket.com/albums/b344/GlassCurtain/Substation.jpg

Slide 14

Slide 14 text

NO ESCAPE… Source: http://bit.ly/1ozGfzK

Slide 15

Slide 15 text

average utilisation 
 20% - 40% of capacity

Slide 16

Slide 16 text

WHAT CAN WE DO?

Slide 17

Slide 17 text

AWS LAMBDA

Slide 18

Slide 18 text

“RUNS CODE IN RESPONSE TO EVENTS, MANAGES COMPUTE RESOURES” …WHY IS THIS DIFFERENT?

Slide 19

Slide 19 text

FUNCTIONS-AS-A-SERVICE

Slide 20

Slide 20 text

SCALING: 0 to N

Slide 21

Slide 21 text

PAY-AS-YOU-GO flickr photo by a loves dc https://flickr.com/photos/alovesdc/3466740007 CC (BY) license

Slide 22

Slide 22 text

“ONE HAPPY LAMBDA CUSTOMER SAVING 80% OFF THEIR CLOUD BILLS” Source: http://uk.businessinsider.com/amazon-web-services-lambda-explained-2015-11

Slide 23

Slide 23 text

ISN’T THIS JUST PLATFORM-AS-A-SERVICE?

Slide 24

Slide 24 text

Source: https://twitter.com/adrianco/status/736553530689998848

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

PROVIDERS

Slide 28

Slide 28 text

Source: http://cloudacademy.com/blog/serverlessconf-recap-serverless/

Slide 29

Slide 29 text

SPOILER: THERE’S STILL SERVERS flickr photo by BobMical https://flickr.com/photos/small_realm/11189803153 CC (BY-NC) license

Slide 30

Slide 30 text

ENOUGH TALKING…
 BRING ON THE CODE.

Slide 31

Slide 31 text

WEATHERBOT Source: http://uk.reuters.com/article/us-life-selfies-idUKKCN0R305L20150903

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

IBM OPENWHISK

Slide 34

Slide 34 text

OPEN SOURCE

Slide 35

Slide 35 text

$ git clone https://github.com/ openwhisk/openwhisk.git $ cd openwhisk/tools/vagrant $ vagrant up

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

RUNTIMES

Slide 38

Slide 38 text

endpoint.pathname = path.resolve(endpoint.pathname, url_path) return url.format(endpoint) } namespace (options) { if (options && options.hasOwnProperty('namespace')) { return options.namespace } else if (this.options.hasOwnProperty('namespace')) { return this.options.namespace } throw new Error(messages.MISSING_NAMESPACE_ERROR) } qs (options, names) { return names.filter(name => options.hasOwnProperty(name)) .reduce((previous, name) => { previous[name] = options[name] return previous }, {}) my_service.js

Slide 39

Slide 39 text

function main(params) { // put your code here! 
 
 return {…}; } Entry Point Event Parameters Service Result my_service.js

Slide 40

Slide 40 text

import com.google.gson.JsonObject; public class Hello { public static JsonObject main(JsonObject args) { JsonObject response = new JsonObject(); return response; } } Entry Point Event Parameters Service Result my_service.java

Slide 41

Slide 41 text

ACTIONS

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

TRIGGERS

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

CHALLENGES

Slide 47

Slide 47 text

COMPUTE LIMITS flickr photo by zund https://flickr.com/photos/zund/12202485675 CC (BY-NC-ND) license

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

MONITORING, DEBUGGING AND TESTING flickr photo by Thomas Hawk https://flickr.com/photos/thomashawk/4544013443 CC (BY-NC) license

Slide 50

Slide 50 text

COMPLEXITY flickr photo by Bitterjug https://flickr.com/photos/bitterjug/7670055210 CC (BY) license

Slide 51

Slide 51 text

FRAMEWORKS

Slide 52

Slide 52 text

SERVERS ARE KILLING YOUR PRODUCTIVITY

Slide 53

Slide 53 text

Source: http://gunshowcomic.com/648

Slide 54

Slide 54 text

Source: https://twitter.com/patrickdebois/status/734459440603275264

Slide 55

Slide 55 text

BURN YOUR SERVERS + = UPGRADE PRODUCTIVITY

Slide 56

Slide 56 text

https://github.com/openwhisk https://dwopen.slack.com 
 #openwhisk http://stackoverflow.com/questions/ tagged/openwhisk @thomasj or @openwhisk