Upload
timothy-ricablanca
View
385
Download
1
Embed Size (px)
DESCRIPTION
Eric and Tim from Rent the Runway went to The Flatiron School to talk about Ruby, daily deployments, supporting service-oriented-architecture with a front-end Sinatra app, the mistakes and lessons learned from shifting platforms, and trying to fix everything with a big red button. You can get more context by reading the blog post here: http://blog.tech.renttherunway.com/?p=774 Big thanks to StackUp Talks (http://stackuptalks.com/) and The Flatiron School (http://flatironschool.com/) for having us!
Citation preview
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?