50
© 2015 IBM Corporation David Currie Senior Software Engineer 3 rd February 2015 Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

Embed Size (px)

Citation preview

Page 1: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

David Currie – Senior Software Engineer

3rd February 2015

Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

Page 2: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Important Disclaimers

THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY.

WHILST EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION

CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED.

ALL PERFORMANCE DATA INCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED IN A CONTROLLED

ENVIRONMENT. YOUR OWN TEST RESULTS MAY VARY BASED ON HARDWARE, SOFTWARE OR INFRASTRUCTURE

DIFFERENCES.

ALL DATA INCLUDED IN THIS PRESENTATION ARE MEANT TO BE USED ONLY AS A GUIDE.

IN ADDITION, THE INFORMATION CONTAINED IN THIS PRESENTATION IS BASED ON IBM’S CURRENT PRODUCT

PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM, WITHOUT NOTICE.

IBM AND ITS AFFILIATED COMPANIES SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE

OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION.

NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF:

- CREATING ANY WARRANT OR REPRESENTATION FROM IBM, ITS AFFILIATED COMPANIES OR ITS OR THEIR

SUPPLIERS AND/OR LICENSORS

Page 3: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

[email protected] @dcurrie www.slideshare.net/davidcurrie

Page 4: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Page 5: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Page 6: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

WebSphere

Liberty Profile

WebSphere

eXtreme

Scale

(WXS)

JA

X-R

S

Se

rvle

t Filte

r

Data

Se

rvic

e

Fa

ca

de

Se

rvic

e F

aca

de

Data Tier

App

Specific

Caching

WXS

Client

ng

inx

Hybrid

Worklight

App

Browser

App

jQuery/DOJO

jQuery/DOJO

ng

inx

IBM

Worklight

http://bit.ly/acmeairblog

Page 7: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

programmableweb.com 2012

4.3 billion API calls/day

Peak Performanceand Scale

Page 8: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Operational Visibility

Page 9: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

DevOpsHA & DRElastic scaling

Page 10: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

http://techblog.netflix.com

http://netflix.github.io

Page 11: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

2012

2013

2014

SPECjEnterprise

Acme Air Cloud/MobileSample/Benchmark born

Sample applicationcloud prize work

Acme Air runon IBM Cloud at“Web Scale”

Portability cloudprize work

https://github.com/EmergingTechnologyInstitute

Page 12: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplication

Page 13: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplicationModularity

Page 14: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplication

Scaling

Page 15: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplication

Failing

Page 16: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplication

Failing

Page 17: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplication

Failed

Page 18: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplication

Update

Page 19: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplicationRevolution

Page 20: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MonolithicApplication

Develop

Page 21: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MicroservicesApplication

Page 22: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MicroservicesApplication

Interactions

Page 23: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MicroservicesApplication

Scaled

Page 24: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

MicroservicesApplication

Evolution

Page 25: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

ServiceDiscovery

Eureka

Page 26: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

ServiceInvocation

Ribbon

Page 27: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Hope is not a design method

“”Michael Nygard, Release It!

Page 28: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

App Container

User

Request

Dependency A Dependency B Dependency C

Dependency D Dependency F

Dependency G Dependency I

Dependency J Dependency L

Dependency E

Dependency H

Dependency K

Dependency M Dependency N Dependency O

Page 29: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

User

Request

Dependency A Dependency B Dependency C

Dependency D Dependency F

Dependency G Dependency I

Dependency J Dependency L

Dependency E

Dependency H

Dependency K

Dependency M Dependency N Dependency O

App ContainerFA

ILU

RE!

Page 30: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Use

r R

eq

ue

st

Dependency A Dependency B Dependency C

Dependency D Dependency F

Dependency G Dependency I

Dependency J Dependency L

Dependency E

Dependency H

Dependency K

Dependency M Dependency N Dependency O

User

Request

Use

r R

eq

ue

st

Use

r R

eq

ue

st

Use

r R

eq

ue

st

App ContainerTH

REA

D

STA

RV

ATIO

N!

Page 31: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

User

Request

Dependency A Dependency B Dependency C

Dependency D Dependency F

Dependency G Dependency I

Dependency E

Dependency H

Dependency A

(5 Threads)

Dependency B

(5 Threads)

Dependency C

(10 Threads)

Dependency D

(5 Threads)

Dependency E

(10 Threads)

Dependency F

(5 Threads)

Dependency G

(10 Threads)

Dependency H

(5 Threads)

App Container

FAIL

FA

ST

Page 32: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

CircuitBreakerHystrix

https://www.flickr.com/photos/leafbug/409950515 CC-BY-ND 2.0

Page 33: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Page 34: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Container

