Design of Scalable and Resilient Applications Using Microservice Architecture in Paas Cloud

Design of Scalable and Resilient Applications Using Microservice Architecture in Paas Cloud

Design of Scalable and Resilient Applications using Microservice Architecture in PaaS Cloud David Gesvindr, Jaroslav Davidek and Barbora Buhnova Lab of Software Architectures and Information Systems, Faculty of Informatics, Masaryk University, Brno, Czech Republic Keywords: Cloud Computing, Microservices, Architecture Design. Abstract: With the increasing adoption of microservice architecture and popularity of Platform as a Service (PaaS) cloud, software architecture design is in many domains leaning towards composition of loosely interconnected services hosted in the PaaS cloud, which in comparison to traditional multitier applications introduces new design challenges that software architects need to face when aiming at high scalability and resilience. In this paper, we study the key design decisions made during microservice architecture design and deployment in PaaS cloud. We identify major challenges of microservice architecture design in the context of the PaaS cloud, and examine the effects of architectural tactics and design patterns in addressing them. We apply selected tactics on a sample e-commerce application, constituting of microservices operated by Azure Service Fabric and utilizing other supportive PaaS cloud services within Microsoft Azure. The impact of the examined design decisions on the throughput, response time and scalability of the analyzed application is evaluated and discussed. 1 INTRODUCTION ware architects, with increasing difficulty to navigate among the enormous number of available design op- tions. This creates the need to examine the impact of Microservice architecture is becoming a dominant ar- applicable design patterns in the context of microser- chitectural style in the service-oriented software in- vices and PaaS cloud. dustry (Alshuqayran et al., 2016). In contrast to tra- Although some guidance on the microservice im- ditional multitier applications where the role of soft- plementation in the cloud exists, systematic support ware components is played mainly by software li- for software architects interconnecting microservices braries deployed and executed in a single process to- with other available PaaS cloud services (such as stor- gether with the main application, in microservice ar- age and communication services) is not available, chitecture, individual components become truly au- leaving them to rely on shared experience with typ- tonomous services (Fowler, 2014). There are multi- ically a single application scenario, without consider- ple advantages of this approach—change in a single ing other strategies or alternative designs. component does not require the entire application to In this paper, we study different architectural deci- be redeployed, communication interfaces become ex- sions which are being considered during microservice plicit, and components become more decoupled and architecture design in connection with the PaaS cloud. independent of each other, as illustrated in Figure 1. As a contribution of this work, we elaborate on both Separation of services into functions that can in- teract via interfaces is not new, same as methods Deployed Multitier Architecture Deployed Microservice Architecture to implement such separation in the framework of Presentation UI UI UI Deployed Deployed Deployed Compo Compo Compo Service A Service B Service C Tier -nent -nent -nent service-oriented architecture (Sill, 2016). But as Presentation Presentation Presentation Tier Tier Tier Application Compo Compo Compo emphasized by Sill (Sill, 2016), recent implementa- -nent -nent -nent Tier Application Application Application tions of microservices in cloud settings take service- Tier Tier Tier Data Shared Database Tier Service Service Service oriented architecture to new limits. Possibilities of Storage Storage Storage rapid scalability and use of rich PaaS (Platform as a Figure 1: Separation of components and their deployments Service) cloud services open new design possibilities in a traditional multitier architecture and in microservice ar- for microservices but also bring new threats for soft- chitecture. 619 Gesvindr, D., Davidek, J. and Buhnova, B. Design of Scalable and Resilient Applications using Microservice Architecture in PaaS Cloud. DOI: 10.5220/0007842906190630 In Proceedings of the 14th International Conference on Software Technologies (ICSOFT 2019), pages 619-630 ISBN: 978-989-758-379-7 Copyright c 2019 by SCITEPRESS – Science and Technology Publications, Lda. All rights reserved ICSOFT 2019 - 14th International Conference on Software Technologies documented and undocumented design practices and dently of the platform as the used patterns are plat- solutions, and study their effects, including identifi- form independent and can be applied also to differ- cation of several surprising takeaways. As part of this ent cloud provider (Amazon, Google Cloud) offer- paper, we have designed and implemented a highly ing container hosting services and managed NoSQL configurable e-commerce application (an e-shop solu- databases. tion), which is designed in a way that its architecture Overall, we have evaluated 105 different bench- can be easily reconfigured to support thorough evalua- mark scenarios using 4 cluster configurations (5, 10, tion of the impact of various design decisions on mul- 15, 20 nodes cluster) involving 4 different storage ser- tiple performance related quality attributes (through- vices in the PaaS cloud, 2 communication strategies put, response time and scalability). When designing (synchronous and asynchronous) and 11 design pat- this application, we paid special attention to the se- terns. lection of real use cases and realistic architecture de- The paper is structured as follows. After the dis- sign, being overall as close as possible to a produc- cussion of related work in Section 2, outline of the tion version of such an application. The highly con- background in Section 3, and outline of key architec- figurable architecture of this application gives us a tural decisions that influenced the separation of ser- unique opportunity to provide comparison of multiple vices in Sections 4, Sections 5, 6 and 7 are dedi- versions of the same application using microservice cated to the presentation and evaluation of architec- architecture to evaluate and isolate impact of differ- tural concerned with service storage, communication ent design decisions, which is rarely seen in existing between microservices and application resilience. We work. Software architects can benefit from our work conclude the paper in Section 8. while designing their own applications when facing the same design decisions. With the help of this work they shall now be able to make better-informed deci- sions and choose the right architectural patterns lead- 2 RELATED WORK ing to desired quality of the application, or avoid un- documented problems caused by chosen architecture When designing microservice architectures, software or used PaaS cloud services. architects are currently often relying on known de- sign patterns and tactics (Gamma et al., 1995; Fowler, For the purpose of effective benchmark execution, 2002), which are however not validated in the con- we also implemented an automated client application text of microservices or PaaS cloud. Alderado et that can reconfigure the deployed application, initial- al. point to an absence of repeatable empirical re- ize sample data seeding on the server based on user search on the design and development of microser- requirements, execute any mix of workload, display vice applications (Aderaldo et al., 2017). New design key performance metrics and export detailed perfor- guidelines for microservice architectures are emerg- mance counters in JSON format. This application was ing (Sill, 2016; Wolff, 2016; Nadareishvili et al., used for our benchmarks discussed in this paper. 2016; Newman, 2015), which however do not con- For the implementation of the sample application, tain evaluated performance impacts of recommended we have decided to use Microsoft technologies and patterns on realistic implementations. At the same cloud services. The application is developed in .NET time catalogs of design patterns for the design of PaaS framework using Azure Service Fabric (Mic, 2018), cloud applications are becoming available (Erl et al., which is an open-source application platform for sim- 2013; Wilder, 2012; Homer et al., 2014; Mic, 2017), plified management and deployment of microservices but without measured impacts of their combinations that can run in Microsoft Azure cloud, on-premise in- and their use in a context of microservices. Vali- frastructure and any other cloud infrastructure. This dations of microservice architecture design patterns platform was chosen because of its robustness (Mi- are published by companies that have deployed mi- crosoft uses internally this technology to operate large croservices (Richardson, 2017; Net, 2015) and want scale services in Microsoft Azure, eg. Azure SQL to share their experience with transition to microser- Database, Cosmos DB and others), and rich platform vice design but not mentioning PaaS cloud deploy- services, which simplify microservice development. ment. Instead they focus on their currently deployed On the other hand, the features that we used can be architecture, its behavior and sometimes related per- manually implemented in other frameworks and the formance characteristics rather than transferable take- same results can be obtained by hosting small web ap- aways. Due to the size of their projects, they cannot

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us