Containers, microservices and the power of modern IT
Containers and microservices are powerful tools for solving many of the problems we face with modern tech. In this article, Dale Vecchio explains why you should seriously consider switching from a monolith to a microservice.
Over the past decade, web-scale companies have shown a dramatic commitment to containers. In 2006, Google paved the way for this technological innovation, as engineers Paul Manage and Rohit Seith defined and implemented software containers. Almost a decade on, the tech giant released Kubernetes – an open source version of the solution that has proven invaluable. According to Google, it is now running two billion containers/week at a rate of 3,300/sec.
Yet, Google is not the only one to embrace containers. Amazon, Facebook, Twitter and Netflix quickly followed suit. Therefore, the question has to be asked – if some of the world’s most innovative tech powerhouses are demonstrating a dramatic commitment to containers, why aren’t you?
The power of containers
So, what is it that makes containers such a desirable solution? This innovation is the fuel for the digital evolution of entire business sectors in both emerging and conservative companies. In the digital business era, innovation happens through highly recurring deployments of both new and improved software. That’s what Amazon does 50 million times a year, which in turn has made them into a dominant retail juggernaut. Every second, new retail services are deployed and existing ones incrementally improved at a rate of change that boggles the mind.
Let’s compare this rate of evolution with that of a corporation still depending on legacy applications. Even when its mainframe infrastructure provides a back-end function for digital internet services, how many times per year are its legacy systems upgraded? Best-in-class organizations do this once a quarter. Clearly, these companies are playing in a completely different game than the web-scale companies. They can never catch up. It’s like trying to race a rocket with a truck – never a fair race!
However, innovative approaches to loosen the shackles of legacy infrastructures are already being successfully implemented. For example, Software Defined Mainframe (SDM) is designed to enable companies with legacy mainframe applications to take advantage of the scale and agility of containers, exposing existing business logic as services or microservices. The web-scale giants of today are so fast in rolling out new or updated services because they are designed to be small to very small. Microservices are small pieces of software, designed to specialize in a small number or even a single business function.
The boundaries and dependencies of these microservices are extremely explicit and clear; they are defined by their communications with other microservices over the network. Amazon has recently disclosed that several hundred microservices are used during even the simplest purchase on its website.
These explicit and clear boundaries dramatically reduce the scale of testing – it becomes much easier. A minimal to single function enable automated testing to yield dramatic improvements in productivity. How else could anyone achieve the scale the web giants are getting? The usual fear of going to production that is associated with legacy systems is a result of the queasiness over testing.
Many mainframe shops are never quite sure if they’ve tested the whole thing because these systems are so monolithic and complex. With a simpler and limited function piece of software, supported completely by automated testing solutions, companies are able to roll out changes in a continuous delivery mode, incurring limited risk due to the smaller footprint of these microservices. Legacy mainframe applications are quite different. These large, complex monolithic systems, with a plethora of programs, each highly dependent on each other must be tested in their entirety over many weeks in order to find the “bug in the haystack”.
To embark on the path to modern IT, businesses in 2017 must be able to enable these legacy systems to participate in a more digital and agile world. This can be done by transforming monoliths into a myriad of independent microservices, without any changes to the source code.
By allowing existing COBOL Commarea programs to become a microservice that are hyper-connected with new applications written for mobile and social networks, innovation can occur on top of the cornerstones of the current business.
Exposing these legacy “crown jewels” as microservices enables them to be reused for modern digital business solutions. For example, banks with tens of thousands or millions of lines of COBOL that are used to determine the value of their banking customers, can reuse these functions, “as-is” and not have to spend the time and money to rewrite them in Java or another modern computing language. Solutions exist to enable organizations to isolate the legacy programs providing this “customer valuation” function as a separate microservice that can be readily reused by the evolving application portfolio.
By leveraging automatic application analysis techniques, IT teams are able to unambiguously understand all programs required to provide the business function and expose them as a microservice. Software upgrades are the fuel of innovation in the era of digital business. But first, businesses must find a solution that leverages the vast amount of business energy laying in legacy software assets into very dynamic and fast-evolving services, aimed at playing on par, with the web giants.