Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Introduction :

Microservice is an architecture and approach to decompose/divide the single monolithic application


into a group of discrete services, which are communicate with each other by passing message
(REST/SOAP), through the medium such as HTTP/HTTPS/Websocket/MQs and reforms a group of
services (which are small, manageable, loosely coupled, technology-independent and separately
deployable) as a virtual single application. there are various ways and framework available to develop
the microservice such as spring cloud, Netty and HTTP REST is one of the famous ways to implement
the microservice. each of the microservice is small and individual services which extend the reusability
of the components and ensure the maximum uptime of the application, we can consider it as a
distributed application architecture.

What is microservice architecture in nutshell :

Microservice architecture is based on single responsibility single services principle, it refers to


combine each services which need to be changed for the same reason(high cohesion) and separate
the services which need to be changed for a different reason(loose coupling).

Microservices architecture is based on this principle and scales the software application to the group
of services that are loosely coupled and independent from each other, which can be developed,
deployed, and maintained independently. Each of these services is responsible for the specific
assigned task and can communicate with other services through simple APIs and Message Queuing
(Message Queueing) to solve a larger complex business problem.

Explain microservice architecture :

Pros of a Microservices Architecture

As the application based on this architecture, services are small/tiny, which can be developed by one
or more small teams from the starting and separated by business functions which make it easier to
scale up the development in terms of business requirement and effort if need be.

Once the services are developed, these group of microservice can also be deployed and containerized
independently of each other irrespective of the technology is being used in the service development
and hence it's easy to identify hot services (which is being accessed very frequently) and scale them
independent as a whole application. Microservices also offer improved fault tolerance and isolation
whereby in the case of an error in one service (in the case when any of the individual service stop
functioning) the whole application (the group of microservices) doesn’t necessarily stop
functioning/working. When the error/bug is fixed, it can be deployed only for the respective service
instead of redeploying an entire application.

A microservices architecture is making it easier to brings to the table and choose the technology stack
for the service development (programming languages, databases, Message Queuing etc.) which is
best suited for the required business functionality (service) instead of being required to use and take
a more standardized, single fits- customize application in all approach or use the SOA based
application using middleware communication.
How to start with a Microservices Architecture?

we currently perceive that a microservices design can give some distinctive features and benefits over
ancient monolithic architectures, currently, we should discuss by concerning the event of
microservice design.
Spring Cloud Foundry provides tools and open source library for application developers to quickly
develop some of the common and most widely used patterns and application architecture in
distributed systems such as microservice architecture this architecture involves application properties
version configuration management, service registry and discovery (Eureka Registry), circuit breakers
for fallback (fault-tolerance and isolation- Hystrix), dynamic routing gateway (Zull-API-Gateway),
service-based network-proxy, communication control bus, single time tokens, sessions, service cluster
state(Spring boot actuators), service to service calls (Feign/Rest client) messaging queuing (Kafka and
Rabbit MQ) etc. Coordination of distributed systems leads to boilerplate code/ patterns, and by using
Spring Cloud developers can quickly stand up services and applications that by eliminating those
patterns. They will work well in any distributed environment, including the developer’s laptop, metal
data centres, and managed platforms such as Spring Cloud Foundry service.
Spring Cloud focuses on providing good out of box experience for typical use cases of distributed
architecture and microservice development by providing the dynamic service spring cloud library :
Distributed/versioned configuration
Service registration and discovery
Routing
service-to-service calls
Load balancing
Circuit Breakers
cluster state monitoring
Distributed messaging
Spring Cloud uses a declarative programming approach, and frequently you get plenty of options with
simply a classpath amendment associate degreed/or an annotation.

Procedure to develop the microservice-based application :

1. Application Decompose
Understand the business requirement and capabilities and corresponding services requires a high-
level understanding of the business functionality.
Each service can be developed by a different team who is an expert in that specific domain and an
expert in the cutting edge development technologies that are best suited for those particular services.
This often leads to more stable API boundaries and more stable teams.

2. Building and Deploying

By using the service development technologies which are best suited for each purpose. For example,
you may choose to build a User Service in Java with a MySQL database and a Product
Recommendation Service with Scala/Spark.
Once developed, CI/CD pipelines can be set up with any of the available CI servers (AWS CodePipeline,
AWS cloud formation, Jenkins, TeamCity etc.) to run the automated test cases and deploy these
service independently/separately to different environments (Integration, QA (SIT and UAT), Staging,
Production, etc).

3. Design the Individual Services

When designing the individual services, define them and think about what will be exposed in terms of
input and output, what protocols will be used to interact with the service, etc.

4. Decentralize services

There are product and service-based enterprise (online marketing, e-commerce, Intelligent business
process systems, core/investment banking solution etc.) who have found business success with
microservices and have followed a DevOps model where the teams' members who develop the
application services take care of each and everything related to that application/service. There are no
specific separate support or maintenance teams available for the services/application.

Conclusion :

Now that we've got sufficient knowledge on what a microservices design is, why you’d wish to
develop and deploy a microservices-based design (architecture) for enterprise business product, what
is the business function, after consider all these factors alway prefer to with a start little by simply
setting out to develop microservices, begin with development of very few services, and with time and
knowledge add a lot of if as per the business requirement if need be.

You might also like