software engineering at rightscale

Post on 26-Jun-2015

638 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

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

top related