Software Engineering Assignment: Microservices Architecture for Greer John Wealth Management Pty Ltd
Task: You are required to research and write a 2500-word individual report on software engineering assignment in response to a case scenario (of your choice). This assessment offers you an opportunity to apply the knowledge you gained about microservices architecture. You are required to use the case as context to write a report for both business and IT stakeholders explaining the advantages and disadvantages of microservicesarchitecture and the benefits it can offer an organisation. You will need to demonstrate your ability to identify business priorities and relate relevant advantages to complex business needs through the strategy you recommend.
It is evident in this software engineering assignment that business organizations use several methods for managing their operations. Some companies are still using monolithic architecture which is traditional methods. However, many of the firms operate their business on digital platforms for improving their business efficiency. The monolithic architecture is based on single units and has a complicated process that is difficult to understand. It comprises system codes within a single application which becomes difficult to be managed by the supervisors and employees. The architecture is based on highly tight couplings while it is difficult to implement new technologies in the system. Thus, any changes in the code impact the other services of the application. However, microservices architecture is a collection of various small services that ease the business efficiencies. It is much easier to manage and implement changes in a microservices architecture (Sharma and Gonzalez, 2017). Hence the business organization can adopt new technologies as it provides 360 views of the business.
In this view, Greer John Wealth Management Pty Ltd is an investment firm that was established in the early 2000s. The company has a strong customer base that trusts the investment portfolios provided by the firm. Greer John Wealth Management Pty Ltd has been operating its business services through monolithic architecture. It has become essential for the firm to adapt to digital strategy for meeting high competition while enhancing its customer services. Thus, this report will provide a detailed analysis of the cloud-based platforms that will benefit Greer John Wealth Management Pty Ltd. The report will analyze the microservices architecture, its benefits, and considerations while transitioning to new technology.
TransitionalAdvantages for Monolithic Architecture to Microservices Platforms
As discussed above, monolithic architecture has several disadvantages due to which the companies are unable to make decisions that will be profitable for the business. Each component of the monolithic structure cannot be scaled (Li et al, 2019). The development of traditional systems is expensive and time taking process.
Figure 1: Monolithic Architecture
(Source:Sharma and Gonzalez, 2017)
Greer John Wealth Management should transition to microservicesarchitecture with improved benefits. Thus, in the microservices platforms, each unit is fragmented into independent units that communicate through Application Programming Interfaces (API) (Sharma and Gonzalez, 2017). Thus, each unit can be deployed, scaled, and upgraded without impacting the entire system.
Figure 2:Transition from Monolithic to Microservices architecture
(Source: Sharma and Gonzalez, 2017)
Benefits of Microservices Architecture to Greer John Wealth Management
Independent mechanisms: Greer John Wealth Management should adopt the microservices architecture as these systems can be independently managed. Thus, all services in this type of architecture can be easily deployed and updated which flexibility in management. If the one service is bugged then it will not impact other associated applications. This helps in safeguarding the databases located in the core systems of the company (Li et al, 2019). Unlike the monolithic architecture where the entire is impacted by a disruption in a particular service. Besides, one can easily experiment or update one service as it an independent unit. This improves business performance and creates a competitive edge for the firms.
Easy to understand and manage: Since the services are split into several separate units, one department can only focus on their services for fulfilling business goals (Ma, et al, 2019). Thus, applications designed for several business functions can be easily managed by the departments.
Improved Scalability: Each element of services cannot be scaled independently in traditional architectures. Thus, scaling the entire application in the monolithic architecture is time-consuming and expensive. In the case of increased users in the company, defects of scalability complex business management (Ma, et al, 2019). Due to this, the companies rewrite their monolithic architecture. Comparatively, scaling is easier in a microservices architecture.
Flexible in selecting technology: Each service is independently managed thus are not restricted from the application of technological innovations. Thereby the organizational IT team can add technologies as per their needs and business objectives (Ma, et al, 2019). Since the experiments can be made in a particular system thus changes can be implemented at low costs and risks.
Improved revenue- Since the microservices offer faster iterations and reduced downtime, revenues are improved due to business efficiencies. Also, high engagement of the user and retention helps in the continuous development of the software.
Resilience: Since several services are deployed into multiple platforms thus, the susceptibility of the application failure is reduced. Thus, the software and applications will result in high performance, low downtime, and high demand scalability.
Figure 3:Microservices Architecture
(Source: Sharma and Gonzalez, 2017)
A. Consideration for adopting microservices
The microservices platforms are very beneficial for the complex business operations of some organizations. It is ideal when there are too many users and steady workflow. However, operational preparedness and expertise are necessary before splitting from monolithic to microservices operations. Thus, Greer John Wealth Management can consider two processes while adapting to microservices platforms in the future. Firstly, the company can start a new microservices platform, Secondly, monoliths can be gradually split and migrated to microservices.
High degree of independence: It determines the independency of the services desired by the organizations. As mentioned before each application is independent with its separate database and UI. Thus, the team can select the type of databases they require. It implies that user IDS should be the same across all platforms for ensuring that the database is synchronized and consistent. Each team using the services have to perform several data management tasks like backups. The company might also use specific components like a database for ensuring consistency in all services (Pérez et al, 2018). Several developers often adopt open source tools to secure, monitor, debug, and log into the services. Thus, the organizations should be careful that open sources should not be over-relied as they might impact the safety and performance of the entire system. It is also essential for creating organizational policies for the usage of each service of the architecture.
Use of appropriate technologies: The team members do not give due importance to the use of technology of the services. Greer John Wealth Management can choose the language in alignment with the comfort and preference of team members. The organizations can choose several parameters like costs, affluence of deployment, domain-driven designs scalability, and others. the microservices platform is specifically created for the businesses, thus the organizations can use several servers for tracking their services and running their content deliveries.
Building the systems: The developers should split the systems from the initial stagesto reduce massive hurdles in the future. Thus, each interaction process of microservices should be defined. This will help in getting a clear structure of monolithic thereby enhancing the migration. If Greer John Wealth Managementhas monitored the performance of individual mechanisms than understanding the gaps of the monolithic becomes easier (Santoro, Nativi and Mazzetti, 2016). After the gaps are detected, troubling areas can be easily transformed into microservices.
Forming small steps for migration: Monolithic Architecture often included various complex components like repository, supervision, and deployments, and others.it might be difficult for the developers to change the entire at once. Also, changing systems instantly can result in several gaps and errors which might impact the performance of the entire application (Pérez et al, 2018). Greer John Wealth Management team can develop additional micro service capability while retaining the traditional. After constructing a new system, the gradual migration of each service can be done.
Cultural Shift: Any changes in the organization should be done after preparing the mindsets of the employees. Thus, different training sessions and communications can help in incorporating cultural shifts. In the transitioning from monolithic to microservices, the employee might face several challenges (Pérez et al, 2018). As the monolithic architecture involves end to end tests and complex managements thus migrating to a simpler platform might increase inefficient performance.
Strengths of REST API: Representational State Transfer eases the migrations as the employees and developers don't require the installation of additional applications for the creation of REST API (Santoro, Nativi and Mazzetti, 2016). The developers also don't require designing frameworks as HTTP is appropriate. REST API helps in exporting the data as the information sharing is not restricted to specific methods.
Automatic deployment: The monolithic architecture should be deployed independently for migrating to the microservices platforms. Thus, "build and release" automatic structure should be implemented. This helps in reducing the overall lead time while also enhancing the entire process. In other words, microserviceswill be wrapped in containers thereby commencing the deployment to the cloud in an efficient manner.
B. Strengths of Service Modelling
Software as a Service is a substitute for installing software, unlike the traditional models in which the user has to create the server, connecting the application while also configuring it. In a SaaS model, the company does not pay for the software however, they subscription systems. Thus, the user only pays for the software used for a particular period. SaaS provides several business applications that include :
- Communication software
- Payroll and Accounting software
- CRM software
- HRM software
- ERP and CPM (Corporate Performance Management) Software
- Various Mobile Applications
Reduced costs- SaaS model is prevalent in a shared environment thus the hardware and software costs are comparatively low than compared to monolithic platforms. It will help Greer John Wealth Management to increase its customer base as the maintenance costs are low.
Time: Service modelingis completely different from traditional monolithic architecture. In SaaS, the software is prepared in advance and ready to install. It gives the user advantage of provisioning the servers thereby the application is ready to use in lesser time (Santoro, NativiandMazzetti, 2016). Thus, service modeling helps in reducing the time required to install and configure the software while it also eliminates the problems in software deployment.
Scalability: SaaS is operated in the cloud-based structure, thereby new applications can be scaled and integrated with the existing ones (Hoveskog et al, 2018).
Upgradation of services: The software can be easily upgraded and made available to the clients. The cost and upgradation risk are comparatively low than compared to traditional platforms. Greer John Wealth Management can pay for upgraded software or pay for the upgradation for the entire architecture.
Ease of use: Usually SaaS is easy to use as it is designed with best practices and samples. Thus, many have the advantage of proofing the concepts, testing the software functions, or new features beforehand (Hoveskog et al, 2018). Different versions of the software can be tested without complex migration. For instance, IBM has a portfolio of 100 software applications that can solve critical business problems. Thus, Greer John Wealth Management can test the software utilizing SaaS before the final purchase.
High Secured: Since the software is licensed or subscription-based thus the vendors ensure high security for stable income from the user- clients. The SaaS providers undertake vigilant steps for ensuring efficient software services to the clients. Moreover, Greer John Wealth Management is an investment company thus ensuring high secured data-based customer investments are essential. SaaS will not only help in protecting client confidentiality while also provides secured servers for storing the various database.
Vendors work for the User: Vendors of SaaS ensure efficient working of the software as if the services break down, the client will not pay which will impact the revenue of the providers. Hence, the vendors are highly motivated to provide the best software services to the clients. Also, SaaS reduces the dependency on the firm’s IT department as the third parties are responsible for security, installation, efficient working of the software.
DevOps can be defined as the collaborations of cultural philosophies and tools which further enhances the capability of the organization for delivering services and applications (Forsgren and Kersten, 2017). Thushelps the organization in developing and emerging new products at a faster rate.DevOps models help organizations in serving the customers better while creating a competitive edge in the market.
(Source: Laukkarinen, Kuusinen and Mikkonen, 2018)
Working of DevOps
As mentioned above, the operational and developmental teams are collaborated into one single group for creating the application lifecycle. Some of DevOps models involve tight integration of security and quality teams together for developing and operating the entire application lifecycle. Thus, when only security is focused on the DevOps model then the process is known as DevSecOps (Laukkarinen, Kuusinen and Mikkonen, 2018). They help in transforming the microservices into an automatic process that was manual and slow in the traditional model. This will be helpful for Greer John Wealth Management as the DevSecOps uses technological stacking and tooling for operating and evolving the applications much faster and reliable.
Figure 5: How DevOps Works?
(Source: Laukkarinen, Kuusinen and Mikkonen, 2018)
Adopting DevOps Model
Figure 6: Adopting DevOps Model
(Source: Shahin et al, 2019)
Cultural Philosophy – DevOps is referred to as the elimination of barriers for the traditionally siloed groups. Thus, Greer John Wealth Management should change the culture and mindset of the organization for transitioning to DevOps (Laukkarinen, Kuusinen and Mikkonen, 2018). The organizations work on the DevOps model, they are comprised of teams that consider the development and infrastructure lifestyle as their responsibilities.
Proper tooling helps the organization in fostering innovation through automated and streamlined software development and Infrastructure administration procedures. Greer John Wealth Management can foster DevOps practices through small and frequent updates that will reduce the risk associated with deployment. Thus, will also help in identifying system bugs as the group are capable to detect the errors that occurred due to upgradation.
DevOps Practices include
Continuous Integration- This involves the procedure in which the developers merge modified codes into the main repository systems through which the automatic builds and tests are run. Thus, major goals of continuous integrationinclude detecting bugs, improvement in the software quality, reduction of time invalidation, and release of software updates(Shahin et al, 2019). Continuous Delivery: It is a practice of software development in which code changes are automated for building, testing, and production release (Shahin et al, 2019).
Infrastructure as a Code: It is code practice through which the infrastructure is handled and provisioned utilizing the codes and techniques of software expansion. The model-driven API cloud helps the developers and administrators for interacting with infrastructure programs.
Monitoring – The organization monitoring metrics and logs enable them to review the impact of infrastructure on the end-user. To track the impacts of changes and updates, the companies categorize, capture, and analyses data and logs (Schlossnagle, 2017). This will Greer John Wealth Management in gaining insights about the unexpected issues and changes in the system.
Usage of DevOps tools establishes communication and collaborations of the organization as they collate the workflows and responsibilities of both the development and operations team. Greer John Wealth Management will able to facilitate communication amongst the developers through chat applications, wikis, and tracking systems (Lewerentz et al 2019).
Many companies in the modern era are working on monolithic architecture which is a much-complicated process than the microservices platforms. This entailsthat Greer John Wealth Management should transition from the traditional platforms to microservices as the new technology is cost-effective and flexible. The microservices platform has different independent units that can be easily managed and upgraded without impacting the parent system. In this view, the company can reap several benefits of service modeling as they are secured while the software is subscription-based which reduces the cost and time while using it. It is essential for Greer John Wealth Management for adapting the DevOps model that willinfrastructure development. In other words, DevOps is the operational and developmental practice of the engineers that collectively participate lifecycle of services that starts from designing and ends with production support. The build-up and testing of the software are related to practices such as continuous delivery, integration, monitoring, and others. It can be said that transition from tradition to digitization will be a successful and cost-effective strategy for Greer John Wealth Management
Forsgren, N., &Kersten, M. (2017).Devops metrics. Queue, 15(6).
Hoveskog, M., Halila, F., Mattsson, M., Upward, A., &Karlsson, N. (2018). Education for sustainable development: business modelling for flourishing. Journal of Cleaner Production, 172, 4383–4396. https://doi.org/10.1016/j.jclepro.2017.04.112
Laukkarinen, T., Kuusinen, K., &Mikkonen, T. (2018). Regulated software meets devops. Information and Software Technology, 97, 176–178. https://doi.org/10.1016/j.infsof.2018.01.011
Lewerentz, M., Bluhm, T., Daher, R., Dumke, S., Grahl, M., Grün, M., … Werner, A. (2019). Implementing devops practices at the control and data acquisition system of an experimental fusion device. Fusion Engineering and Design, 146, 40–45. https://doi.org/10.1016/j.fusengdes.2018.11.022
Li, S., Zhang, H., Jia, Z., Li, Z., Zhang, C., Li, J., … Shan, Z. (2019). A dataflow-driven approach to identifying microservices from monolithic applications.Software engineering assignment The Journal of Systems & Software, 157.https://doi.org/10.1016/j.jss.2019.07.008
Ma, S.-P., Fan, C.-Y., Chuang, Y., Liu, I.-H., &Lan, C.-W. (2019). Graph-based and scenario-driven microservice analysis, retrieval, and testing. Future Generation Computer Systems, 100, 724–735. https://doi.org/10.1016/j.future.2019.05.048
Pérez, A., Moltó, G., Caballer, M., &Calatrava, A. (2018).Serverless computing for container-based architectures. Future Generation Computer Systems, 83, 50–59. https://doi.org/10.1016/j.future.2018.01.022
Santoro, M., Nativi, S., &Mazzetti, P. (2016).Contributing to the geo model web implementation: a brokering service for business processes. Environmental Modelling and Software, 84, 18–34. https://doi.org/10.1016/j.envsoft.2016.06.010
Schlossnagle, T. (2017).Monitoring in a devops world. Queue, 15(6), 35–45. https://doi.org/10.1145/3178368.3178371
Shahin, M., Zahedi, M., Babar, M. A., & Zhu, L. (2019).An empirical study of architecting for continuous delivery and deployment. Empirical Software Engineering : An International Journal, 24(3), 1061–1108. https://doi.org/10.1007/s10664-018-9651-4
Sharma, S., RV, R., & Gonzalez, D. (2017). Microservices.Packt Publishing.