Skip to main content

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:


Comments

Popular posts from this blog

Four Service Characteristics

Recently I came across several articles by researchers and experts that laid out definitions and characteristics of services. ITIL provides us with a definition that can help drive the creation of value-laden services: A means of delivering value to customers by facilitating outcomes customers want to achieve without the ownership of specific costs and risks. An area that ITIL is not so clear is in terms of service characteristics. Several researchers and experts put forth that services have four basic characteristics (IHIP): Intangibility—Services are the results of actions not things. They have no physical presence and represent a logical set of elements. One way to think of service is “work done for others.”  Heterogeneity—Also known as “variability”; services are unique items because of the mechanisms used to deliver services, which is people. Because the people element adds variability, the service is variable. This holds true, especially for the value proposition—not eve...

What Is A Service Offering?

The ITIL 4 Best Practice Guidance defines a “Service Offering” as a description of one or more services designed to address the needs of a target customer or group.   As a service provider, we can’t stop there!   We must know what the contracts of our service offering are and be able to put them into context as required by the customer.     Let’s explore the three elements that comprise a Service Offering. A “Service Offering” may include:     Goods, Access to Resources, and Service Actions 1. Goods – When we think of “Goods” within a service offering these are the items where ownership is transferred to the consumer and the consumer takes responsibility for the future use of these goods.   Example of goods that are being provided in the offering – If this is a hotel service then toiletries or chocolates are yours to take with you.   You the consumer own these and they are yours to take with you.      ...

What is the difference between Process Owner, Process Manager and Process Practitioner?

This article was originally published in 2015. With the Introduction of ITIL 4, some of this best practice has changed. See  ITIL 4 and the Evolving Role of Roles . Updated Definitions in ITIL 4: Process Owner: In ITIL 4, the concept of 'processes' has expanded into broader 'practices.' Consequently, the Process Owner is now often referred to as the 'Practice Owner.' This individual is accountable for the overall design, performance, integration, and improvement of a specific practice within the organization. They ensure that the practice achieves its intended outcomes and aligns with the organization's objectives. Process Manager: Now commonly known as the 'Practice Manager' in ITIL 4, this role is responsible for the day-to-day management of the practice. The Practice Manager ensures that activities are carried out as intended, manages resources assigned to the practice, and oversees the practitioners performing the work. Process Practit...