What are Microservices? – A Simple Explanation

I’m going to explain microservices to you based on the following sections:

  1. What are Microservices?
  2. Benefits of Microservices
  3. How to Create Microservices
  4. Challenges of Microservices

 

1. What are Microservices?

Microservices  or microservice architecture is an approach to application development where the application is broken down as a set of services. Each of these services would be running in its own process. Also each service is independent of other services. However, there would be communication between the services.

The following are properties of microservices:

  • Each service is independently deployable
  • Services are loosely coupled
  • Arranges around the business requirements
  • Highly testable and maintainable
  • Each service can be implemented with a different technology
  • Communication between services

In Figure 1 below, a microservice architecture is compared with a monolithic architecture.

Figure 1: Monolithic Architecture vs Microservices

 

 

2. How to Create Microservices

I’m currently working on Microservices Video Tutorial. This would be made available in my YouTube Channel.

You can subscribe so you get notified when the lessons are made. But for now, I will give an overview on how to create microservices. Also, I would let you know the tools you need.

 

3. Benefits of Microservices

Below are the  benefits of Microservices:

(a) Easier to test: With microservices, each service can be tested independent of other services

(b) Faster development: Microservices IDE are faster relative to monolithic IDEs

(c) Improved maintainability: Each microservice is small in size and therefore easy to modify when necessary

(d) Faster deployment: Since each service can be deployed independently, lesser bottleneck are encountered in deployment

(e) Better performance: Being lightweight makes microservices perform relatively better

(f) Development effort is reduced: You only need to develop services relevant to business objectives

(g) Better fault Isolation: In this case, particular service that creates some fault can easily be isolated and handled

(h) Breaks down complex application into simpler services: So microservices are less complex than a single monolithic application

(i) Continuous delivery can be achieved: Microservices can be deployed as soon as development is completed on that particular service.

(j) Removes long term commitment to technology stack: Each service could be provisioned with a different technology.

 

Microservice Architecture
Figure 2:  Since each microservices has its own database, maintaining data consistency becomes a challenge

 

 

4. Challenges of Microservices

You can find some of the challenges of microservices below:

Complexity of distributed system: Microservices architecture corresponds to building a distributed system. Hence, added complexity

Deployment Complexity. This is because, you need to have a model for deployment of several services.

Higher consumption of memory: Microservices reside in memory called images and  runs instances called containers.

Tools/IDEs for development: Tools for development of microservices are not as available as conventional tools and IDEs

Maintaining data consistency: Each microservice need to access data at some point. This can be achieved by creating a database for each service. This in turn leads to issue of maintaining data consistency across services. This is shown in Figure 2.

 

I would then start a tutorial on how to build microservices. Do check back in few days.

Also Learn about Docker, Containers and Kubernetes

 

More Tutorials on Microservices
User Avatar

kindsonthegenius

Kindson Munonye is currently completing his doctoral program in Software Engineering in Budapest University of Technology and Economics

View all posts by kindsonthegenius →

3 thoughts on “What are Microservices? – A Simple Explanation

Leave a Reply

Your email address will not be published. Required fields are marked *