+ All Categories
Home > Software > Microservices: from dream to reality in an hour

Microservices: from dream to reality in an hour

Date post: 20-Jan-2017
Category:
Upload: holly-cummins
View: 1,003 times
Download: 0 times
Share this document with a friend
161
IBM _ 1 Java EE Microservices by Example: from Raspberry Pis to the Cloud Holly Cummins September 2016 @holly_cummins
Transcript
Page 1: Microservices: from dream to reality in an hour

IBM _ 1

Java EE Microservices by Example: from Raspberry Pis to the Cloud

Holly Cummins September 2016 @holly_cummins

Page 2: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon @holly_cumminshttp://ibm.biz/bluemixgaragelondon

http://ibm.biz/bluemixgaragelondon

Page 3: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon @holly_cumminshttp://ibm.biz/bluemixgaragelondon

http://ibm.biz/bluemixgaragelondon

Page 4: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 5: Microservices: from dream to reality in an hour

Microservices. The best thing since sliced bread.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Microservices: Good design built-in!

Every microservice comes with a free puppy.

Kittens love microservices. Microservices vaporize

unclean code.

Microservices make your colleagues less annoying.

Microservices are guaranteed bug-free.

Page 6: Microservices: from dream to reality in an hour

Wait. What problem are we actually trying to solve?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 7: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 8: Microservices: from dream to reality in an hour

Monolithic Modularity

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 9: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 10: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Scaling

Page 11: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 12: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Failing

Page 13: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Failing

Page 14: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Failing

Page 15: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Failing

Page 16: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Failure

Page 17: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Update

Page 18: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Update

Page 19: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Update

Page 20: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Update

Page 21: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Update

Page 22: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Update

Page 23: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Update

Page 24: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Redesign

Page 25: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Redesign

Page 26: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Monolithic Redesign

(Revolution required.)

Page 27: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 28: Microservices: from dream to reality in an hour

Microservice Modularity

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 29: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 30: Microservices: from dream to reality in an hour

Microservice Interactions

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 31: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 32: Microservices: from dream to reality in an hour

Microservices Scaled

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 33: Microservices: from dream to reality in an hour

Microservices Scaled

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 34: Microservices: from dream to reality in an hour

Microservices Scaled

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 35: Microservices: from dream to reality in an hour

Microservices Scaled

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 36: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 37: Microservices: from dream to reality in an hour

Microservices Redesign

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 38: Microservices: from dream to reality in an hour

Microservices Redesign

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

(Evolution reduces risk.)

Page 39: Microservices: from dream to reality in an hour

All good demos involve cats.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 40: Microservices: from dream to reality in an hour

All good demos involve cats.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 41: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 42: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 43: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 44: Microservices: from dream to reality in an hour

All good demos involve cats and raspberry pis.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 45: Microservices: from dream to reality in an hour

All good demos involve cats and raspberry pis.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 46: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 47: Microservices: from dream to reality in an hour

Datacentre in a handbag

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 48: Microservices: from dream to reality in an hour

What, no Docker?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 49: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 50: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 51: Microservices: from dream to reality in an hour

Cat-astrophe

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 52: Microservices: from dream to reality in an hour

Powered by WebSphere Liberty …

of course

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 53: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 54: Microservices: from dream to reality in an hour

http://raspberrypi.local:8080/

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 55: Microservices: from dream to reality in an hour

What happens if things fail?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 56: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 57: Microservices: from dream to reality in an hour

Refactoring your way to the microservices dream

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 58: Microservices: from dream to reality in an hour

Slice it up!

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

http://github.com/holly-cummins/catastrophe-microservices

Page 59: Microservices: from dream to reality in an hour

Slice it up!

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

http://github.com/holly-cummins/catastrophe-microservices

Page 60: Microservices: from dream to reality in an hour

Slice it up!

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

HTTP HTTP

HTTP

http://github.com/holly-cummins/catastrophe-microservices

Page 61: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

HTTP HTTP

HTTP

Peel it off.

http://github.com/holly-cummins/catastrophe-microservices

Page 62: Microservices: from dream to reality in an hour

