Introduction to Microservices Journey: Beginner to Expert

Introduction to Microservices Journey: Beginner to Expert

Sample Microservice Architecture

#001

Hello Friends,

We are starting a journey to learn about Microservices. This series of articles will help you to understand Microservice software architectural style with detail. If you start as Beginner, I can assure you that you will eventually become Expert at the end of this series. So, best of luck and happy learning. As Author, I shall try my level best to explain and provide hands on experience as much as possible to grab your attention. 😊

To start with, I want to share few scenarios from my own experience which will give you a context of understanding the importance of Microservices.

Scenario 1: Few years back when I was working on one of my past java/j2ee based project. The entire code-base used to be packaged as single EAR file and deployed in an application server. The development cycle was for almost 2 years after which it went into enhancement and maintenance phase. The packaging and deployment was a nightmare as it used to take hours for a change to be propagated to production server. Identifying test scope for every deployment was also critical.

Scenario 2: After that I was working on SOA technologies with N tier architecture. Heavy and costly middleware products were deployed on multiple servers. Hence, deploying single feature spanned across multiple servers with complex configuration settings and its change management was difficult. The next challenge was scaling of features.

Scenario 3: In another situation, it was observed that some of the specific features were extensively used by our end users, specifically in some part of the day and were causing heavy load on the servers. This performance issue cascaded to other features as well.  The options were provisioning additional boxes and do installation and networking. But will take time and the issue will not be addressed immediately. This will also incur considerable COST to Business.

In every scenario mentioned above has opportunities to improve efficiency and productivity of Software development and its run & manage phase. Problems highlighted in each scenario can be addressed if we follow Microservice software development approach. Microservice architectural style has answers of these problem areas. We will learn about those in this series one after another. Stay with us Guys, I promise that you will not regret for your invested time in this 😊

In today’s world, “time to market” is very important as clients are demanding to bring their critical features to market very fast. So, they do not lose competitive advantage. To meet this demand, infrastructure provisioning, software installation, networking should be done very quickly. Also packaging and deployment time should be automated and should be very fast.

Now, Microservice development approach is also supported by various Software development methodology and technological tools, framework as following.

Microservice software development style is tightly couple with Cloud Development approach. For last few years public cloud platforms (e.g AWS, IBM Cloud etc.) where setting up server instances, setting up network and do installations is very easy and can be completed in few minutes or may be in hours. It is never be an exercise in days. Kudos to such Cloud platforms!

DevOps is another methodology or cultural approach which is also very popular as continuous code integration, continuous deployment, automatic test cycles & complete collaboration among Development and Operational team members with help of various tools. DevOps accelerates the benefit of Microservice style of development.

Containerization technologies like docker is also becoming backbone of Microservice development style where an application and all application dependencies – even application server can be bundled and shipped together. This helps quickly deploy and scale the service as needed very quickly.

Open source technologies are now helping Software architectural and development team to quickly decide, build and deploy product without depending on complex procurement process of costly software tools.

As you can observe by now that Microservice is no single technology rather encompassing multiple technologies and is more of an architectural style. Public cloud, DevOps, Technologies like java, Docker, Various tools are all facets of microservices. Though, it is technically feasible to develop Microservices without help of these but we can maximize the benefit of using Microservices if we leverage Cloud, DevOps, Containerization etc.

In my next blogs, I will address Microservice definition, principles and characteristics and more of terminologies within Microservice scope. This will help you to kick start your Microservice journey from “Beginner to Expert”.

Happy reading friends and come back soon for our next update. Don’t forget to comment below if you need any further help, we will try our level best to answer all your technical queries.

Till then enjoy!

Author: Debajyoti Mukherjee

Debajyoti Mukherjee has more than 11 years if IT experience in application design , application development. He has worked in large MNCs and has worked for eminent clients. He is proficient in custom development , cloud platform , microservice based application migration.

2 Replies to “Introduction to Microservices Journey: Beginner to Expert”

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.