Torrens University Australia

Torrens University Australia

Micro-service Architecture

Author’s Note:

Executive Summary

The key aim of this report is to define as well as introduce the micro-service architecture for Whiteboard. In addition, this paper sheds light on the examples of the appropriate implementation of this architecture for three organizations in several industries along with stating the benefits of the micro-service architecture faced by the companies. Moreover, this study explores the constraints faced by the organizations in the implementation of micro-service architecture. This assignment demonstrates service technology and modeling principles associated with integration of micro-service architecture and the challenges in splitting the backend monolithic system, which represent substantial quantity of the behavior of the system of the organization. This report also enlightens on the ethical, security, and legal constraints towards the transition of micro-service architecture.

Table of Contents

TOC o “1-3” h z u Introduction PAGEREF _Toc36157234 h 4Definition and Introduction to Micro-service Architecture PAGEREF _Toc36157235 h 4Examples of Successful Implementation of Micro-Service Architecture PAGEREF _Toc36157236 h 5Discussion on the Principles of Service Modeling and Technologies Available for Integration PAGEREF _Toc36157237 h 7Challenges in splitting the backend monolithic system PAGEREF _Toc36157238 h 9Ethical, Legal and Security Issues in Transitioning to Micro-service Architecture PAGEREF _Toc36157239 h 10Conclusion PAGEREF _Toc36157240 h 11Recommendations PAGEREF _Toc36157241 h 12References PAGEREF _Toc36157242 h 13

Micro-Service Architecture

IntroductionAs one of the leading management system providers, Whiteboard has made a decision on restructuring its business system since they are not near the frequent and continuous model of delivery. It needs a shift towards an approach based on micro-service to the monolithic system (Whiteboard, 2020). The frequent and continuous delivery model lies at the core of the IT strategy of this particular organization and Whiteboard offers a huge competitive advantage to this enterprise over their rivals (Whiteboard, 2020). Hence, the company aims at breaking architecturally the system up into the micro-services so that it can release a code that would not carry any dependency over the other components of this particular system. This report aims at defining and introducing micro-service architecture with examples from three companies who have used the system. The main objective of this report would be to enlighten on the challenges the organizations faced in the implementation of micro-service architecture. The main parts of this report will be the introduction to Microsoft architecture, examples of successful implementation of this architecture in 3 companies, discussion of the principles of service modelling, challenges in splitting the monolithic system, the conclusion and recommendation.

Definition and Introduction to Micro-service ArchitectureMicro-services or the Micro-service Architecture can be defined as the architectural style, which deals with structuring a specific application as the collection of services, which are:

owned by a small group or team

organized over the capabilities of businesses

deployable independently

coupled loosely

highly testable as well as maintainable

This architecture deals with enabling the reliable, frequent, and rapid delivery of the complicated and large applications and it also helps the companies in evolving its stack of technology (Alshuqayran, Ali & Evans, 2016). In other words, it is a technique of software development, which can be termed as a variant of the structural style of service-oriented architecture (Cerny, Donahoo & Trnka, 2018). Morever, micro-service architecture deals with offering the improvised fault isolation whereby the entire application does not necessarily stop functioning in the case of an error within one service (Nadareishvili et al., 2016). Each of the services provided by this system architecture has responsibility for the discrete jobs as well as these can easily interact with the other services through the simple APIs for resolving a complicated and a larger problem associated with the business (Sun, Li & Memon, 2017).

Examples of Successful Implementation of Micro-Service ArchitectureSeveral organizations in various industries have implemented micro-service architecture and this implementation would help in understanding how this system architecture benefits organizational business models.

Walmart

Walmart is a good example of the system implementation that should be accomplished when aging system architecture starts to negatively affect a business. The IT department of Walmart in Canada needed to address the problems they faced in the Black Fridays (Walmart, 2020). For two years in a row, the IT department could not manage the 6 million page-views per minute and thus it became impossible to keep any kind of experience from the user. Thus, Walmart embraced the micro-service architecture and designed around monoliths, laptops, and desktops. This organization has a re-platform towards a micro-service architecture associated with the intention of the achievement close to the 100% availability with reasonable costs (Walmart, 2020). Thus, the migration of the micro-service brought notable outcomes such as orders of mobiles rose by 98%, conversions rose by 20% overnight, and there was no downtime on Boxing Day or Black Friday.

Spotify

