What are Microservices?
Micro Services is a buzz word now a
days a and people usually question what exactly are this microservices and
how to test them.
So in this article, we will try to understand what is MicroServices and what are the different strategies to test them.
Well before going into depth of Micro
Services we need to understand what exactly is Monolithic Architecture
that prevailed before the introduction of Micro Services.
What is Monolithic
Architecture
![]() |
Monolithic Architecture |
Below are some of the important
aspects of Monolithic Architecture
ร application is built using a single code base.
ร Application is further divided into multiple modules.
ร These Large monolithic codebases are complex and hard to
understand.
ร If a new developer is getting started with it, he/she will be
facing challenges to understand itself.
ร As these are from the single code base, they need a single build.
ร And the build time will also be high, it will keep on increasing
with the addition of new features.
Issues with Monolithic Architecture
ร UnScaling- Scaling the application will be very challenging as each time application needs to be
updated even for smaller changes.
ร Once
if the application is done, it will be very difficult to change language or
framework because everything is tightly coupled.
ร Slow Development-It
takes a lot of time to built since for any changes each and everything has to be
built sequentially.
ร Continuous integration and deployment will be complex with larger build times.
ร If there is any problem with code in a module,
this may lead to failure of the entire system.
ร if you want to handle this problem, you need
to build the entire application and deploy it entirely.
What are MicroServices
It is an architectural style that structures an application as a
collection of services that are
- Highly
maintainable and testable
- Loosely
coupled
- Independently
deployable
- Organized
around business capabilities
- Owned
by a small team
The
microservice architecture enables the rapid, frequent and reliable delivery of
large, complex applications. It also enables an organization to evolve its
technology stack.
MicroService Architecture |
Some of the important features
include:
- This
contains small individual modules for each service.
- Each
service will be implementing a use-case.
- As
these are independent, they will be very small and loosely coupled.
- Beauty of microservices is that each of the services can be having different codebases.
- JAVA
- Python
- Java
Script
- PHP
etc.
- As these services are independent, they
can be independent built and deploy.
- So,
if there are any changes needed to be done in any service, We can deploy
only that service build unlike the entire build in a monolithic architecture.
- Because
of these flexibilities, we can develop and deploy services independent to
each other.
- Developers
need not have a complete picture of the entire project.
- They
can only concentrate on the service they are working, which is very
flexible to new employees.
- Maintaining several small teams for
different services are flexible.
Popular Microservices
Testing Strategies
1)
Unit Testing
Please refer to this link to Know more about Unit Testing.
2)
Integration Testing
Please refer to this link to Know more about Integration Testing.
3)
End to End Testing
Please refer to this link to Know more about End to End Testing.
All the above Strategies i already have covered into different articles so instead of going in-depth just sharing the links for easy references.