what-are-microservices

What are Microservices?

Microservices are an architectural style and comprises of small modules/elements which are independent of each other. At times they are interdependent on other microservices or even a database. Breaking down applications into smaller elements brings scalability and efficiency to the structure.

Every microservice is deployed independently and presented in a different repository. There will an independent continuous delivery pipeline allocated to each microservice.

How do Microservices work?

Cloud microservices further break down the SOA (Service Oriented Architecture) strategy into smaller functional services. A collection of microservices becomes macro services where code updates or changes happen quickly and smoothly without interrupting the workflow.

A microservice task is to address one concern at a time. This helps in scalability, for example, if there are any code changes then updating the code of a single function is possible. There is no need to refactor or re-deploy rest of the framework of microservices. Even in the case of failures, the services are independent of each other thereby creating a reliable environment.

Another best part about microservices is that they are self-sustaining.

For example, consider a microservice in one of the clusters that have four subfunctions and one of the subfunctions fails. With lots of orchestration tools available in market today, self-healing can occur without human intervention. It happens without impacting the functioning of the framework and workflow. It is automatic and transparent to the end-user.

Microservices architectures are used along with Docker containers (packaging and deployment set-up). VM images were used for deployment until recently. But over time, developers have realized that containers are more efficient than VMs. With containers, the code (and required code libraries) can be deployed on any Linux system (or any OS that supports Docker containers). Containers are the perfect integration practice for microservices. The speed at which it can be launched or re-deployed helps during the events of migration or system failure.

Since containers are native to Linux, commodity hardware can be applied to a huge collection of microservices in any data center, private cloud, or hybrid multi-cloud.

Microservices and cloud-native architecture have always been associated together almost from the beginning, so it is common that the user community looks at it as similar practices. Microservices and containers can be run on any compatible OS (generally Linux). The OS can be present in the public cloud, on-premises, or in a virtual hypervisor.

Today with more development happening in the cloud, cloud-native architectures and practices have migrated back to on-premises data centers. A lot of enterprises are building their own local environs where they share the same primary characteristics as the cloud. The purpose is to enable a single development practice across any location. Popularity and more and more adoption of microservice frameworks and container technologies have e made cloud-native practice appealing and a necessity for companies.

This post is part of Microservices-Step by step”.

Back to home page