You are on page 1of 12

MIS603 Microservices Architecture

Assessment Tittle: (Microservices Case Study – Part B)

Student Name: Abdul Mateen Azhar Cheema


Student ID: 00324625T
Lecturer Name: Neda & Bahareh Ghodoosi

Page 1 of 12
Introduction:
The main purpose of this report is to consider the benefits of developing changes in the
old-platform of Greer John Wealth Management Pty Ltd and shifting from Monolithic to
Microservices architecture. This company is famous for it’s customers satisfaction. But there
are some factors that need the attention of executive leadership team in order to review the
technology strategy of the company. Company requires some areas to be improved in order to
make it successful. Many factors are considered in this report which will show the importance
of shifting the old platform towards Microservices Architecture.This report shows the
importance of bringing cloud-based solutions to the problems raised in the company.
A comparison between monolithic and Microservices architecture is given which
shows some pros and cons of these two architectures. There are certain key element of service
design for the Microservices. Different considerations will be discussed in the report when
splitting Monolithic to Microservices architecture. Services modelling has it’s own benefits as it
keeps the company in latest platform. Some of it’s advantages are also written in the report.
DevOps is another essential part of this report. Moreover, there is also a part of typical build
and test process which is required for the implementation of DevOps. There has been
highlighted the changes which a company needs in order to increase the productive rate of it’s
company. There are six phases of the implementation of DevOps. At last, a complete life cycle
of DevOps is also discussed here.

Monolithic vs Microservices Architecture:


Monolithic Architecture is an old and traditional style to design the software programs. In
this kind of architecture, the whole application was developed as a single unit and then it was
also deployed as a single unit. Being considered as a single unit, this architecture started
having a lot of issues. This complex architecture lead to the need of such an architecture in
which the application is not considered as a single unit so that each part can be treated
separately. They will lead to the development of 3 tier application (Villamizar, Garcés, Castro,
Verano, Salamanca, Casallas, Gil, 2015).
Microservices Architecture is a new way and style of developing applications. In this, one
application is not considered as a single unit as it has different independent small services.
Hence many failures can be detected and removed at a single service instead of whole
application. All of the services are fully and highly decoupled which is one it’s biggest
advantage. All of these benefits has made many companies to switch from Monolithic to
Micorservices Architecture (Balalaie, Heydarnoori, & Jamshidi, 2016).

Page 2 of 12
Below is a comparison between these two architectures:

Monolithic Architecture Microservices Architecture


Application is built as a single unit. Application is built as a suit of small services.
The software development is done by large The software development is done by
team working on a single artifact and disassembling the monolith into a
monolithic deployment. independent set of several services.
It is simple to develop, test, deploy and scale It is easy to tackle problems and complexities
horizontally. along with reducing barriers of new
technologies adoption.
The corresponding modules can be changed It is more difficult to implement all of the
easily and the changes can be integrated. changes that can span multiple and several
independent services.
It suits for the development of simple and It suits for the development of complex and
light-weighted applications. evolving applications.

Shifting from Monolithic to Microservices:


Although there are many benefits of Monolithic architecture but with the advancement
in the latest technologies, there is high need of new application development architectures.
For this purpose, many companies are now shifting their platforms to Microservices
Architectures from the old Monolithic Architecture. The Microservices Architecture has single
responsibility and has Domain Driven Design. The features like encapsulation, location
transparency and decentralization has made companies to switch towards Microservices.
Explosion of concrete application in real-life cause this to be popular (Bucchiarone, Dragoni,
Dustdar, Larsen, & Mazzara, 2018). After being shifted to this architecture, the Greer John
Wealth Management Pty Ltd company can enjoy the independent deployment of the
applications and all of the single services. The company will be compatible to backward
interface along with being highly observable to each and every step of the development. The
company will then enjoy appropriate and highly efficient security of the development. By
shifting to this architecture, the company will have the benefit of resiliency and failure
isolation.

