Cloudy Open Source and DevOps

3,594 views

Published on

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

Published in: Technology, Education
1 Comment
2 Likes
Statistics
Notes
  • 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
No Downloads
Views
Total views
3,594
On SlideShare
0
From Embeds
0
Number of Embeds
103
Actions
Shares
0
Downloads
34
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

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 />

×