According to Gartner, there are 4.9 billion connected devices in the world today, and that number is expected to reach 25 billion by 2025. Customers expect service at their fingertips. Even when it comes to traditional industries like banking, retail, finance, government and telecommunication, consumers want to engage in the personal and seamless ways they engage with social media and e-commerce. They rely on social ratings, peer views and online research, and expect to engage via different channels. They are concerned about the “experience” in the decision journey, and this changing nature is forcing enterprises to transform from the conventional IT organization to a real time, data-driven, customer-centric, performance-intensive agile business.
Additionally, the “Internet of Things” has also disrupted the business model with value-chain extending to non-human customers and practically “everything” blurring the physical and digital divide.
Moving away from the Monolith
Organizations have typically implemented a “monolithic” principle of architecture for applications wrapping presentation, business, data or integration logic in deployable units of complete functionality.
Previously, focus was on the smooth functioning of operations and maintenance of applications by innovating and evolving design principles and patterns.
Eventually an evolution took place, segregating layers and modularization so that responsibilities were separated and based on the service-oriented integration and architecture principles.
While this solution could scale horizontally to some extent, keeping key architectural concerns in consideration, it eventually bloated with loss in agility and delivery speed needed for Digital requirements. Services started growing in size resulting in increased coupling, higher maintenance cost and low agility. New technology adoption was also a challenge because one type of technology was “locked in” and adoption would require significant modification or rewrite of the application.
The Digital business model requires IT to be agile in terms of business and operational processes in order to provide timely delivery of complex cross-vertical products. Access through multiple and new channels requires that architecture scale infinitely, integrate easily and be available on-demand with real-time capability. A personalized customer experience requires large data processing capabilities. Traditional “monolithic architecture” must transform to a scalable “Digital architecture.”
Why Microservices Works so well for Digital
A Microservices architecture pattern is based on the principles of decomposing a “monolithic” application into a set of light-weight collaborating services with each service focused on single business functionality and sufficient in its own context with well-defined interfaces. The architecture is vendor neutral, language-agnostic and follows light-weight, API driven or event-based message exchanges between collaborating services. A small unit of business capability with bounded context enables a rapid development process (DevOps) with a relatively small team size and effective deployment assembly that brings in agility, elasticity and scalability. The key building blocks of Microservices architecture are service registry, service bus or event bus, and independent participating Microservices with small functionality and interfaces.
These inherent capabilities of Microservices architecture make it a good fit for Digital.
The transformation to Digital architecture, however, requires a defined strategy and governance. The foundation of Digital architecture needs to be carefully crafted to allow co-existence with the monolithic application, in order to deliver functionality in a continuous manner. A domain-driven design principle can be used to decompose and componentize the application into individual functions operating – each in its own boundary context – and interacting with other functions using well-defined interfaces or events.
The scope definition of Microservices is an iterative process that may depend on criteria such as complexity, coupling and size of the service before finalization.
The timely and continuous delivery of Microservices can be ensured using a DevOps setup bringing agility, lightweight methodologies and cross-functional collaboration between development and operations teams. DevOps in the Microservices architecture brings automation in the development, testing and deployment process and measures various metrics helpful to optimizing service delivery. Thus, the governance model, proven design principles and a well defined DevOps approach acts as formidable transformation agents to a Microservices based Digital Architecture.
Because of its distributed nature Microservices architecture does present some challenges as well in monitoring of distributed logs and managing smaller but numerous deployment and addressing performance issues and security threats. These can still be addressed, on a case basis, with appropriate solution techniques such as caching, layering, encryption and optimization techniques.
A successful Digital transformation depends on the combination of a strong governance model, collaborative teams, flexibility in adoption of new technologies and processes. It requires a commitment and investment from the entire organization to redefine structure and process while continuing to support a legacy application. The transformation must build new functionality while supporting existing business with tactical solutions.
Delivering functionalities in a timely and continuous fashion, scaling individual functions for desired non-functional requirements and managing and measuring the end-to-end service flow makes Microservices architecture the “polyglot” of technical architecture for a Digital business model.