May 03, 2017 Containers and Dogma
Some principles of IT don’t change just because all the moving parts are changing. Containers and DevOps and cloud make it easier to start and change things quickly, but they won’t move a million line Cobol program over night.
Inertia and Microservices
In a fascinating benchmark interview this week, someone who’s been in the business even longer than me pointed out that even though containers and microservices are radically altering the way he is doing business now (in a tiny startup) they would not have moved the needle a lot at some of his other gigs. When you have millions of lines of code (in Cobol or even assembler) and billions of dollars invested in their development and maintenance and billions more dollars of income tied to their continued good function, the ability to replace them with a microservices architecture and even the desire to are not enough. Absent compelling economic justification, the code is going to stay as it is (sometimes long after it has become a source of serious risk due to dwindling pools of skilled programming staff).
Microservices and Acceleration
However, he also allowed as how a favored technique from the SOA era, wrapping apps, is going to become even more important as containers and microservices rise. Massive monoliths of code will get not one but many wrappers. The rise of APIs will make it easier to pick apart the monoliths and replace them piecemeal over time. If they bought someone whose business depended on on-premises infrastructure and big old applications, “we will run it, and wrap it, and let it die over time.” In that way, he would accelerate the acquired business to the speed of his core–new–business.
Cloud, but Not Just Any Cloud
And of course, cloud first and ultimately cloud always (modulo migration time) but real cloud–which in his mind means microservices and containers and architectures more like Netflix’s than DOD’s. He’s putting applications in Azure compute, and deploying code in Azure PaaS, and developing apps to run in Amazon’s AWS. He’s buying into SaaS, but very selectively, because “too many fat lumbering on-premises apps are being run on someone else’s cloud and called SaaS, but are not truly cloud native.” What you run something on is not a reliable guide to how it was designed or written.
And, of course, there’s a lot not moved into cloud yet. Amazon and Microsoft may rule with respect to what has moved into cloud so far, but with 90% of the enterprise workload still running in enterprise data centers, there’s an awful lot of chance for real changes in that landscape.
It’s nice to get reminded that just because so many things in IT change so fast, some principles endure. Pay attention to design. Inertia is real. Cool and better can’t always trump functioning and fully depreciated. Early leaders in a space can be displaced by later entrants tracking the motion of the mass of enterprise work.