Should we decompose the front-end?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 63: Microservices: from dream to reality in an hour

Should we decompose the front-end?

• Probably not.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 64: Microservices: from dream to reality in an hour

Should we decompose the front-end?

• Probably not.

• Single Origin headaches

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 65: Microservices: from dream to reality in an hour

Should we decompose the front-end?

• Probably not.

• Single Origin headaches

• Page composition headaches

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 66: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

REST REST

REST

Page 67: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

REST REST

Message

Page 68: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

REST REST

REST

Page 69: Microservices: from dream to reality in an hour

REST != synchronous (well, not necessarily)

• Synchronous is convenient

• Asynchronous has scalability advantages

• Consider reactive architectures

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 70: Microservices: from dream to reality in an hour

How hard the refactoring is depends on where you started

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 71: Microservices: from dream to reality in an hour

Exposing a service in a monolith

@ApplicationScopedpublic class CatRepository {

public Set<Cat> getAllCats() {

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 72: Microservices: from dream to reality in an hour

Exposing a microservice

@Path("cat")public class CatRepository {

@Path("allcats")@Produces(MediaType.APPLICATION_JSON)@GETpublic Set<Cat> getAllCats() {

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 73: Microservices: from dream to reality in an hour

@Path("cat")public class CatRepository {

@Path("allcats")@Produces(MediaType.APPLICATION_JSON)@GETpublic Set<Cat> getAllCats() {

JAXRS=magic

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 74: Microservices: from dream to reality in an hour

Go asynchronous for scalability

@Path("allcats")@Asynchronous@GETpublic void getAllCats(@Suspended final AsyncResponse response) {

// stuff response.resume(stuff)

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 75: Microservices: from dream to reality in an hour

@Path("allcats")@Asynchronous@GETpublic void getAllCats(@Suspended final AsyncResponse response) {

// stuff response.resume(stuff)

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 76: Microservices: from dream to reality in an hour

Consuming a service in a monolith

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

@InjectCatRepository catRepo;

...

Set<Cat> cats = catRepo.getAllCats();

Page 77: Microservices: from dream to reality in an hour

Client client = ClientBuilder.newClient();WebTarget target = client.target(“http://localhost:9080") .path(“/rest/cat/cats”);Set<Cat> cats = target.request(MediaType.APPLICATION_JSON) .get(new GenericType<>(Set.class));

Consuming a REST microservice

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 78: Microservices: from dream to reality in an hour

Don’t forget to slice up the database too

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 79: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

REST REST

REST

Page 80: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

REST REST

REST

Page 81: Microservices: from dream to reality in an hour

Are we done?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 82: Microservices: from dream to reality in an hour

Don’t forget to slice up the data model too

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 83: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Don’t do what I did :)

Page 84: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

compile project(":catastrophe-interfaces")

Don’t do what I did :)

Page 85: Microservices: from dream to reality in an hour

mymac:~ holly$ git submodule add ../catastrophe-interfaces

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

compile project(":catastrophe-interfaces")

Don’t do what I did :)

Page 86: Microservices: from dream to reality in an hour

mymac:~ holly$ git submodule add ../catastrophe-interfaces

An anti-pattern

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

compile project(":catastrophe-interfaces")

Don’t do what I did :)

Page 87: Microservices: from dream to reality in an hour

mymac:~ holly$ git submodule add ../catastrophe-interfaces

An anti-pattern

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

This is a code-layout description, not a functional one

compile project(":catastrophe-interfaces")

Don’t do what I did :)

Page 88: Microservices: from dream to reality in an hour

The tradeoff

Duplication of code

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Decoupling

Page 89: Microservices: from dream to reality in an hour

The tradeoff

Duplication of code

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Compile-time independence

Page 90: Microservices: from dream to reality in an hour

If this tradeoff is hurting, your domain model is too coupled.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 91: Microservices: from dream to reality in an hour

If this tradeoff is hurting, your domain model is too coupled.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Have your microservices got the right granularity?

Page 92: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 93: Microservices: from dream to reality in an hour

“Does this domain model make sense?”

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 94: Microservices: from dream to reality in an hour

“Does this domain model make sense?”

“Not really.”

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 95: Microservices: from dream to reality in an hour

“Does this domain model make sense?”

“Not really.”

“Does decomposing a system of this size into microservices actually make sense?”

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 96: Microservices: from dream to reality in an hour

“Does this domain model make sense?”

“Not really.”

“Does decomposing a system of this size into microservices actually make sense?”

“Well, no.”

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 97: Microservices: from dream to reality in an hour

The right granularity may be “monolith.”

“Does this domain model make sense?”

“Not really.”

“Does decomposing a system of this size into microservices actually make sense?”

“Well, no.”

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 98: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 99: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

HTTP HTTP

HTTP

Page 100: Microservices: from dream to reality in an hour

Remember the distributed computing

fallacies.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

HTTP HTTP

HTTP

Page 101: Microservices: from dream to reality in an hour

Remember the distributed computing

fallacies.

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

HTTP HTTP

HTTP

Really

Page 102: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 103: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 104: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 105: Microservices: from dream to reality in an hour

Complexity

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 106: Microservices: from dream to reality in an hour

WebTarget cat = client.target(“http://raspberrypiclearcase.local”);WebTarget auth = client.target(“http://raspberrypi2.local”);WebTarget scoring = client.target(“http://raspberrypiredcase.local”);

Page 107: Microservices: from dream to reality in an hour

This is robust code, right?

WebTarget cat = client.target(“http://raspberrypiclearcase.local”);WebTarget auth = client.target(“http://raspberrypi2.local”);WebTarget scoring = client.target(“http://raspberrypiredcase.local”);

Page 108: Microservices: from dream to reality in an hour

Network topology

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

ip address: ?.?.?.?

ip address: ?.?.?.?

ip address: ?.?.?.?

ip address: ?.?.?.?

ip address: ?.?.?.?

Page 109: Microservices: from dream to reality in an hour

ip address: special

ip address: precious

ip address: bespoke

ip address: lovely

ip address: fave

Network topology

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 110: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 111: Microservices: from dream to reality in an hour

Disposability

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 112: Microservices: from dream to reality in an hour

Disposability

Say no to snowflake servers

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 113: Microservices: from dream to reality in an hour

Disposability

Say no to snowflake servers

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 114: Microservices: from dream to reality in an hour

Scaling

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

ip address: special

ip address: precious

ip address: bespoke

ip address: fave

ip address: lovely

Page 115: Microservices: from dream to reality in an hour

Scaling

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

ip address: special

ip address: precious

ip address: bespoke

ip address: fave

ip address: lovely

ip address: lonely

Page 116: Microservices: from dream to reality in an hour

Scaling

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

ip address: special

ip address: precious

ip address: bespoke

ip address: fave

ip address: lovely

ip address: lonely

Page 117: Microservices: from dream to reality in an hour

Service discovery

• Kubernetes

• Apache Zookeeper + Curator

• Eureka

• etcd

• Consul

• Bluemix Service Discovery

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 118: Microservices: from dream to reality in an hour

Service discovery

• Kubernetes

• Apache Zookeeper + Curator

• Eureka

• etcd

• Consul

• Bluemix Service Discovery

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Docker

Page 119: Microservices: from dream to reality in an hour

Service discovery

• Kubernetes

• Apache Zookeeper + Curator

• Eureka

• etcd

• Consul

• Bluemix Service Discovery

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Docker

Java

Page 120: Microservices: from dream to reality in an hour

Service discovery

• Kubernetes

• Apache Zookeeper + Curator

• Eureka

• etcd

• Consul

• Bluemix Service Discovery

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

AWS

Docker

Java

SoftLayer

Page 121: Microservices: from dream to reality in an hour

Service discovery

• Kubernetes

• Apache Zookeeper + Curator

• Eureka

• etcd

• Consul

• Bluemix Service Discovery

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

AWS

CoreOS

Docker

Java

SoftLayer

Page 122: Microservices: from dream to reality in an hour

Service discovery

• Kubernetes

• Apache Zookeeper + Curator

• Eureka

• etcd

• Consul

• Bluemix Service Discovery

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

AWS

CoreOS

Docker

Java

DNS HTTP Java

SoftLayer

Page 123: Microservices: from dream to reality in an hour

Service discovery

• Kubernetes

• Apache Zookeeper + Curator

• Eureka

• etcd

• Consul

• Bluemix Service Discovery

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

AWS

CoreOS

Docker

Java

DNS HTTP Java

SoftLayer

Bluemix :)

Page 124: Microservices: from dream to reality in an hour

Cat-astrophe

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 125: Microservices: from dream to reality in an hour

Cat-astrophe

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

REST REST

REST

Page 126: Microservices: from dream to reality in an hour

Cat-astrophe

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Consul

REST REST

REST

Page 127: Microservices: from dream to reality in an hour

Cat-astrophe

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Discovery

Discovery

Discovery

Consul

REST REST

REST

Page 128: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 129: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

<featureManager> <feature>jaxrs-1.0</feature>

Page 130: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

<featureManager> <feature>jaxrs-1.0</feature>

Server configuration

Page 131: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

<featureManager> <feature>jaxrs-1.0</feature><feature>usr:discovery</feature>

<consul server="catastrophe.consul" />

Server configuration

Page 132: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

<featureManager> <feature>jaxrs-1.0</feature><feature>usr:discovery</feature>

<consul server="catastrophe.consul" />

Wouldn’t this be nice?

Server configuration

Page 133: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 134: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 135: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Liberty extension

(“user feature”)

Page 136: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Liberty extension

(“user feature”)

Page 137: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Auto-publishes

REST endpoints

Liberty extension

(“user feature”)

Page 138: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Auto-publishes

REST endpoints

Liberty extension

(“user feature”)

I

WebSphere Liberty extensibilityhttps://github.com/WASdev/sample.consulservicediscovery

Page 139: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

–Johnny Appleseed

“Type a quote here.”

Consul view of the Catastrophe services

Page 140: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 141: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 142: Microservices: from dream to reality in an hour

You need DevOps

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 143: Microservices: from dream to reality in an hour

You need 100% automation

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

An SD card is not devops :)

Page 144: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

–Johnny Appleseed

“Type a quote here.”

Page 145: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

–Johnny Appleseed

“Type a quote here.”

Page 146: Microservices: from dream to reality in an hour

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 147: Microservices: from dream to reality in an hour

http://catastrophe-web.mybluemix.net/

Page 148: Microservices: from dream to reality in an hour

Who can draw the best cat? http://catastrophe-web.mybluemix.net/

(I have THINK hats for the highest scores!)

Page 149: Microservices: from dream to reality in an hour

What if I want to run on both pis and the cloud?

Page 150: Microservices: from dream to reality in an hour

What if I want to run on both pis and the cloud?

You need Hybrid Cloud!

Page 151: Microservices: from dream to reality in an hour

What if I want to run on both pis and the cloud?

You need Hybrid Cloud!

–Johnny Appleseed

“Type a quote here.”

Page 152: Microservices: from dream to reality in an hour
Page 153: Microservices: from dream to reality in an hour
Page 154: Microservices: from dream to reality in an hour

Are we done?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 155: Microservices: from dream to reality in an hour

Are we done?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Discovery

Discovery

Discovery

Consul

REST REST

REST

Page 156: Microservices: from dream to reality in an hour

Have we tested it?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 157: Microservices: from dream to reality in an hour

How de we handle failures?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 158: Microservices: from dream to reality in an hour

Are we actually decoupled?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 159: Microservices: from dream to reality in an hour

Are we actually decoupled?

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 160: Microservices: from dream to reality in an hour

So remember…

• Decoupling is more than just HTTP communication

• Some of your microservices will fail. Be resilient.

• I ♥ WebSphere Liberty

• JEE is great for microservices (especially with microprofile)

• Hybrid cloud makes a lot of cool stuff possible

@holly_cumminshttp://ibm.biz/bluemixgaragelondon

Page 161: Microservices: from dream to reality in an hour

IBM _ 74

Thank You!

http://ibm.biz/bluemixgaragelondon http://github.com/holly-cummins/catastrophe-microservices

Holly Cummins | @holly_cummins


Recommended