What is Software Architecture?
Architecture serves as a blueprint for a system. It provides an abstraction to manage
the system complexity and establish a communication and coordination mechanism
among components.
•It defines a structured solution to meet all the technical and operational
requirements, while optimizing the common quality attributes like performance and
security.
These Architecture decisions includes −
• Selection of structural elements and their interfaces by which the system is
composed.
• Behavior as specified in collaborations among those elements.
• Composition of these structural and behavioral elements into large subsystem.
• Architectural decisions align with business objectives.
Microservice Architecture
•Microservices are small, independent, and loosely coupled. A single small team of
developers can write and maintain a service.
•Each service is a separate codebase, which can be managed by a small development
team.
•Services can be deployed independently. A team can update an existing service
without rebuilding and redeploying the entire application.
•Services are responsible for persisting their own data or external state. This differs
from the traditional model, where a separate data layer handles data persistence.
•Services communicate with each other by using well-defined APIs. Internal
implementation details of each service are hidden from other services.
•Supports polyglot programming. For example, services don't need to share the same
technology stack, libraries, or frameworks.
A microservices architecture is advantageous over a
monolithic architecture for several reasons. Microservices
are easier to build (because of their smaller size), to
deploy, to scale (as more microservices can be added to
any step to run in parallel), to maintain, etc.
Microservice Architecture
The Microservice architectural style is an approach to developing a single application
as a suite of small services, each running in its own process and communicating with
lightweight mechanisms, often an HTTP resource API. These services are built
around business capabilities and independently deployable by fully automated
deployment machinery.
Microservice Architecture?
A microservices architecture is a technology stack in which a set of software
applications designed for a limited scope, known as “microservices,” work with each
other to form a bigger solution. Each microservice, as the name implies, has minimal
capabilities for the sake of creating a very modularized overall architecture.
A microservices architecture is a design pattern in which each microservice is just
one small piece of a bigger overall system. Each microsystem performs a specific
and limited scope task that contributes to the end result.
Disadvantage of Microservice Architecture
•Due to distributed deployment, testing can become complicated and tedious – and often
hinders some of the scaling benefits of microservices
•Increasing number of services can result in information barriers
•Additional complexity as the developers mitigate fault tolerance, network latency, and a
variety of message formats as well as load balancing
•Being a distributed system, it can result in duplication of effort
•When number of services increases, integration and managing whole products can become
complicated
•Developers have to deal with the additional complexity of a distributed system
Characteristics Of Microservices
Multiple Components It can be broken down into multiple
component services. Why? So that each service can be deployed,
redeployed independently without compromising the integrity of
you might only need to change one distinct service instead of
applications.
Built For BusinessThe microservices style is usually organized
around business capabilities and priorities. Unlike a traditional
approach – where different teams each have a specific focus on,
technology layers, or server-side logic – microservice architecture
teams.
Characteristics Of Microservices
Simple RoutingMicroservices act somewhat like the classical UNIX
system: they receive requests, process them, and generate a
is the opposite to how many other products such, as ESBs
work.
DecentralizedSince microservices involve a variety of technologies,
old-school methods of centralized governance aren’t optimal. The
community favors decentralized governance so its developers can
be used by others to solve the same problems.