Page 3 of 12
Key Elements of Service Design of Microservices:
If we have a look at the Service Design of this Microservices Architecture then there are
many key elements in this regard. Every element needs to be considered for changing the
architecture. Handling all of these elements related to service designing of Microservices
becomes highly challenging sometimes. There is need to get handle on these elements. Below
is a list of some of the key elements:
1. Design of the actual Micorservices components
2. Autonomous services
3. Implementation of system having large number of small services
4. Size of Microservices
5. Dealing with data persistence
6. Data sharing problem
7. Mistake in optimal sizing
8. Cross-service coupling
9. Independent deployability
10. Transaction modeling

Considerations when splitting Monolithic to Micorservices:


During the splitting of Monolithic architecture to Micorservices Architecture, there are
certain aspects which are required to be considered for this purpose. The most important
thing is the essential element set of the Microservices architecture. These components require
high attention while splitting the architecture from Monolithic to Microservices. Basically there
are five elements which are prerequisites for company’s Microservices. Following are those
components which need to be considered (Jayati, 2019);

1. Functionality and Flexibility of Microservices:


There is high need to consider the functionality and flexibility of this architecture as it
provides a smoother way of application development. It helps to approach the systems with
agility and flexibility. The incremental improvements help to deliver a better application. The
flexibility feature can manage many failures in the independent services.

2. API Mechanisms of Microservices:


In this, REST web services API is put to use in order to connect the distributed services
with each other as shown in Figure 1. API will expose the fine-grained data to all of the users or

Page 4 of 12
customers of this architecture. The automation of design, documents and development of API
is highly required so that the application can be delivered at a speed.

Figure 1. Microservices - Architecture for Service-Driven Business Models (Easy Software,


2020)

3. Data Traffic in Microservices:


There are some operations which can be run separately on a independent network
which requires data services. These services are hold on a platform by calling certain factors
like run time or server’s response time when heavy traffic conditions occur. In order to handle
all this, the process of auto-scaling is used. Service loads are tracked in this architecture.

4. Offloading Data in Microservices:


The infrastructure can be sometimes unreliable and due to this issue the crash and
failure of response can be occurred. There is need to offload the user-specific data and then
share it into such a storage system which can be accessed from all kind of service instance. A
shared memory-based cache system can also be inserted to access data quickly.

5. Inevitable Monitoring in Microservices:


Monitoring sometimes become inevitable because of additional offloaded data layer and
traffic variations. This requires ongoing resource that will capture data in the central location
and will reflect the application changes in the monitoring system. There is high need to track
each service instance data.

Page 5 of 12
Changes in the Company:
Although Greer John Wealth Management Pty Ltd is a very fine company with a
successful record. But there are certain factors of the company which require changes.
Changes are always a good idea in order to make the organization successful. There are many
benefits in regard to bring changes in the company. Different opportunities are created and
improvements are made in the company. In any company, nothing is permanent except
change. While bringing changes to different sectors of the company or team members etc, the
environment of the company is very much improved. If this company has shifted from
Monolithic to Microservices Architecture then this is a very productive change in the company.
This will directly affect the progress rate, team members, internal and external environment.
This will be a positive change in the company and this will help in increase the customer’s
satisfaction needs.

Benefits of Service Modelling:


Service Modelling is basically a discipline of business modeling and software system
which is used to design service-oriented systems. It has variety of architectural styles and
paradigms. It includes Microservices architecture, cloud-computing, service-oriented
architecture, application architecture etc. The users of Microservices cause an increased
variation in the software requirement (Naily, Setyautami, Muschevici, & Azurat, 2017). There
are many benefits of service modelling as it is one of the most preferred tool for modeling
systems. This type of modeling reduces time to benefits along with a lower cost. It is highly
scalable as it is compatible with many. It can be integrated with other services with much more
ease. It keeps on being upgraded as it is highly efficient at adjusting new releases. This
modelling is easier to use and it can perform proof-of-concepts. Service Modelling is always a
best idea to implement if a company need to design any service-oriented system.

