Containers, Microservices and Architectural Agility
At its essence, digital transformation is about aligning and connecting the building blocks of a modern corporation. Enterprise leaders often view digitization as an overhaul from older, disintegrated business information systems to a fully integrated digital backbone enabled by IT. However, creating change that lasts requires a delivery model that’s built for change. We need to think of transformational activities as stepping stones along the way to new business opportunities, not just individual IT projects. It is important not to lose focus on all that is afforded by going digital. The cohort of digital benefits are often more valuable than any single benefit in isolation.
Going digital without the management and organizational framework to support it is akin to building the fastest, most capable fighter jet without training the flight crew to fly it. In the world of organizational design, the agile enterprise is akin to flight school. It allows an organization to fully exploit the capabilities of a digital business – one that’s organized around value delivery and set up to adapt quickly to market demands at whatever speed is required.
Though the agile concept has been named and branded many things, all flavors aspire to the same fundamental goal – to adapt and iterate quickly in response to market feedback.
Business model innovators first used the push to digitize to facilitate the “servicizing” of previously single transaction revenue streams. Early-adopters began to explore ways to rethink value delivery and revenue models. Then they reorganized their labor force to support the new dynamics of their digital operations. Now that their business models and organizational designs have “gone digital,” the next generation of agile rests in architecture.
Enterprises must now optimize the way data moves between digital nodes and improve the flexibility with which nodes can be deployed and rearranged. This manifests in a microservices framework. Facilitated by the emergence of container technologies, microservices are rapidly gaining steam with development teams.
Microservices
“Microservice architecture is a method of developing software applications as a suite of independently deployable, small, modular services in which each service runs a unique process and communicates through a well-defined, lightweight mechanism to serve a business goal.”
-SmartBear Software, an application performance monitoring and API management company based in Boston.
While microservices stress downsizing and fractionalizing application components, containers allow components to operate independently of one another and independently of their environment. In essence, a microservices framework using containers mirrors the autonomous, agile organizational structure. You’d be right to recall Conway’s law at this point. “Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure.” An agile architecture framework should, therefore, be the natural outgrowth of an agile enterprise.
Of course, not all IT architectures – in whole or part – are well suited for a transition to microservices. When considering a change in architectural approach, it’s important to understand the following benefits and drawbacks of the framework and supporting technology:
Benefits of Containers and Microservices:
With effective governance, a microservices architecture that depends on containers can use available infrastructure resources more efficiently than a traditional service-oriented architecture (SOA).
Because components are pared down to their essential functions, they are easier to update, upgrade, adapt and debug – all of which can be done with junior resources.
With container-instance duplication and orchestration tools like Kubernetes, a microservices architecture can be more resilient and scalable.
Since a microservices architecture emphasizes component simplicity, information passed between components also is simplified. This allows the architecture to shift away from an enterprise resource bus (ERB) framework to lightweight application programming interface (API) or point-to-point extract, transform, load (ETL) messaging services, which have the potential to introduce performance opportunities.
Concerns with Containers and Microservices:
A more fractured architecture that uses containers requires more governance and orchestration both within the architecture and at the organizational level.
As container-instances are duplicated to achieve scale and redundancy, synchronization concerns inevitably will grow.
The scalability of microservices may outstrip the ability to read and write from legacy databases and cause performance limitations.
From a management perspective, best practices with respect to the type of employee, management structure and roles required to manage a microservices-centric engineering team are still not well defined.
Containers
“A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Containers isolate software from its surroundings, for example differences between development and staging environments and help reduce conflicts between teams running different software on the same infrastructure.”
-Docker Inc., the original author of the Docker open source project and leader in container architecture tools.
ISG is at the forefront of delivering digital strategies with companies of all sizes, at all levels of digital maturity and at all positions along the digital value chain. This year ISG is launching a comprehensive consulting toolset that spans the digital backbone to DevOps and the agile enterprise.
Digital Transformation: Three Areas of Focus to Enhance Business Value
Creating a Culture for
Enterprise Agility
Is Your Network Ready for your Digital Future
Containers, Microservices and Architectural Agility
ISG Thought Leadership