Cloud computing for software and application developers

Whether you develop bespoke software for specific customer requirements, or deliver specialised applications for business processes or vertical markets, what are the benefits that deploying in the cloud can bring to your business (and your customers)?

Software-as-a-Service (SaaS) is nothing particularly new — for many software houses, online deployment of applications (or at least some element of their functionality) has become the norm. Customers benefit from being able to access their applications from remote locations, they get streaming updates to ensure they have the latest features and security patches, while the impracticalities and costs of shipping physical media and the related on-site installation (not to mention dealing with platform differences) are distant memories for most.

The advantages to both developer and customer are clear.

However, as more software and solutions are delivered online, these old challenges are replaced by new ones…

  • Challenges like making sure there is enough computing power in your server farm to meet demand (under-spec versus over-spec, and what happens if demand is changeable?).
  • Challenges like ensuring a smooth and reliable service (if the application server goes down, the service you provide goes down along with your paying customers).
  • Challenges like looking after all that supporting infrastructure, because suddenly the responsibility of that side has shifted from the client to you (a specialist, full-time task in itself).
So, how does cloud computing help?

Thankfully, cloud computing has emerged — or rather, matured — as a viable technology just as the set of new challenges outlined above have come to prominence. As with a lot of “new” technology, cloud has taken time to overcome barriers of commercial adoption; now though, with numerous high profile organisations using cloud to support critical parts of their operation, cloud has demonstrated it is ready for business, just as business is ready for (or should it be, in need of) cloud.

Cloud delivers great end-user experiences

Presumably, you develop software and applications to make the lives of your customers easier, to bring value to their business, and help them to succeed. No matter how fantastic the software, if it’s not always available to your customers or performance is unpredictable, the overall experience will be one of frustration for everybody involved. In order for your solutions and your customers to fulfill their potential, it’s important that there is a resilient and flexible infrastructure in place to serve them.

With cloud, the whole is greater than the sum of its parts:
  • If a hardware unit fails, it doesn’t matter — another takes over automatically.
  • Because no single machine is relied upon, there’s no impact on your users.
  • So instead of frantic calls from your customers (and equally frantic calls to your hosting provider or technical team) service continues with the minimum of disruption.
React to changeable demand with elastic cloud:

cloud-scenarios
What happens when your current hardware hits a wall because of a particularly demanding customer? If it’s just a short-term spike, you might get away with the odd bit of slow-down for a while, but if it happens on a regular basis, sluggish or flaky performance can really begin to have an impact on your customers, stress levels and reputation.

  • Flexible, scalable cloud gives you the IT agility you need to quickly scale up during peak times, and scale back down during quieter periods (so you’re not wasting money on dormant resources).
  • Take a look at our “Cloud Scenarios” article for some illustrated examples of how cloud can help you to accommodate all sorts of changing demands, in an efficient way — which leads us to…
Cloud improves efficiency and productivity for your business

One of the interesting challenges that we acknowledged earlier was that of the shift in responsibility for the infrastructure management from the client to the developer. With the SaaS model, applications are accessed via a browser, so all the processing overhead is carried by the developer. Whether this is delivered via an on-site data centre, colocated equipment or a rented dedicated server farm, the developer now has an expensive and time-consuming additional workload to deal with — it’s no longer enough for a developer to simply be a developer.

Dealing with the infrastructure hot potato:

Cloud has the potential to help redress this balance, handing back time and cutting capital and operational expenditure:

  • By riding on the back of an outsourced infrastructure, you’re able to hand back responsibility for purchasing, building, maintaining and refreshing hardware, switches and networking to your cloud provider: the tin is somebody else’s job, and your team can get back to focussing on the core strengths of your business.
  • Unless you’re renting servers, that still leaves you with data centre resources to manage though, right? The good news is that with cloud, your entire infrastructure can now be managed through a single web-based interface, from wherever you happen to be (and yes, there’s even an app for that). Deploy new servers, allocate extra RAM and processing power and roll out new global security policies — all with a few clicks.
The IT vending machine:

Or, resources on demand. Currently when you need a server, the typical process involves authorisation, purchase, supplier-build, delivery, installation and testing. That lead time could be days or (many) weeks, resulting in thumb-twiddling for your team, and delays for your customers. Compare that with the time it takes to log into a virtual data centre and click a few buttons to spin up a new server, clone an existing server or add a chunk of RAM to an existing server. What used to take weeks, now takes minutes.

Pay only for what you need:

Cloud is different from the traditional way of procuring computing power (purchasing or renting entire servers) because you can add resources in a much more incremental way: assign extra RAM and processing power when you need it (at busy times, or when you gain a new client) and drop back down again if demand falls away. The bottom line is that you’re not left with expensive servers sitting there doing nothing: cloud is an efficient way of aligning resource demand more closely with expenditure.

A cloud hosting blueprint

If you’re short on time and would like a summary, take a look at our cloud hosting blueprint for software developers.

Archive posts