Law Assignment Sample - Caltex oil v Dredge

WHAT ARE MICROSERVICES – INTRODUCTION TO MICROSERVICE ARCHITECTURE
To get an image of this application, we have to understand how a monolith application is broken down into tiny micro applications which function on its own and communicate via APIs. A monolithic architecture pattern is a server-side system based on a single application. A monolithic application is easy to develop, deploy and manage. This assignment will help us to understand how developers make use of this technology to confer benefits.
In this assignment, we will learn the following:
 What is microservices?
 Uses of Microservices
 How microservices are adopted?
 key principles and concepts of microservices architecture

Why microservices are used?

A microservice is an architectural application pattern that takes every application function puts it in its own service that runs in a container and communicates over APIs. A microservice application is not enough to understand; hence we must compare it with a monolith. Monolith architecture is a server-side system that is completely based on a single application. For example- the applications are put into WAR or JAR files and deployed into a whole production environment. Here, the thing with a monolith is, they are easy to develop, manage and deploy.

How microservices are adopted?

Microservices is exactly an architectural application that contains a ton of services after deployed function on its own. A microservice is a self-contained process that
provides a unique business capability. We must know what a microservice is and why people are adopting it? For Example: Let us consider the website of Amazon.

Well, it is not only a simple website but behind the scenes, its microservices all the way working in a concert as one large system. Amazon has a service for accepting orders, a service to determine a list of recommended products to buy, a service for processing the orders, a service to wishlist the chosen products, a service to authenticate credit cards and similar services. The term microservices is also known as microservice architecture that structures a modeled business domain. What are the key principles and concepts of microservice architecture?
Lately, many companies are adopting monolith architectural applications to enhance business capability through microservice-based architecture.

ORDERS

•RECOMMENDATION
•WISHLIST

PROCESSING

AUTHENTICATE

•DEBIT/CREDIT CARDS
•OTHER PAYMENT
OPTIONS

Microservices management involves five basic principles. In today’s date, microservices applications are one of the most popular independent architectural applications. These principles are important for the operational team as they help to operate microservice-based applications. Developers make use of the operational facets to upgrade, rebuild, repair or replace a microservice in order to develop business capability and high quality. Developers and operational choices make it happen while designing and developing the microservice application.

1. Business Domain Centric
Microservices focuses on certain business-centric functions. It helps in breaking boundaries in large application softwares and builds an independent and small system inside the system. Microservices usually adopt appropriate technology and develop the application to perform business capabilities and purposes. Domain centric designs are one of
those inline architectural principles help in recommending and designing the system with the real-world domains. Small and independent microservices can be used to handle various business domains. For example: In the E-commerce domain, individual microservices work independently which are designed to operate in that way to handle various
business dealings and functions such as order processing, recommending

Business
Domain
Centric

Autonomous

Automation

Single
Responsibility
Principle
Resilience

products, authenticating accounts, and prior processes. The e-commerce microservices offer relating to- open an account; replacing old products, Emi offerings and etc.
2. Autonomous
This particular principle goes by the phrase “YOU OWN IT, YOU BUILD IT”!! One of the most important aspects of the microservice principle is that microservices are independent of its functions. The pre and post-development responsibilities bring in the owners and the developers into contact so that the designed software perform properly by customers in
real world.
3. Automation
It is very important to develop and design microservices for building infrastructure. According to the previous data, it is significant to understand how much business organizations and concerns are diplomatically adopting the microservices application for better performance in business capability. And the same automation develops
and designs the individual software and applications in a way that the services deploy and perform independently. The Service-Oriented Architectural structure enforces certain principles: Encapsulation, Loose coupling and separation of concern. From the above data, the difference between microservices and SOA lies in the level of autonomy. The SOA
implications provide service level while microservices go abstract with the environment. The software and the applications we develop go with WAR and JAR and
then gets deployed into JEE application server.
4. Single Responsibility Principle
A microservice application pattern works in concert as one large system
which consist a ton of microservices working independently on a system as
designed. This particular principle revolves around the single responsibility
concept as a part of the solid design pattern. It makes sure that one
system, one class, one unit, one subpart or a microservice must have one
and only one responsibility. Each microservice application is accountable to
one function or a specific feature. There’s one rule which applies to this

case “Gather those things which change for the same reason, Separate
those things which change for a different reason”.
5. Resilience
The term resilience refers to the mental ability to recover quickly from
failures. Microservices are developed from time to time and every time is
designed it replaces certain properties and features. Hence proved that
microservices must be designed considering failures in mind. All this starts
before the coding of the application. This must be solved to experience
before service failures start affecting.
Microservice elements put a lot of importance on the real time monitoring
checking both architectural application and metrics.
Failure is another opportunity and strength in itself to build a fast and
better resilient architectural system. Services can fail all the time;
developers must detect the problems fast more possible to develop a
better alternative than before.

WHAT ARE THE ADVANTAGES AND THE DISADVANTAGES OF MICROSERVICES ARCHITECTURE?

Some advantages of microservices architecture have thrown a strong ray on some big enterprises such as Amazon, Banking enterprise, EBay and Firstcry. If compared with the monolithic structure microservices better offer.

 Improved fault isolation: Microservices help to keep the large applications unaffected by a single module failure.
 Ease of understanding: The more the microservices are kept easier and simple, the better it is understandable.
 Scalability: Since all the services are different from the nature of their characteristics, one can more easily scale the most wanted microservice at
the most wanted hour.

 Smaller and faster deployments: Developers try to keep the databases low- key, the smaller the codes are the quicker the deployments can be made.

Microservices are a hot cake in the recent years, tech companies; e-commerce sites are adopting the latest architectural patterns. But this particular architectural pattern does have some drawbacks. Similarly some are:

 More services are equal to more resources: More the number of databases are involved in a business concern the more it is tough to keep ta track of the activities.
 Deployment challengers: Mostly the microservices are deployed in the form of WAR and JAR. The more the number of services deployed, the more it becomes complex and difficult to coordinate.
 Debugging problems can be harder: Each service have their own logs to perform. The more the number of logs involved in the performance the
more bugs occur.

CONCLUSION

In this article I have about microservices architectural patterns suggested. I have already listed down the positivities and the prior negativities about microservices that have been set in the organizations. If the developers poorly design the microservices, it will prove costly to an organization’s working efficiency business capability. However, resilience is one of the best weapons in developing microservices because failures make microservices better and affecting coding plays an important role too. From the above article, I have understood that Monolithic application designs are not always the way forward to bring automation in business and services. Despite the shortcomings, one must upgrade and start with microservice architectural patterns to make the application less complex. This particular article helps to understand the needed knowledge in areas of design and architecture.

REFERENCES

Martin Fowler on Microservices
Cloud pattern Resources
Monolithic transformation.
Microservices design principles.