Since becoming immersed in the world of cloud computing, it has become clear to me that one of the keys to providing an always-on service which performs at a consistently high level is balance.
The cloud is a marketplace for computing resources. From the user interfaces provided by the likes of Microsoft Azure or Amazon, businesses such as ours can rent SQL (database) servers in a few clicks, instantly duplicate the processing power of a web application into multiple instances, improve security with automatic encryption services, add terabytes of storage… the list goes on – and all from a broad range of geo-located data centres from Silicon Valley to South Africa.
Building a computing network is now a virtual shopping experience. Paying for the resources you need, and being able to create and remove these on demand provides enormous flexibility in both the computing power available to a growing business and the financial control needed to ensure a profitable month-end.
With resources in place, monitoring a system is a joy: customisable dashboards give insight into the utilisation of each critical part of the network; and the peaks and troughs which inevitably line up with the lunch breaks and early Friday finishes give an insight into how and when a system is used throughout the working week.
Every time a database is accessed, its CPU usage is marked on a chart as a tiny peak. Just clicking a button to sort a list of 10,000 customers, or issuing a new tender to 20 suppliers requires processing – and the combination of these button clicks across the numerous brokers and users actively utilising our system on a daily bases creates a sea of requests which we can monitor, audit and – ultimately – look to optimise.
So what was this about balance?
Well, coding a web application efficiently reduces the height of each mini peak of CPU usage, and its duration. Just a few lines of well written code can have a positive impact which, when multiplied across the needs of all users accessing a system, means a smoother landscape, a faster application and – for the business owner – financial flexibility to spend money on security, encryption and redundancy. Balance means providing a premium service whilst remaining efficient. Balance means spending sufficiently on resources to provide an optimal software experience whilst improving the very fabric of the code on which the software is based.
We’ve optimised our code hugely over the last few months, in turn freeing up processing power to drive new features in the system and provide a smoother experience to our users – all through careful balance and planning.
And these optimisations are allowing us to invest in resources, both in the cloud and in the people we need to build an even better UtilityClick for 2018.