Cloudy Open Source and DevOps

54
Cloudy Open Source and DevOps Matt O’Keefe @mattokeefe http://www.slideshare.net/mokeefe

description

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

Transcript of Cloudy Open Source and DevOps

Page 1: Cloudy Open Source and DevOps

Cloudy Open Source and DevOpsMatt O’Keefe

@mattokeefehttp://www.slideshare.net/mokeefe

Page 2: Cloudy Open Source and DevOps

About Me

• Architect at Morningstar, Inc.– Liaison Between Development and Operations

• Meetup Organizer– Morningstar Tech Talks– Cassandra Chicago– DevOps Chicago

• Contributor at DevOps.com

Page 3: Cloudy Open Source and DevOps

Why Cloud Computing?

ScalabilityThe ability of something, especially a computer

system, to adapt to increased demands

Page 4: Cloudy Open Source and DevOps

Scalability at Morningstar26 countries

3,165 employees

7.4 mil individual investors served245,000 financial advisors served4,200 institutional clients served

70,000 print subscribers

18 data centers1,126 physical servers2,706 virtual servers

4,104 vCPUs383 TB SAN raw storage

491 TB direct attached raw storage27 Systems Engineers

Page 5: Cloudy Open Source and DevOps

Physical Server to Engineer Ratio

Morningstar (B.C. (Before Cloud)) – 42:1Amazon EC2 – 266:1Microsoft – 1,000:1Google – 10,000:1

Page 6: Cloudy Open Source and DevOps

Cloud Computing

http://www.bitcurrent.com/future-of-computing-forecast-calls-for-partly-cloudy/

Page 7: Cloudy Open Source and DevOps

What is Cloud Computing?

Page 8: Cloudy Open Source and DevOps

NIST Special Publication 800-145

Page 9: Cloudy Open Source and DevOps

A Simple Definition

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.

Page 10: Cloudy Open Source and DevOps

Types of Service Offerings

http://www.oracle.com/us/technologies/036500.pdf

Page 11: Cloudy Open Source and DevOps

Ecosystem

http://cloud.com/

Page 12: Cloudy Open Source and DevOps

What is not Cloud Computing?

Page 13: Cloudy Open Source and DevOps

Cloudwashing

http://www.dilbert.com/strips/comic/2011-01-07/

Page 14: Cloudy Open Source and DevOps

Cloud Economics

• Jevons Paradox– 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

• HT @swardley

• On Demand Servers can be relatively expensive– Large EC2 instance: $0.34/hr = $248/mo = $2977/yr

Page 15: Cloudy Open Source and DevOps

Why Cloud Computing?

Page 16: Cloudy Open Source and DevOps

Automation

http://www.flickr.com/photos/tensafefrogs/2536062254/

“We own just four computers… our laptops” - @jedberg – Reddit.com

Page 17: Cloudy Open Source and DevOps

Elasticity

Page 18: Cloudy Open Source and DevOps

Increased Accuracy and Speed

Data Production15 hrs

QA3 hrs

Production3 hrs

QA15 hrs

Production3 hrs

QA3 hrs

Page 19: Cloudy Open Source and DevOps

Open Source IaaS

Page 20: Cloudy Open Source and DevOps

Cloud.com Architecture

Page 21: Cloudy Open Source and DevOps

Cloud.com CloudStack IaaS demo

Page 22: Cloudy Open Source and DevOps

APIsAgile Operations, Infrastructure as Code

http://ldsphilosopher.wordpress.com/2008/09/15/legos-make-better-societies/

Page 23: Cloudy Open Source and DevOps

DevOps is About CAMS

CultureAutomationMeasurementSharing

http://www.opscode.com/blog/2010/07/16/what-devops-means-to-me/

Page 24: Cloudy Open Source and DevOps

Culture

http://dev2ops.org/blog/2010/2/22/what-is-devops.html

Page 25: Cloudy Open Source and DevOps

Tools

http://dev2ops.org/blog/2010/2/22/what-is-devops.html

Page 26: Cloudy Open Source and DevOps

Deployments

http://dev2ops.org/blog/2010/2/22/what-is-devops.html

Page 27: Cloudy Open Source and DevOps

Results

http://dev2ops.org/blog/2010/2/22/what-is-devops.html

Page 28: Cloudy Open Source and DevOps

Business Agility

http://dev2ops.org/blog/2010/2/22/what-is-devops.html

Page 29: Cloudy Open Source and DevOps

You Build It, You Run It

Page 30: Cloudy Open Source and DevOps

Corollary

“For practice DevOps I recommend first follow cloud expert and devops expert on Twitter. Next step is automate bulls shit out of everything.”- @DEVOPS_BORAT

http://devops.com/2011/03/22/exclusive-interview-with-devops_borat/

Page 31: Cloudy Open Source and DevOps

DevOps is About CAMS

CultureAutomationMeasurementSharing

http://www.opscode.com/blog/2010/07/16/what-devops-means-to-me/

Page 32: Cloudy Open Source and DevOps

DevOps Toolchain

Page 33: Cloudy Open Source and DevOps

Continuous Delivery

Page 34: Cloudy Open Source and DevOps

Don’t Do This

http://gcaptain.com/ital-florida-container-casualties

Page 35: Cloudy Open Source and DevOps

Do This

http://www.wallpaperbase.com/wallpapers/photography/speedboat/speed_boat_1.jpg

