stackuptalks renttherunway-may62014-140514094321-phpapp02
DESCRIPTION
Rent the Runway's Presentation from Dev Stackup held @ The Flatiron School, 5/6TRANSCRIPT
How We Write the DRESS CODE
at Rent the Runway
Introductions!
Eric Weinstein@ericqweinstein
Tim Ricablanca@timx
@RTR_tech
● Founded in November 2009● Cinderella-Experience-as-a-ServiceTM*
● 40+ engineers / 10 Ruby committers● Operations:
○ Warehouse & Fulfillment in NJ○ Henri Bendel’s and HQ in NYC○ The Cosmopolitan, Las Vegas
About Rent the Runway
* We made this up
Ruby at Rent the Runway
We use Sinatra for our front-end
. . . served by Unicorn, behind Nginx
. . . tested by RSpec and Jasmine
. . . talking to our APIs over Typhoeus
. . . deployed by Rake and Capistrano
Commit to a feature branch Pull Request
RSpec & Jasmine
Code review & mergeCode Climate
Deploy via CapistranoSelenium tests
Rubocop & JSHint
We deploy renttherunway.com every day.
Our deploys are boring and uneventful.
It took four devs, a systems engineer, and a team of QA engineers three months to get there.
Humble Beginnings:The Journey to Boring Deploys:
A Tuskforce Adventure
The Early Days
● Drupal on LAMP● No separation of concerns ● No database abstraction● Test coverage was questionable● <standard painful problem with legacy
software>
“You run your e-commerce site on Drupal?”
SOA and Salami Slicing
Our Runway
And then came the swimlanes
User
Checkout
Static Asset CDN Origin
Drupal
Our Runway
Home
Grid
Product Detail
static assets
sinatra views / erbs
< Sinatra::Base
RtR API clients
Heroku
Rackspace
Engine Yard
...but wait, there’s more:EACH ONE OF THE SWIMLANES HAD ITS OWN CDN AND MEMCACHED INSTANCE
“Deploying the website was like executing a lunar mission”
- Eric Q. Weinstein
“some m#%@&*s are always trying to ice skate uphill”
The swimlanes solved a scalability problem that we didn’t have.
We regressed at the cost of productivity, feature velocity, and developer happiness.
Organizational Buy-in
“Everyone deserves a Cinderella Experience”- Rent the Runway Core Value #1
(even developers!)
*queue the Tuskforce*
Storefront App
< Sinatra::Base
API Clients
*
(It’s this one)
It used to take two devs 6 hours to shepherd the deploy.
It now takes about 6 minutes.
FashionatorTM
FlaggregatorTM
Lessons Learned
● New tech stack: growing pains● YAGNI: don’t build what you don’t need● You can’t boil the ocean, but you can cause
global warming● Everyone deserves a Cinderella
experience—even developers!
Questions?