software engineering at rightscale
DESCRIPTION
A guest lecture given at the University of St Andrews on how RightScale does software engineering.TRANSCRIPT
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
Infra
stru
cture-
as-a
-Servi
ce
Platfo
rm-a
s-a-Se
rvice
Softw
are-a
s-a-Se
rvice
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
Wiki pages + Comments/discussions
It’s mostly informal
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����������� ������������������
Do they have fun?
What’s their hiring process?
Do they invest in good tools?
What’s the team setup, and how often do they ship?
Are people given freedom to experiment? Friday afternoon
is our iTime
What’s the level of transparency and trust? Open by Default
What’s����������� ������������������ important?����������� ������������������
Edinburgh, Santa Barbara and remote…
RightScale����������� ������������������ Employee����������� ������������������ Meetup����������� ������������������ (a����������� ������������������ week����������� ������������������ of����������� ������������������ fun����������� ������������������ in����������� ������������������ California)����������� ������������������
What do hackers want? Like all craftsmen, hackers like good tools. In fact, that's an understatement. Good hackers find it unbearable to use bad tools. They'll simply refuse to work on projects with the wrong infrastructure. Paul Graham on Great Hackers
Dev tools
Invest����������� ������������������ in����������� ������������������ good����������� ������������������ tools����������� ������������������
Invest����������� ������������������ in����������� ������������������ design����������� ������������������
eng.rightscale.com
Invest����������� ������������������ in����������� ������������������ open����������� ������������������ source����������� ������������������
Invest����������� ������������������ in����������� ������������������ automation����������� ������������������ Meet����������� ������������������ Leeroy:����������� ������������������ our����������� ������������������ bot����������� ������������������
Ruby, Praxis (our own open source API framework), Go,
Erlang, JavaScript, AngularJS, Node.
MySQL, PostgreSQL, MongoDB, Cassandra, DynamoDB,
Redshift, Memcached, Redis, Nginx, HAProxy, Rsyslog.
AWS, Google Compute Engine, MS Azure, VMware…
Use����������� ������������������ a����������� ������������������ variety����������� ������������������ of����������� ������������������ tech����������� ������������������
RightScale.com/jobs