Power is nothing without control, flexibility and reliability
Previously I have waxed lyrical about how great it was to be able to control the rate of change on DC4UK.com, to be able to measure, analyse and ultimately act on the effects of these changes. Let's discuss the platform in a bit more detail to see how this flexibility is offered and yet remains coupled to awesome power and reliability.
If you've had a look at our site, you'll know that our e-commerce platform uses Ruby on Rails. We knew from the outset that the qualities we were looking for in a software platform to fit the Moneyspyder vision were serious flexibility coupled with reliability and speed. In investigating Ruby on Rails it became apparent that the Rails framework was just the right fit and Ruby is quite a nice language to use. The result of this combination is super fast development and really nice software.
Here's a longer paper on why Rails development is so fast. For me, good design (under the hood stuff, not the site visuals) happens a lot easier and therefore faster. The effects of good design are like ripples in a pond - the [good] effects expand outwards and affect all areas of the system but not in terms of any dependencies, more a case of goodness permeating everywhere by default. the same can be said of bad design but that seems to become harder to achieve in Rails...
Our architecture employs a 'base' level shop of core components (plugins in Rails parlance) - baskets, categories, variants, promotions and split tests to name but a few. We choose to employ these base components where appropriate and specialising per client where required. This means we can introduce large pieces of functionality quickly and easily. High cohesion and loose coupling is the computer science ideal situation that our software exhibits
The hosts with the most
A slight nagging doubt was hosting. We needed a partner to 'take the heat', care for the tin and wires and allow us to focus on building and continually improving class leading e-commerce sites. The thing was that Ruby on Rails was pretty new - still is. To our delight we found EngineYard. These guys rock - no argument. Renting slices is just the ticket. It's the right model for so many clients. Who wants to own tin these days? Owning servers in a farm along with the responsibilities that go with a data center is hard, expensive and probably not core to many peoples business. Focus on what you do well and you're off to a great start.
Preparing for a busy XMas sir?
EngineYard's service is just great. We like the ability to seasonally scale the size of each clients environments as demand requires. Capacity planning is facilitated again by our strong use of data. We know when the peaks are likely and scale accordingly.
Currently DC4UK.com emails customer weekly. We are seeing strong levels of response to these emails but even at peak - multiple requests per second - the two production slices are barely breathing. As and when we forecast massive peaks we can choose to scale out (add extra slices) and back (reduce slices) if required. This is a very cost effective e-commerce environment.