Today let's talk managing complexity. At a recent conference I heard an argument that boils up far too often:
"Manage it internally. It's the only way."
"No! Outsource it. More cost-effective."
"No, manage it internally. Otherwise you just end up managing the outsource partner."
"Take care of it yourself!"
"Throw it over the wall!"
And then, fisticuffs ensue and eyeglasses and pocket protectors go flying. OK, not really, but wouldn't conferences be exponentially more interesting with IT death matches? Seriously, though, the folks who think outsourcing to the cloud will eliminate complexity puzzle me.
So I sat a couple of those folks down and quizzed them. I assumed that they meant to say that outsourcing to the cloud would eliminate or reduce internal complexity. I was shocked to discover that these two professionals, very well-versed in their craft, had been drinking the Kool-Aid. They'd been snowed by several cloud providers who convinced them that the infrastructure on the other side was more efficient and far less complex. Really? What magical aspect of the cloud eliminates the complexity inherent in a large-scale infrastructure?
There's not one. It's an optimistic assumption, and you know what happens when we assume.
Let's look at historical examples. Tivoli Systems didn't eliminate the complexity of the sneaker net. They simply transferred it to a larger software framework. Likewise, it could be argued that VMware didn't eliminate the complexity of x86 servers sprawling across a huge datacenter. They just transferred it to software, replacing server sprawl with "VM sprawl." Back in the day, server virtualization fans were rabid for VMware. A company with 20 physical servers might be able to reduce that number to 15 or even, gasp, 10! In almost every case that required an increase in the number of VMs per physical machine.
The same company might now have 50 VMs running on those 10 servers, a substantial increase in the number of operating systems and application components to manage. So was complexly eliminated? Decreased? Increased? The answer's subjective, but I think most pros would agree that some amount of management complexity is inherent with increased virtualization.
These are two quick examples of times where we celebrated a technology before we understood its repercussions. Now let's examine the cloud against this same Law of Unintended Consequences. Will moving components from your internal infrastructure to the cloud reduce complexity?