This organization has constructed micro-service architecture with their autonomous teams of full-stack developers by avoiding synchronization in the company. The adoption of Micro-service Architecture has allowed Spotify to have a huge number of services down at the same point of time without the users noticing it (Spotify, 2020). This organization has constructed their system by having an assumption that the services can fail at any time. Thus, the individual services cannot do much while facing failure and, in this way, these processes would not ruin the experience of the users.

Amazon

This company has also adopted the micro-service architecture by embracing the DevOps philosophy. This organization gets uncountable number of calls from several applications incorporating applications, which manage the web service API along with its website (Amazon, 2020). Therefore, it would have been impossible for their two-tired and conventional architecture to be managed properly. With the implementation of this architecture, this company has improvised dramatically its lifecycle of front-end applications. At present, this organization can also make deployments of about 50 million in a year with the help of the successful implementation of the micro-service architecture along with their constant processes of delivery (Amazon, 2020). However, the biggest problem with the DevOps micro-service architecture is that the culture can bottle up the releases and influence the entire timeline for marketing associated with the responses towards the business issues and requests.

Discussion on the Principles of Service Modeling and Technologies Available for IntegrationThe Micro-service Architecture works on three basic principles of service modeling and technologies such as the single responsibility, replaceability, and organized around the capabilities of businesses. The Principle of single responsibility states that a specific component or class should have only one reason towards the implementation of change (Granchelli et al., 2017). Hence, SOAP, XML-RPC and REST can be considered as the key principles based on the service modeling along with the technologies associated with the micro-service architecture available for its integration in an organization.

SOAP – SOAP is an abbreviation of Simple Object access Protocol. It is the method that deals with the exchange of the message based on XML across the internet to consume and provide web services. The messages of SOAP are transferred through the formation of the envelope of SOAP (Rademacher, Sachweh & Zündorf, 2017). It is a lightweight modeling protocol of the integration of the Micro-service Architecture within a certain organizational system that significantly deals with exchanging the information within a distributed as well as decentralized environment (Kalske, Mäkitalo & Mikkonen, 2017).

REST – It is the abbreviation of Representational State Transfer and it is those authentic URL, which are basically the representation of a few objects. This principle within the architecture of micro-services is based on two key things such as the interfaces as well as resources (Alshuqayran, Ali & Evans, 2016). Resources are the state of the application and it is functionally represented through the implementation of an authentic URL. Therefore, these resources deal with sharing uniform interfaces for transferring the state between the server and the client (Cerny, Donahoo & Trnka, 2018). It is not important or essential for utilizing XML as the format of data interchange in REST. The returned information’s format can be done in JSON, XML, or in the HTML or plain text format (Sun, Li & Memon, 2017).

XML-RPC – There are mainly two major ways for the implementation of a Remote Procedure Call or RPC within the world of XML in terms of the integration of micro-service architecture such as SOAP and XML-RPC (Rademacher, Sachweh & Zündorf, 2017). In case of XML-RPC, it can be defined as a set of the implementations that permit software running on the disparate OS or executing in distinct environment for making process calls across the internet. Further, it can be considered as calling through remote procedure with the use of HTTP as XML and transport (Kalske, Mäkitalo & Mikkonen, 2017). In addition, this protocol is designed to be simple during the allowance of the complicated structures of data to be returned, processed, and transmitted. XML-RPC utilizes XML for decoding as well as encoding the remote procedure call associated with parameters.

Challenges in Splitting the Backend Monolithic SystemSplitting the backend monolithic system or implementing the micro-service architecture can lead to some significant issues or challenges for organizations. These challenges include:

Managing micro-services – management of micro-services with its increase becomes more challenging and thus it is significant that the management has a plan before the construction of these services. Moreover, the mismanagement of the services is an issue faced at the time of the beginning stages of the transmission from the monolithic applications (Cerny, Donahoo & Trnka, 2018).

Embracement on the DevOps Culture – Constant delivery, autonomy, and agility are needed by separate teams for delivering the initial releases along with the subsequent recursive changes (Nadareishvili et al., 2016). This culture can bottle up the releases and influence the entire timeline for marketing associated with the responses towards the business issues and requests.

Fault Tolerance – It is essential that the different services or applications do not bring down the entire system. At the service level and at the entire solution level, the fault tolerance is critical and crucial to be properly taken care of (Granchelli et al., 2017). Failure is inevitable within the chains of complex dependency and the complexity of the micro-service environment. These services should be capable of withstanding both the external and internal failures.

Testing – Within the micro-service environment, testing can be much more complicated as a result of the implementation, interdependencies, and integration of different services (Rademacher, Sachweh & Zündorf, 2017).

