What is a Microservice?
Business requirements are not static. The rate of dynamic change for new evolving business needs is increasing as you are reading this blog. The traditional software development practice for building one big honking monolithic program to provision services is not applicable to the explosion of need. This old way of thinking and deploying is not conducive to Agile.
To understand a microservice let’s first start with our traditional view point. For this purpose, let’s say that you want to build a “Self Service Catalog”. To make this seemingly complex service less complex let’s break it up into many microservices. For example; one microservice might be for “Creation of Online Account” another for making a selection from the “Service Catalog”. One might be to “Select Payment Method” and yet another microservice for “Invoicing” and so on. These are many microservices or sub-services that will eventually be connected via Application Programming Interfaces. These microservices are decoupled and reusable.
Microservice capabilities are expressed formally with business-oriented APIs.
The positioning of services as valuable assets to the business implicitly promotes them as adaptable for use in multiple contexts.
Dependencies between services and their consumers are minimized with the application of the principle of Loose Coupling.
Autonomy is a measure of control that the implementation of the service has over its runtime environment and database schema.
Each service is fault tolerant so that failures on the side of its collaborating services will have minimal impact.
All these design principles contribute to the principle of composability which allows the service to deliver value to the business in different contexts.
The aim of discoverability is to communicate to all interested parties (developers, architects, testers…) a clear understanding of the business purpose and technical interface of the microservice.
Understanding principles for DevOps, the composition of the Continuous Deployment Pipeline, Agile Service Management and more will help to round out the knowledge needed to understand when, where and why we need microservices.
Education and Certification available for: