Upload
david-currie
View
542
Download
1
Tags:
Embed Size (px)
Citation preview
© 2015 IBM Corporation
David Currie – Senior Software Engineer
3rd February 2015
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
© 2015 IBM Corporation
[email protected] @dcurrie www.slideshare.net/davidcurrie
© 2015 IBM Corporation
© 2015 IBM Corporation
© 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
© 2015 IBM Corporation
programmableweb.com 2012
4.3 billion API calls/day
Peak Performanceand Scale
© 2015 IBM Corporation
Operational Visibility
© 2015 IBM Corporation
DevOpsHA & DRElastic scaling
© 2015 IBM Corporation
http://techblog.netflix.com
http://netflix.github.io
© 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
© 2015 IBM Corporation
MonolithicApplication
© 2015 IBM Corporation
MonolithicApplicationModularity
© 2015 IBM Corporation
MonolithicApplication
Scaling
© 2015 IBM Corporation
MonolithicApplication
Failing
© 2015 IBM Corporation
MonolithicApplication
Failing
© 2015 IBM Corporation
MonolithicApplication
Failed
© 2015 IBM Corporation
MonolithicApplication
Update
© 2015 IBM Corporation
MonolithicApplicationRevolution
© 2015 IBM Corporation
MonolithicApplication
Develop
© 2015 IBM Corporation
MicroservicesApplication
© 2015 IBM Corporation
MicroservicesApplication
Interactions
© 2015 IBM Corporation
MicroservicesApplication
Scaled
© 2015 IBM Corporation
MicroservicesApplication
Evolution
© 2015 IBM Corporation
ServiceDiscovery
Eureka
© 2015 IBM Corporation
ServiceInvocation
Ribbon
© 2015 IBM Corporation
Hope is not a design method
“”Michael Nygard, Release It!
© 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
© 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!
© 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!
© 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
© 2015 IBM Corporation
CircuitBreakerHystrix
https://www.flickr.com/photos/leafbug/409950515 CC-BY-ND 2.0
© 2015 IBM Corporation
© 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
© 2015 IBM Corporation
Small download
Low memory usage
Simple configuration
Fast start up
Easy access
Free tooling
http://wasdev.net
© 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
© 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
© 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
© 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>
© 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
© 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
© 2015 IBM Corporation
IBM Bluemix
Builds on a polyglot Platform-as-a-Service
© 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
© 2015 IBM Corporation
IBM Bluemix
Private registry +
Hosted Docker runtime
© 2015 IBM Corporation45
© 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!
© 2015 IBM Corporation
© 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
© 2015 IBM Corporation
© 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