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.

Software Engineering at RightScale


Published on

A guest lecture given at the University of St Andrews on how RightScale does software engineering.

Published in: Software
  • Be the first to comment

Software Engineering at RightScale

  1. 1. Software Engineering at RightScale   Ali Khajeh-Hosseini @AliKhajeh Oct 2014, University of St Andrews
  2. 2. I’m here to talk about RightScale Cloud Analytics… and how we build it
  3. 3. Jan 2009: Started researching cloud cost forecasting in St Andrews Dec ‘11: With Hassan, we launched PlanForCloud Jul ‘12: Acquired by RightScale Nov ‘13: Launched Private-Beta of Cloud Analytics Mar ‘14: Cloud Analytics goes into Public-Beta Oct ‘14: Cloud Analytics is Generally Available The story so far…
  4. 4. What the heck is… a cloud?
  5. 5. Server
  6. 6. Rack
  7. 7. Container
  8. 8. Electricity, Water, Internet 2500 Servers
  9. 9. Taken from one of Dave Cliff’s talk on Cloud Computing
  10. 10. a cloud
  11. 11. Infrastructure-as-a-Service Platform-as-a-Service Software-as-a-Service Cloud Computing  
  12. 12. Cloud Analytics helps users make decisions Cloud Management helps users take actions
  13. 13. Cloud spending is growing rapidly Cloud pricing is complicated… we scrape over 12,000 prices Need to monitor, forecast and optimize cloud spend The challenge
  14. 14. Connect to a cloud We regularly collect data
  15. 15. Slice and dice the data
  16. 16. See historic trends
  17. 17. Forecast costs based on switching clouds or increased growth
  18. 18. Who buys our products? Enterprises like Sony, EA Games, PBS, Pearson Publishing, Zynga…
  19. 19. Our Scale How many dev teams? How many code repos? How many instances? How much VC funding?
  20. 20. RightScale Engineering You’re shipping too late if you’re comfortable with what you’re shipping
  21. 21. Engineering Roles Product Manager: what should we build? Engineering Manager: how should we build it? Architects: design the systems UX: design the user experience Operations: deploy, scale and monitor systems Escalations: something just broke, who can fix it? Support/Docs: help customers use it Engineers: work with everyone to build and test it
  22. 22. Dev Process: Scrum 2 week sprints 1 day planning End of sprint demo Release Retro 2  weeks  
  23. 23. Design Wikipages +Comments/discussions It’smostlyinformal No Word documents No UML diagrams
  24. 24. Planning Story:As a user I want to export report as PDF So that I can share it with others •  Refactor simulation engine to… •  Switch from Google charts to Highcharts •  Generate PDF in background queue •  … •  Write tests •  Code review Engineers breakdown stories into tasks Granularity: less than a day to complete
  25. 25. Estimation Play planning poker
  26. 26. Sprint calculations =================  Sprint  Summary  =================     Sprint  Begins:  02/06/2014   Sprint  Ends:  10/06/2014   Sprint  Dura=on:  9  days     Team:  John,  Joe,  Jeff,  Jack   Development:   Vaca=on:  0  days   Total  Capacity:  200  hours   -­‐-­‐  release  issues:  10   -­‐-­‐  priority  bugs:  30   -­‐-­‐  tech  debt:  50   -­‐-­‐  backlog:  110  Start sprinting…
  27. 27. Daily standup (9:30am sharp) Answer: 1.  What did you do yesterday? 2.  What are going to do today? 3.  Is anything blocking you?
  28. 28. Weekly release trains Merge your feature if it’s ready to ship that week
  29. 29. Code reviews
  30. 30. Good tests Positive tests Negative tests Fast tests
  31. 31. Continuous integration
  32. 32. Good test coverage
  33. 33. Exception handling
  34. 34. Issue tracking
  35. 35. Performance monitoring
  36. 36. Some