Moving IT support for your business to the cloud means ‘our’ IT being hosted in a fragmented landscape of data centers. That only looks like a silver bullet if you are short sighted.
[This article originally appeared on InfoWorld in 2015. It has been (slightly adapted and) reproduced here to have at least one consolidated site with all my articles on EA]
Organizations — and especially their IT departments — all over the world are currently busy as bees trying to move some of their IT from their data centers to the cloud. There is a widespread belief that using SaaS (software-as-a-service), IaaS (infrastructure-as-a-service) and all other kinds of IT as a service (call it XaaS) is going to reduce cost, improve agility, improve performance, and so forth. In fact, there is so little attention for limitations, risks, and disadvantages that what we have here has all the hallmarks of a classic silver bullet.
A silver bullet, as defined by Frederick P. Brooks, is a bullet that magically slays the monster of ‘essential complexity’ in IT. And, as Brooks argued, it does not exist. He has been proven right ever since.
So, is cloud a real silver bullet or is it yet another dream? Let’s investigate.
The problem with defining ‘data center’ and ‘on-premises’
When talking about the cloud, people often talk about ‘on-premises’ versus the cloud. The problem with that, is that there are three situations, and not two:
- In the cloud (and we’ll get to that more in the main story)
- In a ‘co-location’
- In your own physical data center
A co-location is basically a physical location that is run by some other party. They provide the lowest level of services: physical security, power, cooling. There may be other services there, such as managed data transport access, either provided by the co-location provider or by a third party that is located in the same physical premises.
If you have your own two data centers (a common setup), they may both be hosted on physical premises of someone else (the co-location provider), but in terms of infrastructure they are still your premises. Your network switches, routers, firewalls, servers, and so forth. You manage the infrastructure. Architecturally, ‘on-premises’ is ‘your self-managed infrastructure’, regardless of who owns and operates the building.
I also tend to equate ‘data center’ and ‘on-premises’. The co-location provider doesn’t provide a data center, it provides low-level stuff like power, cooling and housing. From an architecture perspective, it is irrelevant if you own the physical premises or not, it is the IT infrastructure that matters. That is the problem with ‘on-premises’: it might not be your building (not from the co-location provider even), but it is still architecturally your ‘premises’. And that breaks the traditional physical definition of ‘premises‘.
Of course, there are other levels of services too. Some companies provide ‘managed hosting’, and then, it is not ‘your data center’ or ‘your premises’ anymore. They run the infrastructure, you just put your applications there.
Suppose you are hosting a business application on-premises. This is a well-behaved three tier setup: a database, an application server, and a browser interface. The ideal Web-based user interface (that was part of the silver bullet collection 10 years ago). Now suppose you replace that with an offering from the cloud (SaaS).
Quiz question: Where does the business application run?
- In your data center (either co-location or self-owned, see aside)
- In another company’s data center
- In the cloud (i.e. somewhere else)
The answer is of course 2. The business application you use now runs in someone else’s data center, e.g. Amazon’s, Microsoft’s, Google’s or a smaller player’s data center. In fact, the choices we have are:
- In your data center
- In another company’s data center, sometimes known as “the cloud”
There is no 3. Thus, the most concise definition of the cloud might be: other people’s data centers. This is unfair, I know, because the cloud is a large set of services that have nothing to do with data centers per se.
Most larger organizations were already running in multiple data centers, e.g. for reasons of continuity, and because of latency (which affects performance, see Reverse Cloud for a potential interesting effect this will have on the cloud) these data centers are often not too far apart. Even funnier, and resembling the emperor’s new clothes, the insides of those ‘other’ data centers consist of database servers, application servers, networking, security, monitoring, logging and everything else needed to host applications, all that old-fashioned stuff just as in your own data center. Which means that, superficially, nothing much changes when you move IT to the cloud.
Is moving to other people’s data centers a useless operation, then? Far from it, because all kinds of optimizations in and between all those data centers are possible. However, all kinds of extra complexities may also appear. The optimizations are obvious to most. Every SaaS provider can build a large, homogenous, scalable landscape for its application (either on their own premises or based on cloud services), and that results in an advantage of scale. Part of that advantage is passed on to the customer, part is profit for the cloud-provider.
But the extra complexities and suboptimalizations are largely ignored, and these are the issues that turn cloud into something more mundane and thus yet another not-a-silver-bullet. Latency is one such issue. The lower reliability of long distance connections with respect to short ones is another (and especially remaining robust under this). Cloud stacking (cloud providers using other cloud providers in the background) might become an issue. But also the imperfections of PaaS/SaaS-offerings when they have to be integrated with your other systems (or — shudder — with each other!). Every Tom, Dick, or Harry calls his offering a cloud service these days, even if they are just exposing a classic Windows application via some remote desktop protocol.
But the most important issue will be ownership. We need a change of perspective when thinking about our IT landscapes. Instead of thinking that our IT landscape consists of whatever is running on our infrastructure (our data centers, our ‘premises’), we must start to look at our IT landscape as all IT that supports our business.
This used to be a simple 1-to-1 mapping, and thus it was simply ignored. But with the cloud, our whole landscape will become much, much more distributed, and thus also fragmented. Not just physically, but also legally. All the different parties will be having complex relations with all the different parties. Everyone seems to assume these are all nicely independent relations. The same belief in the disappearance of essential complexity was part of the brave new world of service oriented architecture with an enterprise service bus to rule them all. But history has taught us already several times that these abstractions have a way to be interdependent in many subtle ways (e.g. read “Loosely Coupled Spaghetti,” the freely downloadable introductory chapter of my book Chess and the Art of Enterprise Architecture).
The current widespread belief that the cloud is a silver bullet exists because our mind sets are still based on the myopic perspective of the local data center. It is that perspective that turns the cloud into a magical way to make complexity literally go away. In reality, our IT is not going away at all. Instead, the cloud is turning our infrastructure landscape from a simple (twin) data center with self-managed hosting of applications into a much more complex Web of many data centers, owned by many parties and coupled in many different ways, from IAAS to serverless computing. Just another step in the continuous increase of complexity made possible by the continuous increase of the power of IT and the abstractions that increase makes possible (and there is a fundamental and constant limit here all the time: the complexity we humans can manage. See the law of complexity-capacity exhaustion).
So, thinking that IT goes ‘away’ when it moves to the cloud, and that thus complexity will always be reduced, only shows myopia.
I’ll be giving the EA keynote at the Enterprise Architecture Conference Europe 2018 on October 23.