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.

Cloudy Open Source and DevOps

3,625 views

Published on

The video for this talk is at http://blip.tv/file/4986329.

Published in: Technology, Education
  • I'd like to think that DevOps tooling extends more on both sides. All the way to SCM and CI on the front-end, and to cloud provisioning and monitoring tools on the back-end. The idea is that if the loop get shorter, it pulls the Dev/QA/Ops peeps together (with or without culture :)).
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Cloudy Open Source and DevOps

  1. 1. Cloudy Open Source and DevOpsMatt O’Keefe@mattokeefehttp://www.slideshare.net/mokeefe<br />
  2. 2. About Me<br />Architect at Morningstar, Inc.<br />Liaison Between Development and Operations<br />Meetup Organizer<br />Morningstar Tech Talks<br />Cassandra Chicago<br />DevOps Chicago<br />Contributor at DevOps.com<br />
  3. 3. Why Cloud Computing?<br />Scalability<br />The ability of something, especially a computer  system, to adapt to increased demands<br />
  4. 4. Scalability at Morningstar<br />26 countries<br />3,165 employees<br />7.4 mil individual investors served<br />245,000 financial advisors served<br />4,200 institutional clients served<br />70,000 print subscribers<br />18 data centers<br />1,126 physical servers<br />2,706 virtual servers<br />4,104 vCPUs<br />383 TB SAN raw storage<br />491 TB direct attached raw storage<br />27 Systems Engineers<br />
  5. 5. Physical Server to Engineer Ratio<br />Morningstar (B.C. (Before Cloud)) – 42:1<br />Amazon EC2 – 266:1<br />Microsoft – 1,000:1<br />Google – 10,000:1<br />
  6. 6. Cloud Computing<br />http://www.bitcurrent.com/future-of-computing-forecast-calls-for-partly-cloudy/<br />
  7. 7. What is Cloud Computing?<br />
  8. 8. NIST Special Publication 800-145<br />
  9. 9. A Simple Definition<br />Cloud Computing is a paradigm shift toward automation and utility computing. It features on-demand, self-service, pay-as-you-go, seemingly infinite capacity of computing resources. Anyone with an Internet connection can obtain anything-as-a-service.<br />
  10. 10. Types of Service Offerings<br />http://www.oracle.com/us/technologies/036500.pdf<br />
  11. 11. Ecosystem<br />http://cloud.com/<br />
  12. 12. What is not Cloud Computing?<br />
  13. 13. Cloudwashing<br />http://www.dilbert.com/strips/comic/2011-01-07/<br />
  14. 14. Cloud Economics<br />Jevons Paradox<br />technological progress that increases the efficiency with which a resource is used tends to increase (rather than decrease) the rate of consumption of that resource <br />HT @swardley<br />On Demand Servers can be relatively expensive<br />Large EC2 instance: $0.34/hr = $248/mo = $2977/yr<br />
  15. 15. Why Cloud Computing?<br />
  16. 16. Automation<br />“We own just four computers… our laptops” - @jedberg – Reddit.com<br />http://www.flickr.com/photos/tensafefrogs/2536062254/<br />
  17. 17. Elasticity<br />
  18. 18. Increased Accuracy and Speed<br />
  19. 19. Open Source IaaS<br />
  20. 20. Cloud.com Architecture<br />
  21. 21. Cloud.com CloudStack IaaS demo<br />
  22. 22. APIsAgile Operations, Infrastructure as Code<br />http://ldsphilosopher.wordpress.com/2008/09/15/legos-make-better-societies/<br />
  23. 23. DevOps is About CAMS<br />Culture<br />Automation<br />Measurement<br />Sharing<br />http://www.opscode.com/blog/2010/07/16/what-devops-means-to-me/<br />
  24. 24. Culture<br />http://dev2ops.org/blog/2010/2/22/what-is-devops.html<br />
  25. 25. Tools<br />http://dev2ops.org/blog/2010/2/22/what-is-devops.html<br />
  26. 26. Deployments<br />http://dev2ops.org/blog/2010/2/22/what-is-devops.html<br />
  27. 27. Results<br />http://dev2ops.org/blog/2010/2/22/what-is-devops.html<br />
  28. 28. Business Agility<br />http://dev2ops.org/blog/2010/2/22/what-is-devops.html<br />
  29. 29. You Build It, You Run It<br />
  30. 30. Corollary<br />“For practice DevOps I recommend first follow cloud expert and devops expert on Twitter. Next step is automate bulls shit out of everything.”<br /> - @DEVOPS_BORAT<br />http://devops.com/2011/03/22/exclusive-interview-with-devops_borat/<br />
  31. 31. DevOps is About CAMS<br />Culture<br />Automation<br />Measurement<br />Sharing<br />http://www.opscode.com/blog/2010/07/16/what-devops-means-to-me/<br />
  32. 32. DevOps Toolchain<br />
  33. 33. Continuous Delivery<br />
  34. 34. Don’t Do This<br />http://gcaptain.com/ital-florida-container-casualties<br />
  35. 35. Do This<br />http://www.wallpaperbase.com/wallpapers/photography/speedboat/speed_boat_1.jpg<br />
  36. 36. Don’t Be a Cowboy<br />http://ilovepwnage.com/video.php?v=ODA3NQ==<br />
  37. 37. Be a Luger<br />http://gazetteolympics.freedomblogging.com/files/2009/12/brian-martin-photo.jpg<br />
  38. 38. DevOps is About CAMS<br />Culture<br />Automation<br />Measurement<br />Sharing<br />http://www.opscode.com/blog/2010/07/16/what-devops-means-to-me/<br />
  39. 39. Anticipate Failure<br />
  40. 40. Monitoring as an Enabler<br />http://codeascraft.etsy.com/2010/12/08/track-every-release/<br />
  41. 41. Open Source Monitoring<br />
  42. 42. Instrumentation<br />ERMA – Extremely Reusable Monitoring API<br />https://github.com/erma/erma<br />
  43. 43. Monitors<br />
  44. 44. Using EventMonitors<br />protected void doValidate(RequestContext context,<br /> Object formObject, Errors errors) throws Exception {<br /> super.doValidate(context, formObject, errors);<br /> if (errors.hasErrors()) {<br />EventMonitor validationMonitor =<br /> new EventMonitor("ValidationErrors");<br /> validationMonitor.set("errors", errors.getAllErrors());<br /> validationMonitor.fire();<br /> }<br />}<br />
  45. 45. CompositeMonitors<br />
  46. 46. Using TransactionMonitors<br />public Hotel findHotelById(Long id) {<br />TransactionMonitor monitor =<br /> new TransactionMonitor(getClass(), "findHotelById");<br /> monitor.set(“id”, id);<br /> try {<br /> Hotel hotel = em.find(Hotel.class, id);<br />monitor.succeeded();<br /> return hotel;<br /> } catch (RuntimeException e) {<br />monitor.failedDueTo(e);<br /> throw e;<br /> } finally {<br />monitor.done();<br /> }<br />}<br />
  47. 47. Annotations<br />@Monitored<br />public interface UnderpantsGnomes {<br /> void collectUnderpants();<br /> void ?();<br /> void profit(); <br />} <br />
  48. 48. Spring/AspectJ<br /><aop:config><br /> <aop:aspect id="transactionMonitorActionAspect" <br /> ref="transactionMonitorActionAdvice"><br /> <aop:pointcut id="transactionMonitorActionPointcut“ <br /> expression="target(org.springframework.webflow.execution.Action)<br /> and args(context)"/><br /> <aop:around pointcut-ref="transactionMonitorActionPointcut“<br /> method="invoke"/><br /> </aop:aspect><br /></aop:config><br /><bean id="transactionMonitorActionAdvice" class=<br /> "c.o.webframework.aop.aspectj.TransactionMonitorActionAdvice"/><br />
  49. 49. Event Patterns<br />wl|httpIn_/shop/airsearch/search/air/pageView_airResults|13180<br /> wl|RoundTripAirSearchAction.resolveRoundTripAirLocations|136<br /> wl|jiniOut_LocationFinderService_findAirports|84<br />tbs-shop-13.31|jiniIn_LocationFinderService_findAirports|31<br /> tbs-shop-13.31|jiniOut_AirportLookupService_findLocationByIATACode|9<br /> market-8.4|jiniIn_AirportLookupService_findLocationByIATACode|3<br />tbs-shop-13.31|jiniOut_AirportLookupService_findLocationByIATACode|15<br /> market-8.4|jiniIn_AirportLookupService_findLocationByIATACode|10<br />wl|jiniOut_LocationFinderService_findAirports|48<br />tbs-shop-13.31|jiniIn_LocationFinderService_findAirports|16<br /> tbs-shop-13.31|jiniOut_AirportLookupService_findLocationByIATACode|14<br /> market-8.4|jiniIn_AirportLookupService_findLocationByIATACode|10<br />wl|AirSearchExecuteAction.search|10422<br /> wl|jiniOut_ShopService_createResultSet|9798<br />tbs-shop-13.31|jiniIn_ShopService_createResultSet|9601<br /> tbs-shop-13.31|com.orbitz.tbs.host.shop.ShopServiceImpl.createResultSet.AIR|9361<br /> tbs-shop-13.31|com.orbitz.tbs.spi.SpiShopService.createResultSet.AIR|9333<br /> tbs-shop-13.31|jiniOut_LowFareSearchService_execute|9175<br />air-search-7.2.1|jiniIn_LowFareSearchService_execute|9094<br /> air-search-7.2.1|LowFareSearchRequest|9048<br /> air-search-7.2.1|com.orbitz.afo.lib.search.service.LowFareSearchServiceImpl|9038<br /> air-search-7.2.1|com.orbitz.afo.lib.search.service.LowFareSearchServiceImpl.execute|9037<br />wl|jiniOut_ShopService_viewResultSet|607<br />tbs-shop-13.31|jiniIn_ShopService_viewResultSet|486<br />wl|pageView_airResults<br /> wl|jsp.render.air200.page|2475<br />
  50. 50. DevOps is About CAMS<br />Culture<br />Automation<br />Measurement<br />Sharing<br />http://www.opscode.com/blog/2010/07/16/what-devops-means-to-me/<br />
  51. 51. Feedback Loop<br />
  52. 52. Graphite demo<br />
  53. 53. Fast Data Analytics using Rocksteady<br />http://code.google.com/p/rocksteady/<br />
  54. 54. Thanks!<br /> Stay tuned for more at<br />

×