Progressive Enhancement is often described as an alternate approach to “Graceful Degradation” – it encourages focusing on the most basic functionality first and then building out from there. It also forms the core of the Yahoo! Graded Browser Support model, which we use as a guide for our own rules around browser support. This is an important topic, but it has been covered fairly extensively in other articles, so I’m not going to dive into it too much here. Instead I am going to talk about specific progressive enhancement techniques we use at Wayfair to improve site performance.
One of the big changes at Wayfair recently was moving all of our storefront code (well, almost all…we’re still working on our sessioned code) from Classic ASP (VBScript) to PHP. The company was started in 2002 and at that time ASP was a common technology on the web, and one that our founders were familiar with. After 8 years of working with it, we had pushed it to the limits and decided we’d get more benefit out of moving to a new technology.
We certainly take technology seriously around here and work quite hard at trying to get it right, so it definitely means a lot when we’re publically recognized for these efforts. I was therefore quite proud last Thursday night when Wayfair was honored by the Massachusetts Technology Leadership Council (MassTLC) by being named “2011 Company of the Year” among privately held companies.
The MassTLC is an organization focused on fostering entrepreneurship, encouraging the innovative use of technology and recognizing the successes of companies who develop and deploy technology across industry sectors. Wayfair was up against four other great companies as finalists for this award: Acquia, Endeca, Karmaloop and Kiva Systems. Thank you, MassTLC for this great honor.
In this article I will discuss how we deploy code in a unique way that gives us all the flexibility of the symlink method without requiring a symlink.
Part of the decision on how to setup our deployment system was determined by the need to roll forward and roll back our deployments as quickly as possible. We also needed a way to do this atomically, so that no errors occurred when the code was physically being copied to the webservers.
If you haven’t heard about the ESC Conference yet, you should check it out!
It’s a new conference this year, giving us all another place to congregate and discuss running code and systems at scale. If you’ve been to a devopsdays conference before then you will be familiar with and enjoy the opportunity to have a full day of Open Spaces!
The first day of the conference has a great line-up of talks, including one from our friends over at Etsy, and two talks from the Wayfair Engineering team! Jonathan Klein will be presenting “Deep Dive Frontend Optimization” and Dan Rowe (me ) will be talking about monitoring with “Graphite, Statsd, and Graphite-Tattle : Simple metric collection meets self-serve alerts”. We hope you can make it!