Ethical, Legal and Security Issues in Transitioning to Micro-Service ArchitectureWhile shifting from the monolithic architecture to the micro-service architecture, organizations face the advantages such as short development cycles, flexibility, and scalability whereas this architecture also brings some ethical, legal, and security constraints

When a user should have to login for accessing a resource, the login details of the user have to be saved in such a way that he or she would not be asked for the purpose of verification every time while trying to access the resources (Sun, Li & Memon, 2017). Hence, it can lead to an ethical, legal, and security issue as the details of the users might not be secured and can easily be retrieved and accessed by a third-party agent.

the details of the clients should be verified while clients send requests and permissions should be given to the client should be properly checked (Alshuqayran, Ali & Evans, 2016). Therefore, while using the micro-service, users may have to authorize and authenticate the clients for every service.

The security of every individual micro-service is prominent to this architecture and hence, micro-services interact with each other simultaneously within this architecture in association with the applications of third party (Sun, Li & Memon, 2017). Thus, the users should ensure that the client is not getting the access to the architectural data. ConclusionThe implementation and the design of the Micro-service architecture can play a significant role for Whiteboard in breaking up its monolithic architecture into micro-services. This aspect will make the organization to be successful in releasing its codes, which do not have any dependency over the other system components. The successful adoption of this architecture in other popular companies in different industries like Amazon, Spotify, and Walmart show the path to successfully build this architecture by properly considering the issues these organizations had to face. Further, this study has shed light on the key principles of modeling of micro-service architecture in the form of SOAP, XML-RPC and REST as these would play the most effective role in designing and developing the potential architecture with high level of efficiency. Apart from that, this paper has also shed light on splitting the backend monolithic systems in the form of the issues associated with managing micro-services, embracement of the DevOps culture, fault tolerances, and testing issues. Finally, this paper has also identified the ethical, legal, and the security constraints along with the micro-service architecture.

RecommendationsThere are some approaches of implementation, which Whiteboard would be capable of transitioning into the micro-service architectures:

Data Synchronization – Event sourcing architecture should be deployed for addressing the data synchronization issues through async messaging platform.

Security – the execution and deployment of API gateway can resolve the security constraints. For API security, custom solutions can be developed through the use of Spring Security and Netflix Zuul.

DevOps Support – the use of tools of state-of-the-art DevOps such as PCF with Jenkins, OpenShift, and GCP can address the support related challenges with micro-service architecture.

Fault Tolerance – Netflix Hystrix should be utilized for breaking the circuit if no responses are there from the API for the given ETA or SLA and thus, a mechanism should be provided for retrying the graceful shutdown services without acquiring loss in data.

Testing – This problem can be resolved through unit testing with the implementation of REST APIs or the dependent or integrated APIs that are not available for testing with Cucumber, BDD, WireMock, performance testing, and integration testing.

ReferencesAlshuqayran, N., Ali, N., & Evans, R. (2016, November). A systematic mapping study in microservice architecture. In 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA) (pp. 44-51). IEEE.

Amazon, (2020). Retrieved 26 March 2020, from https://www.amazon.in/Cerny, T., Donahoo, M. J., & Trnka, M. (2018). Contextual understanding of microservice architecture: Current and future directions. ACM SIGAPP Applied Computing Review, 17(4), 29-45.

Granchelli, G., Cardarelli, M., Di Francesco, P., Malavolta, I., Iovino, L., & Di Salle, A. (2017, April). Towards recovering the software architecture of microservice-based systems. In 2017 IEEE International Conference on Software Architecture Workshops (ICSAW) (pp. 46-53). IEEE.

Kalske, M., Mäkitalo, N., & Mikkonen, T. (2017). Challenges when moving from monolith to microservice architecture. In International Conference on Web Engineering (pp. 32-47). Springer, Cham.

Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice architecture: Aligning principles, practices, and culture. ” O’Reilly Media, Inc.”.

Rademacher, F., Sachweh, S., & Zündorf, A. (2017, April). Differences between model-driven development of service-oriented and microservice architecture. In 2017 IEEE International Conference on Software Architecture Workshops (ICSAW) (pp. 38-45). IEEE.

Spotify, (2020). Retrieved 26 March 2020, from https://www.spotify.com/in/Sun, L., Li, Y., & Memon, R. A. (2017). An open IoT framework based on microservices architecture. China Communications, 14(2), 154-162.

Walmart, (2020). Retrieved 26 March 2020, from https://www.walmart.com/Whiteboard, (2020). Retrieved 26 March 2020, from https://www.webwhiteboard.com/