49
Software Engineering at RightScale Ali Khajeh-Hosseini @AliKhajeh Oct 2014, University of St Andrews

Software Engineering at RightScale

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Software Engineering at RightScale

Software Engineering at RightScale  

Ali Khajeh-Hosseini

@AliKhajeh Oct 2014, University of St Andrews

Page 2: Software Engineering at RightScale

I’m here to talk about

RightScale Cloud Analytics… and how we build it

Page 3: Software Engineering at RightScale

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…

Page 4: Software Engineering at RightScale

What the heck is… a cloud?

Page 5: Software Engineering at RightScale

Server

Page 6: Software Engineering at RightScale

Rack

Page 7: Software Engineering at RightScale

Container

Page 8: Software Engineering at RightScale

Electricity, Water, Internet

2500 Servers

Page 9: Software Engineering at RightScale
Page 10: Software Engineering at RightScale
Page 11: Software Engineering at RightScale

Taken from one of Dave Cliff ’s talk on Cloud Computing

Page 12: Software Engineering at RightScale

a cloud

Page 13: Software Engineering at RightScale

Infra

stru

cture-

as-a

-Servi

ce

Platfo

rm-a

s-a-Se

rvice

Softw

are-a

s-a-Se

rvice

Cloud Computing  

Page 14: Software Engineering at RightScale

Cloud Analytics helps users make decisions

Cloud Management helps users take actions

Page 15: Software Engineering at RightScale

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

Page 16: Software Engineering at RightScale

Connect to a cloud

We regularly collect data

Page 17: Software Engineering at RightScale

Slice and dice the data

Page 18: Software Engineering at RightScale

See historic trends

Page 19: Software Engineering at RightScale

Forecast costs based on switching clouds or

increased growth

Page 20: Software Engineering at RightScale

Who buys our products?

Enterprises like Sony, EA Games, PBS,

Pearson Publishing, Zynga…

Page 21: Software Engineering at RightScale

Our Scale How many dev teams?

How many code repos?

How many instances?

How much VC funding?

Page 22: Software Engineering at RightScale

RightScale Engineering

You’re shipping too late if you’re comfortable with what you’re shipping

Page 23: Software Engineering at RightScale

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

Page 24: Software Engineering at RightScale

Dev Process: Scrum

2 week sprints 1 day planning End of sprint demo Release Retro

2  weeks  

Page 25: Software Engineering at RightScale

Design

Wiki pages + Comments/discussions

It’s mostly informal

No Word documents No UML diagrams

Page 26: Software Engineering at RightScale

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

Page 27: Software Engineering at RightScale

Estimation Play planning poker

Page 28: Software Engineering at RightScale

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…

Page 29: Software Engineering at RightScale

Daily standup (9:30am sharp) Answer:

1.  What did you do yesterday? 2.  What are going to do today? 3.  Is anything blocking you?

Page 30: Software Engineering at RightScale

Weekly release trains

Merge your feature if it’s ready to ship

that week

Page 31: Software Engineering at RightScale

Code reviews

Page 32: Software Engineering at RightScale

Good tests

Positive tests

Negative tests

Fast tests

Page 33: Software Engineering at RightScale

Continuous integration

Page 34: Software Engineering at RightScale

Good test coverage

Page 35: Software Engineering at RightScale

Exception handling

Page 36: Software Engineering at RightScale

Issue tracking

Page 37: Software Engineering at RightScale

Performance monitoring

Page 38: Software Engineering at RightScale

Some����������� ������������������  things����������� ������������������  to����������� ������������������  look����������� ������������������  for����������� ������������������  when����������� ������������������  looking����������� ������������������  for����������� ������������������  internships����������� ������������������  or����������� ������������������  jobs����������� ������������������  

Page 39: Software Engineering at RightScale

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?����������� ������������������  

Page 40: Software Engineering at RightScale

Edinburgh, Santa Barbara and remote…

Page 41: Software Engineering at RightScale

RightScale����������� ������������������  Employee����������� ������������������  Meetup����������� ������������������  (a����������� ������������������  week����������� ������������������  of����������� ������������������  fun����������� ������������������  in����������� ������������������  California)����������� ������������������  

Page 42: Software Engineering at RightScale
Page 43: Software Engineering at RightScale

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

Page 44: Software Engineering at RightScale

Dev tools

Invest����������� ������������������  in����������� ������������������  good����������� ������������������  tools����������� ������������������  

Page 45: Software Engineering at RightScale

Invest����������� ������������������  in����������� ������������������  design����������� ������������������  

Page 46: Software Engineering at RightScale

eng.rightscale.com

Invest����������� ������������������  in����������� ������������������  open����������� ������������������  source����������� ������������������  

Page 47: Software Engineering at RightScale

Invest����������� ������������������  in����������� ������������������  automation����������� ������������������  Meet����������� ������������������  Leeroy:����������� ������������������  our����������� ������������������  bot����������� ������������������  

Page 48: Software Engineering at RightScale

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

Page 49: Software Engineering at RightScale

RightScale.com/jobs