Tech always comes in waves. The last big enterprise technology development wave crested in 2015, and ever since then potential adopters have been busily downloading bits, grappling with new ideas, and trying to determine which tech to bank on.
The great part of being in the wake of this latest wave is that we have a pretty coherent picture of the future of applications: Microservices running in Docker containers orchestrated by Kubernetes. This is the basic “cloud native” vision, where distributed applications are continuously monitored and improved, and new ones can be designed and spun up much faster than before.
But mind the gap between that vision and the current state of affairs in most enterprises. It’s always amusing to see the reaction of Silicon Valley’s best and brightest when they encounter the real world of the enterprise datacenter. Ben Sigelman, CEO of the distributed system reliability management startup Lightstep, described it as “chaos” in a recent panel hosted by the VC firm Redpoint.
His comment came on the heels of a presentation by Bindi Belanger, an executive program director at Ticketmaster. She described her company’s new Kubernetes deployment amid an infrastructure strewn with a hodgepodge of legacy tech, including an emulated version of VAX software.
Panelist Armon Dadgar, co-founder and CTO of HashiCorp, echoed Siegelman’s sentiment:
Chaos is the default. It’s sort of shocking the number of companies you see — it’s exactly the Ticketmaster story over and over. It’s like you cut down a thousand-year-old tree and see the rings, everything from the IBM mainframe at the center all the way out, and it’s all still there.
That’s a great metaphor. Any organization that’s been around for a while has accrued layer upon layer of tech. Companies that have been around long enough are certain to have at least one legacy system that continues to churn along even though the people who designed it left the company long ago and no one entirely remembers how it works.
So before companies even think about going cloud-native, they need to do what they’ve always done before a major transition: Document the business processes built into the workloads they wish to migrate to a new platform. When you take into account all the integrations and dependencies involving other systems, this gets enormously complex in a hurry. The past is littered with giant migration processes that were never completed or ended in failure.
Instead, what typically happens is that when a new application is required, some forward-thinking person decides to build it on the latest, greatest platform — which today would be represented by the cloud-native approach. Panelist Criag McLuckie, CEO of the Kubernetes startup Heptio — and co-founder of the Kubernetes project when he worked at Google — was frank in his assessment of the gulf between this shiny new cloud-native world and current enterprise reality:
I think the thing that we’re neglecting is the people who never made the jump, who’ve never actually gone there. I spend a lot of time talking to folks and they’re like, “Yeah, I looked at it a while back and it was too complicated, I couldn’t understand it, I didn’t get what the value was. I didn’t know how it related to VMs.” The point is we’re right at the very beginning of this whole journey. And we need to do a better job of explaining it to everyday people who aren’t part of this crazy Silicon Valley hipster scene.
Sometimes it seems like we live in the Age of Miscommunication. The picture of cloud-native seems clear, and the benefits are potentially gigantic. As McLuckie says, “It’s not just about a potential 10x improvement in efficiency, it’s about a 100x improvement in how long it takes to get [an application] to market.” But enterprises have heard these sorts of promises before and it’s going to take a lot of explaining and demonstration to get them to believe such claims.
I think that needs to happen sooner rather than later, because a significant number of C-level enterprise execs have bought into the idea that that they can “get out of the IT business” by moving to the cloud. This can be accomplished, they think, simply by adopting SaaS applications or even by moving legacy applications in containers to the public cloud.
That vastly underestimates how profound the opportunities presented by the new cloud-native world are and how much transformational rethinking may be required. It can and should be done step by step rather than all at once. But simply duplicating the mistakes of the past on a new platform won't do anyone any good.