Key Principles and Concepts of Microservices Architecture
VerifiedAdded on 2022/03/16
|8
|1777
|26
AI Summary
Domain-driven design, continuous delivery, platform and infrastructure automation, scalable systems, multipurpose programming, and persistence are all aspects of the architectural concept known as microservice architecture. The various operational and design tenets, as well as the underlying theoretical notions, will all be covered in the next paper.
Contribute Materials
Your contribution can guide someone’s learning journey. Share your
documents today.
2021
MIS603 Microservices Architecture
Student Name:
Student ID:
MIS603 Microservices Architecture
Student Name:
Student ID:
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
1
Microservice Architecture
Table of Contents
Introduction:..........................................................................................................................................2
key principles and concepts of microservices architecture...................................................................2
Advantages of microservices.................................................................................................................3
Disadvantages of microservices.............................................................................................................4
Conclusion:............................................................................................................................................5
Microservice Architecture
Table of Contents
Introduction:..........................................................................................................................................2
key principles and concepts of microservices architecture...................................................................2
Advantages of microservices.................................................................................................................3
Disadvantages of microservices.............................................................................................................4
Conclusion:............................................................................................................................................5
2
Microservice Architecture
Introduction:
The concept given by Robert C. Martin in its Single Responsibility Principle is the
foundational concept of the microservice architecture which is extended through loosely
coupled/linked services that can be independently developed, deployed and maintained.
Each of these services is responsible for the individual task and can interact with other
services via simple APIs in order to address a more complex business issue. Microservices
is a model architectural inherent in domain-driven design, continuous delivery, platform and
infrastructure automation, scalable systems, multi-purpose programming and persistence.
The following report will encapsulate the different operational and design principles as well
as the underlying theoretical concepts behind this method. The report will also reflect on the
different advantages and disadvantages of the Microservice architecture as well.
key principles and concepts of microservices architecture
Implementation of Domain-Driven Design
The architecture provides a domain-driven design for the different domains of the
microservices working in accordance to each other. This strategic approach prioritizes the
core domain, minimising the possible slippage of the application. As a team, your entities,
repositories, values, and services should be listed, which constitute your model's bounded
context. This helps to create the limitations surrounding choices such as who uses it, how it
is used and where it applies in a broader application (Surianarayanan et al.,2019).
Single responsibility Principle
One of the key principles of Microservice architecture that adheres the SOLID design
principle proposed by Robert C. Martin is the Single responsibility Principle. It indicates that
one unit, be it a function, class or microservice, should perform one responsibility. At no time
should one microservice be responsible for more than one responsibility (Aroraa et al.,2017).
Built around business Capabilities
Microservices should focus on certain corporate operations and make sure it helps to do the
tasks in hand. A microservice architecture should always adopt the use of a backend
database storage or a suitable technology stack that is effective for business purposes
(Pacheco, 2017).
The limitation of this principle arrives when monolithic systems are developed through which
multiple business solutions are being attempted to solve with certain compromises in certain
regions. Microservices allows one to choose the best solution for the given problem.
Microservice Architecture
Introduction:
The concept given by Robert C. Martin in its Single Responsibility Principle is the
foundational concept of the microservice architecture which is extended through loosely
coupled/linked services that can be independently developed, deployed and maintained.
Each of these services is responsible for the individual task and can interact with other
services via simple APIs in order to address a more complex business issue. Microservices
is a model architectural inherent in domain-driven design, continuous delivery, platform and
infrastructure automation, scalable systems, multi-purpose programming and persistence.
The following report will encapsulate the different operational and design principles as well
as the underlying theoretical concepts behind this method. The report will also reflect on the
different advantages and disadvantages of the Microservice architecture as well.
key principles and concepts of microservices architecture
Implementation of Domain-Driven Design
The architecture provides a domain-driven design for the different domains of the
microservices working in accordance to each other. This strategic approach prioritizes the
core domain, minimising the possible slippage of the application. As a team, your entities,
repositories, values, and services should be listed, which constitute your model's bounded
context. This helps to create the limitations surrounding choices such as who uses it, how it
is used and where it applies in a broader application (Surianarayanan et al.,2019).
Single responsibility Principle
One of the key principles of Microservice architecture that adheres the SOLID design
principle proposed by Robert C. Martin is the Single responsibility Principle. It indicates that
one unit, be it a function, class or microservice, should perform one responsibility. At no time
should one microservice be responsible for more than one responsibility (Aroraa et al.,2017).
Built around business Capabilities
Microservices should focus on certain corporate operations and make sure it helps to do the
tasks in hand. A microservice architecture should always adopt the use of a backend
database storage or a suitable technology stack that is effective for business purposes
(Pacheco, 2017).
The limitation of this principle arrives when monolithic systems are developed through which
multiple business solutions are being attempted to solve with certain compromises in certain
regions. Microservices allows one to choose the best solution for the given problem.
3
Microservice Architecture
Design to failure
One of the crucial principles of the Microservice architecture is to generate a software
system which is robust and fault-tolerant. This involves continuation of one service when
another one experience failure or performance issue. The architectural principle is oriented
around this goal that the entire application should not go disruptive by memory leakage,
database connectivity problems or other problems in one micro service (Murugesan, 2017).
Since microservice-based applications are independent and autonomous, they can use the
circuit breaker pattern to cut off communications with one or more services that have or is
experiencing failure.
Infrastructure Automation
Another extremely significant architecture principle is to prepare and implement
infrastructure for microservices. A service can be deployed independently and consolidates
all dependencies, including execution environments as well as library dependency. The
execution environment might be a virtual machine abstracting physical or web servers etc.
One of the great distinctions between SOA and Microservices is the level of their autonomy.
Although most SOA implementations offer service-level abstraction, microservices continue
to abstract the execution environment as well.
Ensure High cohesion and Low coupling
Cohesion and coupling are typically interchangeable phrases in the description of an
architecture of the microservices. The former pertains to the degree of intradependence
between the application modules, while the latter pertains to the degree of interdependency.
An architecture for microservices should be constructed according to a paradigm that
guarantees a high cohesion and a low coupling. This design produces microservices that are
scalable, can adopt to changes, and are allowed to extend over time. As the modules
function together, the greater the cohesion the better the performance is expected. If
cohesiveness is low, too many communications between the service would be sent back and
forth, resulting in deteriorated performance and scalability (Rajesh,2016).
Advantages of microservices architecture
The benefits of microservices seems to be substantial enough to persuade certain large
company players like Netflix, eBay, amazon to adopt this method. Microservices offer these
following advantages in comparison to the monolithic design –
Key Monolithic architecture Microservice architecture
Microservice Architecture
Design to failure
One of the crucial principles of the Microservice architecture is to generate a software
system which is robust and fault-tolerant. This involves continuation of one service when
another one experience failure or performance issue. The architectural principle is oriented
around this goal that the entire application should not go disruptive by memory leakage,
database connectivity problems or other problems in one micro service (Murugesan, 2017).
Since microservice-based applications are independent and autonomous, they can use the
circuit breaker pattern to cut off communications with one or more services that have or is
experiencing failure.
Infrastructure Automation
Another extremely significant architecture principle is to prepare and implement
infrastructure for microservices. A service can be deployed independently and consolidates
all dependencies, including execution environments as well as library dependency. The
execution environment might be a virtual machine abstracting physical or web servers etc.
One of the great distinctions between SOA and Microservices is the level of their autonomy.
Although most SOA implementations offer service-level abstraction, microservices continue
to abstract the execution environment as well.
Ensure High cohesion and Low coupling
Cohesion and coupling are typically interchangeable phrases in the description of an
architecture of the microservices. The former pertains to the degree of intradependence
between the application modules, while the latter pertains to the degree of interdependency.
An architecture for microservices should be constructed according to a paradigm that
guarantees a high cohesion and a low coupling. This design produces microservices that are
scalable, can adopt to changes, and are allowed to extend over time. As the modules
function together, the greater the cohesion the better the performance is expected. If
cohesiveness is low, too many communications between the service would be sent back and
forth, resulting in deteriorated performance and scalability (Rajesh,2016).
Advantages of microservices architecture
The benefits of microservices seems to be substantial enough to persuade certain large
company players like Netflix, eBay, amazon to adopt this method. Microservices offer these
following advantages in comparison to the monolithic design –
Key Monolithic architecture Microservice architecture
Secure Best Marks with AI Grader
Need help grading? Try our AI Grader for instant feedback on your assignments.
4
Microservice Architecture
Basic Fundamentally build on one
single large system having one-
code base
Small independently functional
modules are parts of
Microservice architecture
Scale Difficult to scale according to
demand
Easy scaling
Database Shared database Single module has its own
database
Deployment IDE is slowed down by large
code base
Small, independent projects
make it easier to develop and
deploy
Tightly Coupled and
Loosely coupled
Tightly coupled and difficult to
change
framework/language/technology
Easy to change
framework/technology/language
due to independent
projects/modules
Explanation
Even if a single module fails, the architecture makes sure that the larger application
remains unaffected by it.
Microservices offer the option to test a new technology stack on a single/individual
service in the time of need. It also experiences reduced dependency issues and easier
techniques to reverse the changes. There is more flexibility gained as there is less
code to function.
Developers can comprehend the operation of a service better with improved simplicity.
Faster deployments is availed with smaller code base. This also allows one to begin to
utilize and explore the advantages of Continuous Deployment.
As the services with a microservice architecture are separate, it is easier to scale the
most required services at the right moment than the entire application. With improved
scalability, this can have an influence on cost benefit if done properly.
Microservices gives developers more independence and makes technical decisions in
smaller groups rapidly and autonomously. Thus, if the solution built through a group
effort needs to be huge, the microservice design is advised (Nadareishvili et al.,2016).
The architecture of Microservices addresses a productivity and speed concern by
offering manageable services through decomposition of applications. Different teams
can simultaneously work on various components without waiting for a team to
complete a significant part of the work before they start.
Microservice Architecture
Basic Fundamentally build on one
single large system having one-
code base
Small independently functional
modules are parts of
Microservice architecture
Scale Difficult to scale according to
demand
Easy scaling
Database Shared database Single module has its own
database
Deployment IDE is slowed down by large
code base
Small, independent projects
make it easier to develop and
deploy
Tightly Coupled and
Loosely coupled
Tightly coupled and difficult to
change
framework/language/technology
Easy to change
framework/technology/language
due to independent
projects/modules
Explanation
Even if a single module fails, the architecture makes sure that the larger application
remains unaffected by it.
Microservices offer the option to test a new technology stack on a single/individual
service in the time of need. It also experiences reduced dependency issues and easier
techniques to reverse the changes. There is more flexibility gained as there is less
code to function.
Developers can comprehend the operation of a service better with improved simplicity.
Faster deployments is availed with smaller code base. This also allows one to begin to
utilize and explore the advantages of Continuous Deployment.
As the services with a microservice architecture are separate, it is easier to scale the
most required services at the right moment than the entire application. With improved
scalability, this can have an influence on cost benefit if done properly.
Microservices gives developers more independence and makes technical decisions in
smaller groups rapidly and autonomously. Thus, if the solution built through a group
effort needs to be huge, the microservice design is advised (Nadareishvili et al.,2016).
The architecture of Microservices addresses a productivity and speed concern by
offering manageable services through decomposition of applications. Different teams
can simultaneously work on various components without waiting for a team to
complete a significant part of the work before they start.
5
Microservice Architecture
Disadvantages of microservices
Microservices may be a successful way, yet there are limitations to the architecture. The
complexity of any distributed system is generally the biggest drawback of microservices.
Here is a list of possible regions of pain and other adverse consequences related to the
design of microservices
key Monolithic Architecture Microservice Architecture
simplicity Simpler to build and operate Highly complex
communication between the
services
Debugging Easier to debug the system Difficult due to each service
having separate logs
Expense Less expensive and no
need of remote calls
Highly expensive and
results in high remote calls
Security issue Less security threats Enormous security threats
sue to large inter-service
communication
Cultural change Doesn’t need cultural
change in an organization
Needs cultural change for
successful implementation
Explanation
Since everything is now an autonomous service, the module must be handled
carefully specially in the time of travelling between the modules because of the
complex commination. Developers may be obligated to build additional code in such
a circumstance to prevent disruptions. Complications occur over time when remote
calls are delayed.
It can be difficult to manage transaction as well as Multiple databases.
It can be cumbersome to test a microservice-based application. It is only needed to
launch a WAR on an application server in a monolithic way and verify it connects to
the underlying database. But in this case, every dependent service must be
confirmed with microservices before testing can take place (Segura-Torres et al.,2019).
As each service contains its specific set of logs, it is difficult to check every single
time a debugging issue is raised.
Coordination between several services may be necessary, which may not be as easy
as deploying a WAR in a container.
Microservice Architecture
Disadvantages of microservices
Microservices may be a successful way, yet there are limitations to the architecture. The
complexity of any distributed system is generally the biggest drawback of microservices.
Here is a list of possible regions of pain and other adverse consequences related to the
design of microservices
key Monolithic Architecture Microservice Architecture
simplicity Simpler to build and operate Highly complex
communication between the
services
Debugging Easier to debug the system Difficult due to each service
having separate logs
Expense Less expensive and no
need of remote calls
Highly expensive and
results in high remote calls
Security issue Less security threats Enormous security threats
sue to large inter-service
communication
Cultural change Doesn’t need cultural
change in an organization
Needs cultural change for
successful implementation
Explanation
Since everything is now an autonomous service, the module must be handled
carefully specially in the time of travelling between the modules because of the
complex commination. Developers may be obligated to build additional code in such
a circumstance to prevent disruptions. Complications occur over time when remote
calls are delayed.
It can be difficult to manage transaction as well as Multiple databases.
It can be cumbersome to test a microservice-based application. It is only needed to
launch a WAR on an application server in a monolithic way and verify it connects to
the underlying database. But in this case, every dependent service must be
confirmed with microservices before testing can take place (Segura-Torres et al.,2019).
As each service contains its specific set of logs, it is difficult to check every single
time a debugging issue is raised.
Coordination between several services may be necessary, which may not be as easy
as deploying a WAR in a container.
6
Microservice Architecture
While large firms can draw benefit from implementing microservices, it can be
complicated and difficult for small organizations, who have to build and iterate quickly
without tackling complex mechanism.
Conclusion:
Simply said, the architectural style of the microservice is the way to design a single
application as a series of small services, which run in each case and communicate via
lightweight, often HTTP resource API mechanisms. These services are based on business
capabilities and can be deployed separately with fully automated deployment machines.
Since the microservice implementation trend is getting high recognition from several sectors
of application, the possible challenges can be handled with the right type of automation,
research, tools and well qualified employees.
Microservice Architecture
While large firms can draw benefit from implementing microservices, it can be
complicated and difficult for small organizations, who have to build and iterate quickly
without tackling complex mechanism.
Conclusion:
Simply said, the architectural style of the microservice is the way to design a single
application as a series of small services, which run in each case and communicate via
lightweight, often HTTP resource API mechanisms. These services are based on business
capabilities and can be deployed separately with fully automated deployment machines.
Since the microservice implementation trend is getting high recognition from several sectors
of application, the possible challenges can be handled with the right type of automation,
research, tools and well qualified employees.
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
7
Microservice Architecture
Reference
Aroraa, G. K., Kale, L., & Manish, K. (2017). Building Microservices with. NET Core. Packt Publishing
Ltd.
Murugesan, V. (2017). Microservices Deployment Cookbook. Packt Publishing Ltd.
Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice architecture: aligning
principles, practices, and culture. " O'Reilly Media, Inc.".
Pacheco, V. F. (2018). Microservice Patterns and Best Practices: Explore patterns like CQRS and
event sourcing to create scalable, maintainable, and testable microservices. Packt Publishing
Ltd.
Rajesh, R. V. (2016). Spring Microservices. Packt Publishing Ltd.
Segura-Torres, D. A., & Forero-García, E. F. (2019, May). Architecture for the management of a
remote practical learning platform for engineering education. In IOP Conference Series:
Materials Science and Engineering (Vol. 519, No. 1, p. 012020). IOP Publishing.
Surianarayanan, C., Ganapathy, G., & Pethuru, R. (2019). Essentials of Microservices Architecture:
Paradigms, Applications, and Techniques. Taylor & Francis.
Microservice Architecture
Reference
Aroraa, G. K., Kale, L., & Manish, K. (2017). Building Microservices with. NET Core. Packt Publishing
Ltd.
Murugesan, V. (2017). Microservices Deployment Cookbook. Packt Publishing Ltd.
Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice architecture: aligning
principles, practices, and culture. " O'Reilly Media, Inc.".
Pacheco, V. F. (2018). Microservice Patterns and Best Practices: Explore patterns like CQRS and
event sourcing to create scalable, maintainable, and testable microservices. Packt Publishing
Ltd.
Rajesh, R. V. (2016). Spring Microservices. Packt Publishing Ltd.
Segura-Torres, D. A., & Forero-García, E. F. (2019, May). Architecture for the management of a
remote practical learning platform for engineering education. In IOP Conference Series:
Materials Science and Engineering (Vol. 519, No. 1, p. 012020). IOP Publishing.
Surianarayanan, C., Ganapathy, G., & Pethuru, R. (2019). Essentials of Microservices Architecture:
Paradigms, Applications, and Techniques. Taylor & Francis.
1 out of 8
Related Documents
Your All-in-One AI-Powered Toolkit for Academic Success.
+13062052269
info@desklib.com
Available 24*7 on WhatsApp / Email
Unlock your academic potential
© 2024 | Zucol Services PVT LTD | All rights reserved.