Evaluating Microservices Architecture for Greer John Wealth Management Pty Ltd
Microservices architecture has emerged as an evolution of software development patterns and techniques. Previous software development techniques for self-contained monolithic applications and service-oriented architecture have been longstanding. More recently, with the development of cloud computing, new ways of software development have evolved with microservices architecture recognised as a cloud-native software development approach.
As a professional, your role will require that you understand the principles of software development, especially in the field of cloud-based platforms, which are rapidly becoming the preferred hosting solution for many organisations. Having a working understanding of these concepts will enable you to fulfil many roles and functions, and be informed as to what factors influence decision making when software development architecture has been selected. Whilst you may not be a developer, it will enable you to have meaningful conversations about the principles of microservices architecture and why certain decisions may be made in a certain way. This will support you to manage the bridge between IT and the business.
1. Write a 1000-word report to demonstrate your understanding of the theoretical concepts of microservices architecture in two specific areas: a. What are the key principles and concepts of microservices architecture? b. What are the advantages and disadvantages of microservices architecture? Please note that this is intended to allow you to develop a strong theoretical understanding, which you will then apply to a specific case shared with you in Part B of this assessment. The aim is to allow you to progressively develop a foundational knowledge of the topic, which you will then extend by demonstrating how your knowledge can be applied in the case context. 2. Whilst most of the material to support your development of knowledge for this assessment can be found in the Essential Resources listed in the module content, you are encouraged to do further research in this topic area to broaden your knowledge.
Perform additional research in the area of investigation and select five additional sources that will add value to your report in the relevant area of investigation.
The primary concern of this research is microservice architecture. Microservices, also known as microservice architecture can be identified to be an architectural style that primarily structures a particular application with the involvement of a collection of services including high maintainable services, loosely coupled, independently deployed, organised around the capabilities of a business and owned by a small team (Balalaie, Heydarnoori&Jamshidi, 2016). The microservice architecture ensures the rapid, reliable and frequent delivery of complex applications. In this particular report, the contribution of microservices to the business processes and advantages as well as disadvantages of the microservice architecture will be evaluated with regard to the application of the same on a particular case study. In the current scenario the concept of microservice architecture has been evaluated for Greer John Wealth Management Pty Ltd, which is a mature company with a strong base of customers.
Contribution of Microservices to business process
In the case of microservices architecture, a large complex application is broken down into a number of different individual mini-applications that are held liable for the primary business function in that regard. In the case of a business with regard to its degrading performance, the same can re-platform its business process through a microservice architecture for building a flexible and Elastic enough system in order to rectify the problems being faced. The agility of services divided into small particles allows a business to be more frequent and flexible with regard to its delivery of products and services (Alshuqayran, Ali & Evans, 2016). On the other hand, organisational alignment of these services reduces the time with regard to the team ramp-up and helps the team in building complex products on a continuous basis.
Key principles and concepts of Microservices architecture There are five primary principles of microservice architecture, and the same has been explained below:
Single responsibility principle
This particular principle implies that a unit or a class or a microservice should possess one responsibly to follow.
Built around the business capabilities
This principle implies that microservices should focus on a particular business function and ensures the proper accomplishment of business objectives (Nadareishvili et al., 2016). A microservice does not restrict itself from implementing any appropriate technology stack that can be identified to be suitable with regard to the solution of a business purpose.
The building of the microservice
Another crucial principle of the microservice architecture is related with regard to the pre and post-development responsibilities. In the case of any large organisation generally, one specific team develops the application and the maintenance team is responsible for the application on completion of the knowledge transfer session (Nadareishvili et al., 2016). In the case of microservice architecture, the team which built it becomes the owner of the same.
Building and preparing infrastructure for microservices is an important concern for the same. In the case of microservice architecture, a service is required to be independently deployable and capable of handling all the dependencies with the involvement of library dependencies and ensure the execution of environment including web service as well as virtual machines or containers that abstract the physical resources (Venugopal, 2017).
Design for failure
A microservice is to be designed by considering the failure cases of the same. At the time of building the microservice architecture, one should consider the probable consequences of its failure and effect of the same on users and considering this a plan is to be constructed.
Analysis of case study
With regard to the change in technology by the inclusion of cloud-based solutions and evolving nature of the competitors into the digital platforms has raised the requirement for Green John to implement innovation into its strategies. It has been identified that the old digital application with regard to cloud-based solutions of the organisation it has been raising nimble and agile issues for responding to the digital needs of customers. In that case, with regard to the benefits to be achieved from the microservice architecture, it can be identified that the organisation can ensure its customer saturation with proper customer service delivery. Implementation of microservice architecture will ensure that the stakeholders involved with the organisation understand the requirement of new solutions and support the implementation of the same. Besides, it will help in introducing the organisation to what developed digital platforms and maintain its position in the competitive market.
Advantages and disadvantages of Microservices architecture
· With the implementation of microservices, the architect, as well as developers, can select the appropriate architectures and technologies with regard to a particular microservice (Taibi et al., 2017). This helps in ensuring the flexibility for designing a better fit solution following a cost-effective approach.
· With the simple and smaller size of the services, the enterprises can effectively afford experimentation with regard to the new process, business logic algorithm and so on (Tyszberowicz, 2018). It enables the organisation to initiate different disruptive innovation by allowing the same for adopting experiments.
· Microservices are identified to be self-contained, and its independent deployment module helps the organisation to enable the substitution of one particular microservice with another similar one when the latter microservice is not performing following the objectives.
· Changes and development of technology can be identified to be one of the barriers with regard to software development. However, with the implementation of microservices, it becomes possible to upgrade or change technology following the needs of each service rather than upgrading for the entire application.
· In the case of microservices architecture, the communication between the set of services becomes complex to maintain.
· Global testing is another issue in the case of microservices architecture, as in this case, each service needs confirmation before the testing is initiated (Kazanavi?ius&Mažeika, 2019).
· In this case, each service possesses its own fate of log and therefore debugging can be identified to be another problem.
· Microservices can be proved to be effective for large companies; however, it can be slower for implementing and complicated at the same time for small companies.
Microservices provide an ability for separating different systems and their capabilities into different smaller domains with the use of domain-driven design principles. This minimises the probabilities of miscommunication and operation while ensuring its security of ownership. However, the implementation of microservice architecture is to be done following the advantages and disadvantages of the same. In case of Greer John Wealth Management Pty Ltd, as it already has a strong base of investment customers, it needs to take advantage of microservices architecture and implement it within its company. This will enable the company to compete with its competitors in the market who are implementing cloud-based architecture.
Alshuqayran, N., Ali, N., & Evans, R. (2016). A systematic mapping study in microservice architecture. In 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA) (pp. 44-51). IEEE.
Balalaie, A., Heydarnoori, A., &Jamshidi, P. (2016).Microservices architecture enables devops: Migration to a cloud-native architecture. Ieee Software, 33(3), 42-52.
Kazanavi?ius, J., &Mažeika, D. (2019).Migrating legacy software to microservices architecture. In 2019 Open Conference of Electrical, Electronic and Information Sciences (eStream) (pp. 1-5). IEEE.
Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice architecture: aligning principles, practices, and culture. " O'Reilly Media, Inc.".
Taibi, D., Lenarduzzi, V., Pahl, C., &Janes, A. (2017). Microservices in agile software development: a workshop-based study into issues, advantages, and disadvantages. In Proceedings of the XP2017 Scientific Workshops (pp. 1-5).
Tyszberowicz, S., Heinrich, R., Liu, B., & Liu, Z. (2018).Identifying microservices using functional decomposition. In International Symposium on Dependable Software Engineering: Theories, Tools, and Applications (pp. 50-65). Springer, Cham.
Venugopal, M. V. L. N. (2017). Containerized Microservices architecture. International Journal Of Engineering And Computer Science, 6(11), 23199-23208.