scalable, available and reliable cloud applications …...osgi.jpa appsecurity ssl localconnector...

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

Upload: others

Post on 22-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

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

Page 4: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Page 5: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Page 6: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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

ngin

x

Hybrid

Worklight

App

Browser

App

jQuery/DOJO

jQuery/DOJO

ngin

x

IBM

Worklight

http://bit.ly/acmeairblog

Page 7: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

programmableweb.com 2012

4.3 billion API calls/day

Peak Performance

and Scale

Page 8: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Operational

Visibility

Page 9: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

DevOps

HA & DR

Elastic scaling

Page 10: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

http://techblog.netflix.com

http://netflix.github.io

Page 11: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

2012

2013

2014

SPECjEnterprise

Acme Air Cloud/Mobile

Sample/Benchmark born

Sample application

cloud prize work

Acme Air run

on IBM Cloud at

“Web Scale”

Portability cloud

prize work

https://github.com/EmergingTechnologyInstitute

Page 12: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Page 13: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Modularity

Page 14: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Scaling

Page 15: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Failing

Page 16: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Failing

Page 17: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Failed

Page 18: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Update

Page 19: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Revolution

Page 20: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Monolithic

Application

Develop

Page 21: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Microservices

Application

Page 22: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Microservices

Application

Interactions

Page 23: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Microservices

Application

Scaled

Page 24: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Microservices

Application

Evolution

Page 25: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Service

Discovery

Eureka

Page 26: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Service

Invocation

Ribbon

Page 27: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Hope is not a

design method“

”Michael Nygard, Release It!

Page 28: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

App Container

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

Page 29: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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

App ContainerF

AIL

UR

E!

Page 30: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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

Use

r R

eq

ue

st

Use

r R

eq

ue

st

Use

r R

eq

ue

st

Use

r R

eq

ue

st

App ContainerT

HR

EA

D

ST

AR

VA

TIO

N!

Page 31: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Use

r R

eq

ue

st

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

FA

IL F

AS

T

Page 32: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Circuit

Breaker

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

Page 33: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Page 34: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Container

Libraries

App Property File

DB

Runtime

URL

Application

DynamicLongProperty timeToWait = DynamicPropertyFactory.getInstance().

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

Dynamic

Configuration

Archaius

Page 35: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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

Liberty

Features

Page 38: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

IBM Bluemix

Builds on a polyglot Platform-as-a-Service

Page 43: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

IBM Bluemix

Private registry +

Hosted Docker runtime

Page 45: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation45

Page 46: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Page 48: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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 …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 2015 IBM Corporation

Page 50: Scalable, Available and Reliable Cloud Applications …...osgi.jpa appSecurity ssl localConnector beanValidation ejbLite cdi managedBeans oauth collectiveMember ldapRegistry webCache

© 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