DevOps:
DevOps is a combination of two words Dev for Development and Op for Operations. In the
context of Microservices, the operations means the IT operations. It’s main goal is to develop
and operate the rapid provision of smoothly running Microservices. DevOp uses continuous
delivery method (Ebert, Gallardo, Hernantes, & Serrano, 2016). Basically, it has a tool chain,

Page 6 of 12
special techniques and procedure to automate software deployment. The DevOps teams
actually encapsulate each piece of functionality in the Microservices Architecture. Then the
team build larger systems by composition of Microservices Architecture. Through DevOps,
companies can enjoy continuous integration and continuous delivery. It is also used to drive
Microservices deployments.
DevOps are much better when used with Microservices as shown in Figure 2. Microservices
is emerged from a common set of DevOps which has made these two better together. All of
the companies which have successfully used and implemented Microservices architecture will
surely use DevOps as they see them a good team to work together. Microservices and DevOps
are performing a great role in bringing changes in the company and application development
systems. They provide better deployability, reliability, availability, scalability and modifiability
together.

Figure 2. Microservices and DevOps: Better Together (“Mulesoft”, n.d.)

Requirement for DevOps Implementation:


There are certain typical build and test process which are required for implementation of
DevOps. Basically there is need of implementation road map for implementing of DevOps
strategy as shown in Figure 3.

Page 7 of 12
Figure 3. DevOps Implementation Services (“Veritis transcend”, n.d.)

The implementation of DevOps has six basic steps:


1. Introduce DevOps Initiative:
In this the company’s IT activities and tasks are introduced along with facilitating
requirements. Different kinds of changes are made in development and operation activities.

2. Develop DevOps Strategy:


Team collaboration is enhanced and the infrastructure provisioning is facilitated.
Software development and the testing part is essential in order to develop a DEvOps strategy.

3. Use Containerization:
In this the reliability of software is ensured while traversing different processes.
Actually, each part of the software runs independently and can run on any environment
without any kind of dependency.

4. Integrate Infrastructure with CI/CD Tools:


Different infrastructure automation tools like Kubernetes, Ansile etc are integrated
with CI/CD tools like Bamboo, Jenkins etc. These tools are very helpful for preparation of
containers in order to tolerate risks.

5. More Test Automation and QA-DevAlignment:


Functional testing can remain on manual mode but it totally depends upon the extent
of test automation cases. This will then help in bug detection.

6. Application Performance Monitoring:

Page 8 of 12
This step helps in the detection, prioritization and isolation of defects in the
application. It also checks the root causes of these kinds of defects.

Life cycle of DevOps:


There is a life cycle of DevOps which has different phases. Following are the phases of
the life cycle (Muratkar, 2019):
1. Continuous Development:
In this phase, the planning and coding of the software is involved. We don’t need any
kind of tool to plan the DevOps but there are many tools to maintain the code of the DevOps.

2. Continuous Testing:
In this, the developed software is tested continuously in order to detect any kind of bugs
or errors. For this purpose, automation tools are used which test the software. Tools can be
Selenium, TestNG etc. Basically, automation testing saves a lot of time and effort.

3. Continuous Integration:
This is the core part of the whole life cycle. After testing, developers commit changes to
the source code frequently. Code is build in this step and it is also reviewed. Integration testing
and packaging is also occurred in this phase.

4. Continuous Deployment:
At this part of the life cycle, code is deployed to the production servers. One must make
sure that the whole code is deployed correctly at correct servers. Containerization tools
perform a significant role in this context.

5. Continuous Monitoring:
At last, the whole application is monitored. This is a very crucial step of the life cycle as
the whole application is taken into consideration for the purpose of continuous monitoring.
Different popular tools are also used here like Splunk, Nagios etc.

Conclusion:
Hence from above discussion it is concluded that Microservices Architecture are most
preferred way of development of software. Many companies have shifted from Monolithic to
Microservices architectures due to it’s multiple independent services. Greer John Wealth

