0% found this document useful (0 votes)
66 views19 pages

Section 1: Understanding Microservices

This document provides an overview of microservices architecture. It discusses advantages like agility and resilience. Microservices allow independent development and deployment compared to monolithic applications. Key principles are that microservices have single concerns, well-defined boundaries, can be deployed independently, and communicate asynchronously. The document also outlines examples of microservices solutions and components.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views19 pages

Section 1: Understanding Microservices

This document provides an overview of microservices architecture. It discusses advantages like agility and resilience. Microservices allow independent development and deployment compared to monolithic applications. Key principles are that microservices have single concerns, well-defined boundaries, can be deployed independently, and communicate asynchronously. The document also outlines examples of microservices solutions and components.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Section 1

Understanding Microservices

Giảng viên: Phạm Quang Anh Kiệt


@email: [email protected]
@facebook/rickykiet83
Introduction

u Microservices is a hot trend in the technology section


u Netflix, Google, Twitter have been used microservices-based architecture
u It can be extremely daunting to start, however, for the larger enterprise,
each modules can be developed with their own history and purpose
Advantages of Microservices

1. Agility: Componentization and distributed functionality empower developers


to iterate and deploy continuously, autonomous of other business units and
application teams.
2. Freedom of Options: Developers can independently pick their preferred
framework (language, structure) to construct and convey functionality more
rapidly.
3. Resiliency: Microservices are designed for failure with redundancy and
isolation in mind, which in turn makes applications more robust.
4. Efficiency: There can be significant savings for the enterprise that de-
couples functionality and adopts microservices.
Monolithic vs Microservices

u Monolithic:
u Easy to understand
u It’s great when the codebase and the team working on it are both relatively small
u A fast way to develop a product and get it into market quicky
u No other dependencies.
Microservices

u Able to be built independently


u Able to be deployed independently
u Implementation detail will be taken care by the specific team working on that
specific feature.
u Implementations of other components (services) work with interfaces, or
APIs.
u One “big” specific thing tend to become much smaller => “microservices”
Microservices
Microservices Pros and Cons

u Pros:
u Better architecture for large applications
u Better agility in the long term
u Easy to learn
u Isolation for scalability and damage control
u Cons:
u More moving parts
u Complex infrastructure requirements
u Consistency and availability
u Harder to test
Service-oriented architecture (SOA)

u “Service-oriented architecture (SOA) is a type of software design that makes


software components reusable using service interfaces that use a common
communication language over a network.”

u In briefly, SOA integrates software components that have been separately


deployed and maintained and allows them to communicate and work together
to form software applications across different systems.
Service-oriented architecture (SOA)
Microservices architecture principles

1. A microservices has a single concern.


u Should do one thing and one thing only = Single object responsibility
u Easier to maintain and scale

2. A microservice is a discrete
u Must clear boundaries separating it from its environment.
u Must be well-encapsulated
u Development: Isolated from all other microservices
u Production: It becomes part of a larger application after deployment
Microservices architecture principles

3. A microservices is transportable.
u Can be moved from one runtime environment to another
u Easier to use in an automated or declarative deployment process.

4. A microservice carries its own data


u Should have its own data storage that is isolated from all other
microservices.
u Shared with other microservices by a public interface
u The common problem is data redundancy.
Microservices architecture principles

5. A microservice is ephemeral
u It can be created, destroyed, and replenished on demand
u The standard operating expectation is that microservices come and go all the time,
sometimes due to system failure and sometimes due to scaling demands.
Microservice communication

1. Synchronous protocol
u HTTP/HTTPS
u The client sends a request and waits for a response from the service
u Thread is blocked
u The client code can only continue its task when it receives the HTTP server
response.
2. Asynchronous protocol
u AMQP (a protocol supported by many OS and cloud environments)
u Asynchronous messages
u The client send message and doesn’t wait for a response.
u RabbitMQ or Kafka is a message queque
Microservice communication
Tedu aspnetcore Microservices project
Solution exploration

u Building Blocks: Including class libraries which defines interfaces, contracts,


shared and common methods.
u Common.Logging: Logging system with Serilog and elasticsearch.
u Contracts: The blue print of the system, where we can define the common
interfaces as: Repository, UnitOfWork… to define our contracts for the whole
system.
u EventBus.Message: Event Bus Message system, AMQP, standardize communication
across microservices.
u Infrastructure: Class library implements from Contracts interface.
u Shared: Sharing resources, common variables, configurations across microservices.
Solution exploration

u Services: Including the microservices of the system.


u Basket: Basket API with Redis
u Customer: Customer Minimal API with PostgreSQL
u Ordering: Ordering API with Clean Architecture and SQL Server
u Product: Product API with MySQL
u Inventory: Inventory API with MongoDB
u ScheduledJob: Hangfire API with MongoDB, background tasks
Solution exploration

u WebApps:
u WebHealthStatus MVC, presentation health check system.
u Microfrontend Client App (not included in this course)

You might also like