Exploring the role of microservices in containerization Bookmark has been added
Exploring the role of microservices in containerization
Deloitte on Cloud Blog
A microservice comprises small, independent processes that communicate using language-agnostic application programming interfaces (APIs). Both an architectural pattern and a mechanism, microservices are created by decomposing an application to the functional primitive and reconstructing it.
June 28, 2018
A blog post by David Linthicum, managing director, chief cloud strategy officer, Deloitte Consulting LLP
As the application is rebuilt for the cloud, it can be modified to expose services that are accessible by other applications. Functionality doesn’t have to be built from scratch because the originating and other applications can consume services from the rebuilt version.
One potential benefit of this approach is increased efficiency through microservice reuse. For example, credit validation, mapping, and address validation systems need to be maintained, a potentially significant cost for large enterprises.
Using a service-based approach, an organization can consume remote services that provide such functionality and more, eliminating the need to maintain those services. In addition, other enterprise applications can use the services, which can also be sold to other enterprises via the internet.
While simultaneous containerization and service enablement of an application is more art than science today, some success patterns are emerging:
Pattern one: Decide quickly how the application is to be broken into components that will be run inside of containers in a distributed environment. As noted above, break the application down to its functional primitive and rebuild it as component pieces to reduce the amount of code revision required.
Pattern two: Decouple the data from the application components (containers) by building data access as-a-service for the application’s use and sending data calls through those data services. With this approach, data can be changed without breaking the application. Plus, data complexity can be isolated in its own domain, which is a separate container accessed using data-oriented microservices.
Pattern three: Considerable initial debugging may be required despite the heralded stability of containers. With the application residing in a new architecture with new service dependencies, considerable black-box and white-box testing may be required prior to deployment.
While enterprises large and small expect that their applications will eventually live in the cloud, they won’t all be candidates for it at the same time. The use of containers and microservices can aid in selecting which ones to move. Developers responsible for refactoring should consider redesigning applications suitably for containerization and service orientation. Effectively, that means taking a monolithic application and turning it into something more complex and distributed. The payoff for that effort should be greater productivity, agility, and cost effectiveness, which are key objectives of cloud migration.
Interested in exploring more on cloud?