Weitere ähnliche Inhalte
Ähnlich wie Scalable, Available and Reliable Cloud Applications with PaaS and Microservices (20)
Mehr von David Currie (6)
Kürzlich hochgeladen (20)
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
- 1. © 2015 IBM Corporation
David Currie – Senior Software Engineer
3rd February 2015
Scalable, Available and
Reliable Cloud Applications
with PaaS and Microservices
- 2. © 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
- 3. © 2015 IBM Corporation
david_currie@uk.ibm.com @dcurrie www.slideshare.net/davidcurrie
- 6. © 2015 IBM Corporation
WebSphere
Liberty Profile
WebSphere
eXtreme
Scale
(WXS)
JAX-RS
ServletFilter
DataService
Facade
ServiceFacade
Data Tier
App
Specific
Caching
WXS
Client
nginx
Hybrid
Worklight
App
Browser
App
jQuery/DOJO
jQuery/DOJO
nginx
IBM
Worklight
http://bit.ly/
acmeairblog
- 7. © 2015 IBM Corporation
programmableweb.com 2012
4.3 billion API calls/day
Peak Performance
and Scale
- 8. © 2015 IBM Corporation
Operational
Visibility
- 9. © 2015 IBM Corporation
DevOps
HA & DR
Elastic scaling
- 10. © 2015 IBM Corporation
http://techblog.netflix.com
http://netflix.github.io
- 11. © 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
- 13. © 2015 IBM Corporation
Monolithic
Application
Modularity
- 14. © 2015 IBM Corporation
Monolithic
Application
Scaling
- 15. © 2015 IBM Corporation
Monolithic
Application
Failing
- 16. © 2015 IBM Corporation
Monolithic
Application
Failing
- 17. © 2015 IBM Corporation
Monolithic
Application
Failed
- 18. © 2015 IBM Corporation
Monolithic
Application
Update
- 19. © 2015 IBM Corporation
Monolithic
Application
Revolution
- 20. © 2015 IBM Corporation
Monolithic
Application
Develop
- 21. © 2015 IBM Corporation
Microservices
Application
- 22. © 2015 IBM Corporation
Microservices
Application
Interactions
- 23. © 2015 IBM Corporation
Microservices
Application
Scaled
- 24. © 2015 IBM Corporation
Microservices
Application
Evolution
- 25. © 2015 IBM Corporation
Service
Discovery
Eureka
- 26. © 2015 IBM Corporation
Service
Invocation
Ribbon
- 27. © 2015 IBM Corporation
Hope is not a
design method
“
”Michael Nygard, Release It!
- 28. © 2015 IBM Corporation
App Container
UserRequest
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
- 29. © 2015 IBM Corporation
UserRequest
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 ContainerFAILURE!
- 30. © 2015 IBM Corporation
UserRequest
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
UserRequest
UserRequest
UserRequest
UserRequest
App Container
THREAD
STARVATION!
- 31. © 2015 IBM Corporation
UserRequest
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
FAILFAST
- 32. © 2015 IBM Corporation
Circuit
Breaker
Hystrix
https://www.flickr.com/photos/leafbug/409950515 CC-BY-ND 2.0
- 34. © 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
- 35. © 2015 IBM Corporation
Small download
Low memory usage
Simple configuration
Fast start up
Easy access
Free tooling
http://wasdev.net
- 36. © 2015 IBM Corporation
GitHub
Cloud Foundry
NetflixOSS
Zero Turnaround
Jenkins
Opscode
Chef
Apache Maven
IBM UrbanCode Deploy
Gradle
Apache Ant
IntelliJ IDEA
WebSphere
Developer Tools
Liberty
http://wasdev.net
http://wasdev.github.io
Docker
- 37. © 2015 IBM Corporation
Liberty Core
Base, Express
ND
z/OS
Application
Manager
HTTP 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
- 38. © 2014 IBM Corporation38
dcurrie@shotover /d/libertydemo (master)
$ cat > gradle.properties
wlpDir=d:/libertydemo/wlp
dcurrie@shotover /d/libertydemo (master)
$ gradlew build
BUILD SUCCESSFUL
Total time: 1 mins 4.741 secs
dcurrie@shotover /d/libertydemo (master)
$ ls -s ws-noss/build/libs/ws-netflix-oss_1.0.0.esa
5727 ws-noss/build/libs/ws-netflix-oss_1.0.0.esa
https://github.com/WASdev/sample.netflixoss.wlp
- 39. © 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>
- 40. © 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
- 41. © 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
- 42. © 2015 IBM Corporation
IBM Bluemix
Builds on a polyglot Platform-as-a-Service
- 43. © 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
- 44. © 2015 IBM Corporation
IBM Bluemix
Private registry +
Hosted Docker runtime
- 46. © 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!
- 48. © 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 month
credits for 12 months on their Softlayer and/or Bluemix account
IBM Global Entrepreneur Program
Sign up here: ibm.com/isv/startup
IBM Global Entrepreneur Program
for Cloud Startups – apply for credits
Sign up here: ibm.biz/CloudStartup
IBM Analytics Starter Program
Sign-up here: ibm.biz/analyticsstarter
- 50. © 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