Libraries

App Property File

DB

Runtime

URL

Application

DynamicLongProperty timeToWait = DynamicPropertyFactory.getInstance().

getLongProperty(“mywebapp.lock.waitTime", 1000);timeToWait.get();

DynamicConfiguration

Archaius

Page 35: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Small download

Low memory usage

Simple configuration

Fast start up

Easy access

Free tooling

http://wasdev.net

Page 36: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

GitHub

Cloud Foundry

NetflixOSS

Zero Turnaround

JenkinsOpscode

Chef

Apache Maven

IBM UrbanCode Deploy

Gradle

Apache Ant

IntelliJ IDEA

WebSphere Developer Tools

Liberty

http://wasdev.net

http://wasdev.github.io

Docker

Page 37: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Liberty Core

Base, Express

ND

z/OS

Application

ManagerHTTP TransportFeature Manager

clusterMember

jpaservlet

jsp

jsf

jndi jdbc

sessionDatabasemonitor

wab

blueprint

jaxrs

json

restConnector

osgi.jpa

appSecurity

ssl

localConnector beanValidation

ejbLite cdi managedBeans

oauth collectiveMember ldapRegistry webCache

concurrent wasJmsClient wasJmsServer

wasJmsSecurityjmsMdb

jaxws

wmqJmsClientwsSecurity

mongodb jaxb

collectiveControllerzosSecurity zosTransaction

zosWlm

LibertyFeatures

Page 38: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2014 IBM Corporation38

dcurrie@shotover /d/libertydemo (master) $ cat > gradle.propertieswlpDir=d:/libertydemo/wlpdcurrie@shotover /d/libertydemo (master)$ gradlew build

BUILD SUCCESSFUL

Total time: 1 mins 4.741 secsdcurrie@shotover /d/libertydemo (master)$ ls -s ws-noss/build/libs/ws-netflix-oss_1.0.0.esa5727 ws-noss/build/libs/ws-netflix-oss_1.0.0.esa

https://github.com/WASdev/sample.netflixoss.wlp

Page 39: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation39

dcurrie@shotover /d/libertydemo/wlp (master) $ featureManager install netflixoss.wlp_1.0.0.esa

server.xml

<featureManager><feature>jsp-2.2</feature><feature>usr:netflixoss.wlp</feature>

</featureManager>

Page 40: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation40

DynamicLongProperty timeToWait = DynamicPropertyFactory.getInstance().

getLongProperty(“mywebapp.lock.waitTime", 1000);timeToWait.get();

<archaius><myWebapp><lock><waitTime>500</waitTime></lock></myWebapp>

</archaius>

server.xml

Page 41: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation41

public class MyCommand extends HystrixCommand<String> {protected String run() { // remote call }protected String getFallback() { // local fallback }

}String result = new MyCommand().execute();

<hystrix><command><MyCommand><execution><isolation><thread><timeoutInMilliseconds>10000</timeoutInMilliseconds>

</thread></isolation></execution></MyCommand></command>

</hystrix>

server.xml

Page 42: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

IBM Bluemix

Builds on a polyglot Platform-as-a-Service

Page 43: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

IBM Bluemix

Security

Services

Web and

application

services

Cloud

Integration

Services

Mobile

Services

Database

services

Big Data

services

Internet of

Things

Services

Watson

Services

DevOps

Services

IBM,

Third Party

and Community

Services

Page 44: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

IBM Bluemix

Private registry +

Hosted Docker runtime

Page 45: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation45

Page 46: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Winner will be found at IBM’s booth

4th of February at 15.00

Sign up here: ibm.biz/bluemix-jfokus

Meet IBM at Jfokus!

Page 47: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Page 48: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

IBM Global Entrepreneur offer Startups resources including free software and technical experts, exposure to 600+ expert mentors, plus access to a global network of clients.

Also eligible startups can apply for getting between 1 K USD to 10 K USD a monthcredits for 12 months on their Softlayer and/or Bluemix account

IBM Global Entrepreneur ProgramSign up here: ibm.com/isv/startup

IBM Global Entrepreneur Program

for Cloud Startups – apply for creditsSign up here: ibm.biz/CloudStartup

IBM Analytics Starter ProgramSign-up here: ibm.biz/analyticsstarter

Page 49: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Page 50: Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

© 2015 IBM Corporation

Copyright and Trademarks

© IBM Corporation 2015. All Rights Reserved.

IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International

Business Machines Corp., and registered in many jurisdictions worldwide.

Other product and service names might be trademarks of IBM or other companies.

A current list of IBM trademarks is available on the Web – see the IBM “Copyright and

trademark information” page at URL: www.ibm.com/legal/copytrade.shtml

50