Microservices is great for allowing the domain to drive the development of a cloud service. It fits right into the approach to do “one thing” for the company and comes with a well-defined boundary for that service. Since it fulfils business capabilities, it does not focus on horizontal layers as much as it focuses on end-to-end vertical integration. It is cohesive and loosely coupled with other services. The Domain Driven Design provides a framework to build the services. It comes with two stages – strategic and tactical. The steps to designing with this framework includes 1. analyzing domain, 2. defining bounded context, 3. defining entities, aggregates and services and 4. Identifying microservices.
The benefits of this service include: This is a simple architecture that focuses on end-to-end
addition of business capabilities. They are easy to deploy and manage. There is
a clear separation of concerns. The front end is decoupled from the worker
using asynchronous messaging. The front end and the worker can be scaled
independently.
Challenges faced with this service include: Care must be taken to ensure that the front end and the
worker do not become large, monolithic components that are difficult to
maintain and update. It hides unnecessary dependencies when the front end and
worker share data schemas or code modules.
Some examples of microservice include: The microservices are best suited for expanding the
backend service portfolio such as for eCommerce. Works great for transactional
processing and deep separation of data access. Useful to work with application
gateway, load balancer and ingress.
Few things to
consider when deploying these services include the following:
1.
Availability – Event sourcing
components allow system components to be loosely coupled and deployed
independently of one another. Many of the Azure resources are built for
availability.
2.
Scalability – Cosmos DB and Service
Bus provide fast, predictable performance and scale seamlessly as the
application grows. The event sourcing microservices based architecture can also
make use of azure functions and Azure container instances to scale
horizontally.
3.
Security features are available from
all Azure resources, but it is also possible to include Azure monitors and
Azure Sentinels.
4.
Fault zones and update zones are
already tackled by the Azure resources so the resiliency comes with the use of
these resources and the architecture can improve the overall order processing
system.
5.
Azure advisor provides effective cost
estimates and improvements.
These are only a
few of the considerations. Some others follow from the choice of technologies
and their support in Azure.
No comments:
Post a Comment