Software Engineering
at RightScale	
  
Ali Khajeh-Hosseini
@AliKhajeh
Oct 2014, University of St Andrews
I’m here to talk about
RightScale Cloud Analytics…
and how we build it
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…
What the heck is…
a cloud?
Server
Rack
Container
Electricity, Water, Internet
2500
Servers
Taken from one of Dave Cliff’s talk on Cloud Computing
a cloud
Infrastructure-as-a-Service
Platform-as-a-Service
Software-as-a-Service
Cloud Computing	
  
Cloud Analytics helps users make decisions
Cloud Management helps users take actions
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
Connect to a cloud
We regularly collect data
Slice and dice the data
See historic trends
Forecast costs based on
switching clouds or
increased growth
Who buys our products?
Enterprises like
Sony, EA Games, PBS,
Pearson Publishing, Zynga…
Our Scale
How many dev teams?
How many code repos?
How many instances?
How much VC funding?
RightScale Engineering
You’re shipping too late if you’re comfortable
with what you’re shipping
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
Dev Process: Scrum
2 week sprints
1 day planning
End of sprint demo
Release
Retro
2	
  weeks	
  
Design
Wikipages
+Comments/discussions
It’smostlyinformal
No Word documents
No UML diagrams
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
Estimation
Play planning poker
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…
Daily standup (9:30am sharp)
Answer:
1.  What did you do yesterday?
2.  What are going to do today?
3.  Is anything blocking you?
Weekly release trains
Merge your feature
if it’s ready to ship
that week
Code reviews
Good tests
Positive tests
Negative tests
Fast tests
Continuous integration
Good test coverage
Exception handling
Issue tracking
Performance monitoring
Some
 things
 to
 look
 
for
 when
 looking
 for
 
internships
 or
 jobs
 

Software Engineering at RightScale