From time to time, you see discussion about whether a company has made the right decision moving to the cloud, particularly if they have shifted to a hyperscaler.
In a much cited example, David Heinemeier Hansson talked frankly about moving off the cloud and running his own datacentre as he felt it was more affordable. For me, what this underlines is that the cloud isn't right for every application, so the question becomes: how do you decide what the right strategy is for you?
The answer shows that rather than cloud heralding the demise of owning a datacentre, the right approach depends on understanding the problem you are trying to solve and, at a technical level, whether the characteristics of your software are also clearly understood.
With the advent of the cloud, it was widely proclaimed that public cloud would be the future, no one would need to own datacentres, and that the hyperscalers such as Amazon Web Services, Microsoft and Google would become the home of all enterprise applications. The reality today is more subtle and nuanced, with a spectrum of options ranging from, at the one extreme, owning a datacentre, to shifting entirely to a hyperscaler. In between, there are various private cloud and co-location options which offer different benefits.
Deciding whether to stay in your own datacentre or move to the cloud depends on various factors. In terms of the problems you are looking to solve, there are obvious questions about whether your application needs to scale to meet fluctuating or peak demand. From a technical perspective, it's also wise to closely examine three main buckets of services: user interaction, APIs and back-office processing.
Your evaluation of the characteristics of your software, and whether it is stable or requires greater flexibility, will have an impact on whether you decide to stay in your own datacentre or move to one of the many cloud options. If your application is stable and does not need to scale, then perhaps it would be just as efficient to run it in your own datacentre.
Equally, it's important to consider the overall consequences of moving to the cloud. Hosting your applications in your own datacentre means you potentially have greater control. If running in the cloud, applications could well be running on multiple platforms so you must have the ability to administer across all these systems.
Mobility is also a factor, so that it's easy to shift data between platforms. Some cloud providers may not be set up to enable this process easily, whereas in your own datacentre there is far more control.
It is also critical to consider the service level agreements (SLAs) cloud providers offer. How quickly will an application be back up and running if there is a support issue? For mission-critical applications, such as month end reconciliation, the requirement is immediate, as any delays will have financial consequences. It's also important to understand what level of certification your cloud provider offers, depending on the industry in which you operate. Being SOC or ISO compliant is non-negotiable in some industries.
In truth, the solution to this question is not as black and white as going to the cloud or not. Take this scenario: your enterprise resource planning (ERP) application is pretty stable and is being run in your own datacentre. If you need to crunch vast amounts of data, such as month end reconciliation, you could run back-office processes in the cloud and, once complete, the data could be returned to the on-premise environment.
It is unlikely that the hyperscalers are going to dissuade customers from owning their own datacentres any time soon. Customers have a range of options now, with many choosing a hybrid approach that allows them the flexibility they need to match demand for their IT systems. Ultimately, customers will pay for the value that they attribute to a particular approach.
Yes, in some circumstances it may be cheaper to run an application in a multi-tenant public cloud environment, but it might be more economical to run it in-house. However, if you are having to manage your applications in-house, it is resource intensive, and it's important to determine whether it will offer the scalability and flexibility you require. There is no single, correct answer to this question, but the good news is that there is a range of options to suit almost every requirement.
Claus Jepsen is CTO at Unit4