Page 36: Cloudy Open Source and DevOps

Don’t Be a Cowboy

http://ilovepwnage.com/video.php?v=ODA3NQ==

Page 37: Cloudy Open Source and DevOps

Be a Luger

http://gazetteolympics.freedomblogging.com/files/2009/12/brian-martin-photo.jpg

Page 38: Cloudy Open Source and DevOps

DevOps is About CAMS

CultureAutomationMeasurementSharing

http://www.opscode.com/blog/2010/07/16/what-devops-means-to-me/

Page 39: Cloudy Open Source and DevOps

Anticipate Failure

Page 40: Cloudy Open Source and DevOps

Monitoring as an Enabler

http://codeascraft.etsy.com/2010/12/08/track-every-release/

Page 41: Cloudy Open Source and DevOps

Open Source Monitoring

Page 42: Cloudy Open Source and DevOps

Instrumentation• ERMA – Extremely Reusable Monitoring API

https://github.com/erma/erma

Page 43: Cloudy Open Source and DevOps

Monitors

Page 44: Cloudy Open Source and DevOps

Using EventMonitors

protected void doValidate(RequestContext context, Object formObject, Errors errors) throws Exception {

super.doValidate(context, formObject, errors);

if (errors.hasErrors()) { EventMonitor validationMonitor = new EventMonitor("ValidationErrors"); validationMonitor.set("errors", errors.getAllErrors()); validationMonitor.fire(); }}

Page 45: Cloudy Open Source and DevOps

CompositeMonitors

Page 46: Cloudy Open Source and DevOps

Using TransactionMonitors

public Hotel findHotelById(Long id) { TransactionMonitor monitor = new TransactionMonitor(getClass(), "findHotelById"); monitor.set(“id”, id); try { Hotel hotel = em.find(Hotel.class, id); monitor.succeeded(); return hotel; } catch (RuntimeException e) { monitor.failedDueTo(e); throw e; } finally { monitor.done(); }}

Page 47: Cloudy Open Source and DevOps

Annotations

@Monitoredpublic interface UnderpantsGnomes { void collectUnderpants(); void ?(); void profit(); }

Page 48: Cloudy Open Source and DevOps

Spring/AspectJ

<aop:config> <aop:aspect id="transactionMonitorActionAspect" ref="transactionMonitorActionAdvice"> <aop:pointcut id="transactionMonitorActionPointcut“ expression="target(org.springframework.webflow.execution.Action) and args(context)"/> <aop:around pointcut-ref="transactionMonitorActionPointcut“ method="invoke"/> </aop:aspect></aop:config>

<bean id="transactionMonitorActionAdvice" class= "c.o.webframework.aop.aspectj.TransactionMonitorActionAdvice"/>

Page 49: Cloudy Open Source and DevOps

Event Patternswl|httpIn_/shop/airsearch/search/air/pageView_airResults|13180 wl|RoundTripAirSearchAction.resolveRoundTripAirLocations|136 wl|jiniOut_LocationFinderService_findAirports|84 tbs-shop-13.31|jiniIn_LocationFinderService_findAirports|31 tbs-shop-13.31|jiniOut_AirportLookupService_findLocationByIATACode|9 market-8.4|jiniIn_AirportLookupService_findLocationByIATACode|3 tbs-shop-13.31|jiniOut_AirportLookupService_findLocationByIATACode|15 market-8.4|jiniIn_AirportLookupService_findLocationByIATACode|10 wl|jiniOut_LocationFinderService_findAirports|48 tbs-shop-13.31|jiniIn_LocationFinderService_findAirports|16 tbs-shop-13.31|jiniOut_AirportLookupService_findLocationByIATACode|14 market-8.4|jiniIn_AirportLookupService_findLocationByIATACode|10 wl|AirSearchExecuteAction.search|10422 wl|jiniOut_ShopService_createResultSet|9798 tbs-shop-13.31|jiniIn_ShopService_createResultSet|9601 tbs-shop-13.31|com.orbitz.tbs.host.shop.ShopServiceImpl.createResultSet.AIR|9361 tbs-shop-13.31|com.orbitz.tbs.spi.SpiShopService.createResultSet.AIR|9333 tbs-shop-13.31|jiniOut_LowFareSearchService_execute|9175 air-search-7.2.1|jiniIn_LowFareSearchService_execute|9094 air-search-7.2.1|LowFareSearchRequest|9048 air-search-7.2.1|com.orbitz.afo.lib.search.service.LowFareSearchServiceImpl|9038 air-search-7.2.1|com.orbitz.afo.lib.search.service.LowFareSearchServiceImpl.execute|9037 wl|jiniOut_ShopService_viewResultSet|607 tbs-shop-13.31|jiniIn_ShopService_viewResultSet|486 wl|pageView_airResults wl|jsp.render.air200.page|2475

Page 50: Cloudy Open Source and DevOps

DevOps is About CAMS

CultureAutomationMeasurementSharing

http://www.opscode.com/blog/2010/07/16/what-devops-means-to-me/

Page 51: Cloudy Open Source and DevOps

Feedback Loop

Page 52: Cloudy Open Source and DevOps

Graphite demo

Page 53: Cloudy Open Source and DevOps

Fast Data Analytics using Rocksteady

http://code.google.com/p/rocksteady/

Page 54: Cloudy Open Source and DevOps

Thanks!

Stay tuned for more at