Microservices Architecture : Microservices Beginners Tutorial

By | June 8, 2021

While designing solutions to solve complex problems, various approaches, best practices and latest sophisticated tools & technologies are used to ensure that implemented solutions duly solve the underlying problems and provide robust, highly efficient, scalable options for current and future needs.

When architecting a software solution; deciding between a fat monolithic architecture based solution and a fine-grained microservices architecture based solution is always among the major decisions that decide the future roadmap of any such solution.

In this article, we will talk about microservices and explain basic concepts of Microservice architecture and will talk about Monolithic Vs Microservices architecture.

What is a Microservice ? An overview of Microservice Architecture

Microservices architecture is an approach of solving a complex software problem by implementing smaller, fine-grained, independent, loosely coupled services which can talk to each other to form composite services based on underlying business problems being solved.

This approach of building such services separately and independently helps organizations to achieve plenty of benefits associated with this approach. Each microservice revolves around some specific business capability and consists of discrete tasks specific to that business need.

Before we talk any further about benefits associated with Microservices Architecture, It is important to first talk a bit about comparison between Monolithic and Microservices Architecture.

Monolithic Vs MicroService Architecture

In Monolithic Architecture, applications are developed and deployed as a whole in the form of a single solution for all the problems being addressed by the solution. This results in a single fat application which gets deployed to the runtime environment wholly.

In case of monolithic architecture, application might have been built with multiple layers for front-end, back-end and business logic but overall, entire solution is packaged as a single deployable artifact.

 

Microservices architecture is just opposite to Monolithic Architecture where smaller, loosely coupled, fine-grained services are designed, developed and deployed with a higher degree of independence & flexibility in terms of architectural decisions, technology stack selection, deployment options as well as scalability and performance tuning related approaches.

 

What are the Problems with Monolithic Architecture?

Monolithic architecture is still widely used for applications of various complexities in different business domains but there are various challenges and problems associated with Monolithic Architecture which need to be considered while architecting a software solution.

Some of the problems associated with Monolithic Architecture are as below:

  • Complex Application with difficulty to scale, change and optimize for future needs.
  • Deployment issues due to a single packaging without a control on individual services resulting in complete solution re-deployments even for some smaller tweaks, changes or bug fixes.
  • Resistance to architectural and technology stack changes due to bigger impacts and higher re-work. E.g. changing a complex monolithic solution from Java to .Net might be a huge challenge.
  • Performance Degradations with the passage of time as underlying database grows.

Why Microservices? Benefits of Microservices Architecture

With potential issues, concerns and challenges of monolithic architecture explained above, we reach to a good advocacy point for microservices architecture as a solution to all such problems.

Below are some of the major benefits of Microservices Architecture:

  • Functional Separation based on business capabilities resulting in a better control.
  • Ease of deployment with services independence without affecting the whole solution.
  • Greater scalability with potential to scale-up or scale-down at individual service level as & when required.
  • Higher level of flexibility with possibility to choose technology stack, tools, frameworks etc. at individual service levels without impacting other services.
  • A better fine-grained fault tolerance at individual service level.

Below video tutorial covers Microservices Architecture topic in more detail.

If you have any further questions, feel free to comment below.

Ajmal Abbasi

Ajmal Hussain Abbasi is Integration Consultant By Profession with 13+ years experience in Integration domain mainly with TIBCO products. He has extensive practical knowledge of TIBCO Business Works, TIBCO Cloud, TIBCO Flogo, TIBCO Mashery, TIBCO Spotfire, EMS and TIBCO ActiveSpaces. He has worked on a number of highly critical integration projects in various sectors by using his skills in TIBCO Flogo, TIBCO API Management (Mashery), TCI, Tibco Designer, TIBCO Business Studio, Adapters, TIBCO EMS, RV, Administrator, TIBCO BE, TIBCO ActiveSpaces etc. Ajmal Abbasi has experience with MuleSoft ESB as well. Ajmal Abbasi is also experienced in the area of API Management particularly with WSO2 API management platforms. Ajmal Abbasi is also experienced in developing solutions using Core Java and J2EE Technologies. You can contact Ajmal Abbasi for Consultancy, Technical Assistance and Technical Discussions.

More Posts - Website - Facebook - LinkedIn - YouTube

One thought on “Microservices Architecture : Microservices Beginners Tutorial

  1. Pingback: Microservices Vs API: Difference Between API and Microservice

Leave a Reply

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