Local developer and Hull Digital Developer Group Organiser John Polling is showing the way with cloud-based development. This is a fascinating guest post by him… read on!
“The cloud” is a wonderful place for developing your own products
It’s been just over 6 months since the Beta launch of Incentive Maker, a web based product that allows anyone to implement a professional staff incentive programme for their company, and just over 8 months since I first wrote a line of code for it.
Incentive Maker is the first SaaS product I’ve developed where the end client was myself and a business partner (Wildfire Advertising Ltd). This has given me a huge amount of flexibility when it comes to the technical architecture of the product and I’ve really made the most of this freedom.
At the start of the project we lacked two key things; money and users. The only thing we really had to give was time. My initial plan was to host the Incentive Maker code and databases on my MediaTemple server, however when it came to improving hardware performance, it was quite costly and it lacked smaller increments.
The other downside to hosting everything internally is the responsibility factor. We certainly weren’t in a position to employ someone to look after the servers on a full time basis, so we needed to do things differently.
After a bit of research we decided to use Heroku, a cloud application platform. Heroku is one of the many hosting services that are based on Amazon EC2 services. This has been a real eye opener for us. Throughout the initial development and Beta process we paid next to nothing for the service, due to the system coping with the small number of users just fine.
On top of the codebase hosting we have two database hosting solutions; MongoHQ and Redis To Go. At the start of the project, including the Beta period, we used the free plans for both of these services.
I’m certain you can see my point here on the costs side of things. Other than our time, we had very little invested in Incentive Maker, even during the Beta stage. If no clients bought into the idea, then our losses would be a minimal.
Hassle free scaling
After the Beta period, we had a few clients on board, with more still giving Incentive Maker some consideration. At this stage we knew we needed more hosting power and more database space. This is where the magic really started.
More power took a matter of seconds to sort out. It was just a case of logging in, dragging a slider up and clicking an apply button.
More database space was again a very simple process. We simply had to sign up to a larger price plan, press the ‘clone database’ button and change a config file on Heroku. Job done.
As a web developer I’ve never had hosting this easy. The costs savings, in terms of time, from these kinds of services is incredible. Some may think that Heroku looks expensive when you up the number of dynos, but it’s worth every penny, or cent in this case.
Easy application monitoring, troubleshooting and tuning
As will all web based products we wanted to have monitoring and error handling in place. I didn’t, however, want to spend time developing code to do this for us. Fortunately there are web based services out there that could already handle this. We decided to use Hoptoad and New Relic, even better they come as addons to the Heroku service, and the costs for using them is even cheaper with Heroku.
The amount of monitoring information New Relic supplies is simple breathtaking and they are always improving the service. The money spent on this service is well worth it, even better, in a recent update, the standard package comes for free with Heroku.
Concentrating on what’s important, our own codebase
All these cloud services have allowed us to concentrate on what’s important, our own codebase. What is more, because of all these services, the amount of code we have to maintain is actually quite small, so our maintenance costs are pretty minimal.
In the past, the idea of having everything so spread out across different services would have terrified me and sounded like a management nightmare. The Incentive Maker project has changed my opinion dramatically and I’ve fully embraced the idea of “the cloud”. It’s cost effective, a huge time saver, and removes a huge amount of hassle and stress.
We have no idea what our requirements are going to be in the future, but we can confidently say we can happily cope with scaling for larger number of users, adding in extra cloud services and even moving to different services, should a better service become available.
Any future product development I’m involved in, will definitely be using these, or similar services.