Page 9 of 12
Management Pty Ltd company need to be shifted towards Microservices as well. There are
many factors because of which companies are shifting towards this architecture. The key
elements of service designing had a great effect on the design of the application or the system
related to Microservices. Some aspects are required to be noticed when shifting from old to
new architecture. Moreover, DevOps is the latest way for the development. It works best
when used with the Microservices. The life cycle of the DevOps is essential to implement while
working with it. There are also some build and test processes which are needed for the
implementation of DevOps.
There are certain recommendations for shifting to another or latest platform. The
company should always check the pros and cons before the shifting of platform. This will help
the company to achieve a higher success rate than all of the competitors. The work team and
production team must be given confident related to adoption of the latest architecture. The
whole internal environment of the company will go through a big change once it is shifted. At
last, Microservices is the latest trend among the companies whole are always looking for
success and high production rates. This architecture will completely change the company while
working with another latest technology called DevOps.

References

Balalaie, A., Heydarnoori, A., & Jamshidi, P. (2016). Microservices architecture enables devops:
Migration to a cloud-native architecture. Ieee Software, 33(3), 42-52. Retrieved from
https://spiral.imperial.ac.uk/bitstream/10044/1/40557/8/SO_SWSI-2015-10-
0149.R1_Balalaie.pdf

Page 10 of 12
Bucchiarone, A., Dragoni, N., Dustdar, S., Larsen, S. T., & Mazzara, M. (2018). From monolithic
to microservices: An experience report from the banking domain. Ieee Software, 35(3), 50-55.
Retrieved from
https://dsg.tuwien.ac.at/Staff/sd/papers/Zeitschriftenartikel_2018_S_Dustdar_From_Monolit
hic.pdf

Easy Software. (2020). Microservices - Architecture for Service-Driven Business Models.


Retrieved from https://easy-software.com/en/newsroom/microservices-architecture-for-
service-driven-business-models/

Ebert, C., Gallardo, G., Hernantes, J., & Serrano, N. (2016). DevOps. Ieee Software, 33(3), 94-
100. Retrieved from
https://assets.vector.com/cms/content/consulting/publications/DevOpsTechnologies_Ebert_S
errano_IEEESoftware_2016.pdf

Jayati, K. (2019). Architectural Elements and Principles of Miroservices. OpenSense Labs.


Retrieved from https://opensenselabs.com/blog/articles/architectural-elements-principles-
microservices

Muratkar, A. (2019). What is DevOps Lifecycle? How to Manage Yours. Cuelogic. Retrieved
from https://www.cuelogic.com/blog/devops-lifecycle.

Mulesoft[image].(n.d.). Retrieved from


https://www.mulesoft.com/resources/api/microservices-devops-better-together

Naily, M. A., Setyautami, M. R. A., Muschevici, R., & Azurat, A. (2017, September). A
framework for modelling variable microservices as software product lines. In International
Conference on Software Engineering and Formal Methods (pp. 246-261). Springer, Cham.
Retrieved from http://fmse.di.unimi.it/faacs2017/papers/paperMSE4.pdf

Veritis transcend [image].(n.d.). Retrieved from


https://www.veritis.com/solutions/devops/implementation-strategy-tools-collaboration/

Villamizar, M., Garcés, O., Castro, H., Verano, M., Salamanca, L., Casallas, R., & Gil, S. (2015,
September). Evaluating the monolithic and the microservice architecture pattern to deploy
web applications in the cloud. In 2015 10th Computing Colombian Conference (10CCC) (pp.
583-590). IEEE. Retrieved from
https://www.researchgate.net/profile/Mario_Villamizar/publication/
304317852_Evaluating_the_monolithic_and_the_microservice_architecture_pattern_to_depl
oy_web_applications_in_the_cloud/links/5b3ad04ca6fdcc8506ea541b/Evaluating-the-
monolithic-and-the-microservice-architecture-pattern-to-deploy-web-applications-in-the-
cloud.pdf

Page 11 of 12
Page 12 of 12

You might also like