Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

1,027 views

Published on

Presentation from Jfokus 2015 covering microservices, Netflix OSS, WebSphere Liberty and IBM Bluemix with a bit of Docker on the side.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Scalable, Available and Reliable Cloud Applications with PaaS and Microservices

  1. 1. © 2015 IBM Corporation David Currie – Senior Software Engineer 3rd February 2015 Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
  2. 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. 3. © 2015 IBM Corporation david_currie@uk.ibm.com @dcurrie www.slideshare.net/davidcurrie
  4. 4. © 2015 IBM Corporation
  5. 5. © 2015 IBM Corporation
  6. 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. 7. © 2015 IBM Corporation programmableweb.com 2012 4.3 billion API calls/day  Peak Performance and Scale
  8. 8. © 2015 IBM Corporation  Operational Visibility
  9. 9. © 2015 IBM Corporation  DevOps HA & DR Elastic scaling
  10. 10. © 2015 IBM Corporation http://techblog.netflix.com http://netflix.github.io
  11. 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
  12. 12. © 2015 IBM Corporation Monolithic Application
  13. 13. © 2015 IBM Corporation Monolithic Application Modularity
  14. 14. © 2015 IBM Corporation Monolithic Application Scaling
  15. 15. © 2015 IBM Corporation Monolithic Application Failing 
  16. 16. © 2015 IBM Corporation Monolithic Application Failing 
  17. 17. © 2015 IBM Corporation Monolithic Application Failed  
  18. 18. © 2015 IBM Corporation Monolithic Application Update
  19. 19. © 2015 IBM Corporation Monolithic Application Revolution
  20. 20. © 2015 IBM Corporation Monolithic Application Develop
  21. 21. © 2015 IBM Corporation Microservices Application
  22. 22. © 2015 IBM Corporation Microservices Application Interactions
  23. 23. © 2015 IBM Corporation Microservices Application Scaled
  24. 24. © 2015 IBM Corporation Microservices Application Evolution
  25. 25. © 2015 IBM Corporation Service Discovery Eureka
  26. 26. © 2015 IBM Corporation Service Invocation Ribbon
  27. 27. © 2015 IBM Corporation Hope is not a design method “ ”Michael Nygard, Release It!
  28. 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. 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. 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. 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. 32. © 2015 IBM Corporation Circuit Breaker Hystrix https://www.flickr.com/photos/leafbug/409950515 CC-BY-ND 2.0
  33. 33. © 2015 IBM Corporation
  34. 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. 35. © 2015 IBM Corporation Small download Low memory usage Simple configuration Fast start up Easy access Free tooling http://wasdev.net
  36. 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. 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. 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. 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. 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. 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. 42. © 2015 IBM Corporation IBM Bluemix Builds on a polyglot Platform-as-a-Service
  43. 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. 44. © 2015 IBM Corporation IBM Bluemix Private registry + Hosted Docker runtime
  45. 45. © 2015 IBM Corporation45
  46. 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!
  47. 47. © 2015 IBM Corporation
  48. 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
  49. 49. © 2015 IBM Corporation
  50. 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

×