One of the benefits of starting BuyReply is that I have been able to reconnect with technology.
BuyReply is a software business whereas my earlier venture, Lind Golf, was a retail business that happened to be online.
I don’t view eCommerce businesses as technology ventures. Selling product online is no different to selling product in a store; it’s just a different kind of shop front.
I’ve always enjoyed the technology and systems side of business more than product and trading. I’m glad that I now have a business where much of its success depends on this.
Apps that can scale
As we’ve built out BuyReply, we’ve had to design the architecture in such a way that it can scale. One of the challenges of building a business that will generate much of its traffic from television is that television can cause huge spikes.
For example, if a call-to-action is displayed on television to email or tweet an address, hundreds of thousands of requests could arrive at our servers in a matter of seconds or minutes.
has an audience of one million viewers watching, and a call-to-action was displayed that said “email ‘dessert’ to [email protected]” to get tonight’s dessert recipe, there is a good chance that 20% or more of the audience would participate.
That’s 200,000 inbound requests in a matter of seconds! In order to combat that sort of surge, we’ve designed an architecture that can scale.
How to ride a surge and catch a wave
As a start-up mentor, I try and persuade start-ups not to spend too much time worrying about scale until they have enough customers. Building for scale is an engineering task in itself.
However, we’ve had to think about scale from day one. Thankfully, cloud computing platforms like Amazon Web Services exist.
What we’ve done is built our app so that it can scale. However, our staging environment is hosted on a single server. I think it is very important to build your app for scalability early on so that you don’t have to rebuild it later.
You don’t have to host on scalable hardware at the beginning. However, if your app cannot scale you might be in a bit of trouble down the road if you need to scale.
We have a sophisticated queuing and queue processing architecture that is capable of running as a service on multiple instances. This means that we can distribute incoming requests across as many servers as we like, should we need to.
Simpler than it all sounds
This all sounds very complicated, but in reality it’s not that complicated or expensive, thanks to cloud computing.
As I noted earlier, we use Amazon Web Services to scale our service. Using AWS, we can start with a small number of servers and add servers as we need them, and we only pay for the servers we use when we use them.
For example, if we are expecting a large amount of traffic and need 50 additional servers to handle load from a TV spike for one hour, we can boot up 50 servers in two to three minutes before the show starts, run them for the duration of the show and shut them down after. All of that that would only cost us $25.
As an old school computer engineer myself, I am blown away by how incredibly powerful it all is. What used to take weeks or months to configure and deploy can literally be deployed in one line of computer code.
Our entire BuyReply infrastructure can be deployed by pasting 10 lines of code on a computer. Within seconds, our entire infrastructure boots up, and within two to three minutes it’s ready to accept traffic.
All we need to do is flip our domain name to point to the cloud and it starts working. It is also highly available, meaning that every aspect of this infrastructure is mirrored with backups.
If we were to buy the hardware that runs BuyReply, it would cost us well over $100,000 and require a team of engineers to manage and deploy. Thanks to AWS, we have a whole data centre at our disposal and it’s dirt cheap.
Many large web services and popular apps run on AWS including Netflix, Drop Box and Heroku. AWS is what allowed Instagram to scale to billions of requests a day with just three engineers.
As a bit of a tech geek, I have to say this whole cloud computing thing is a lot of fun.