Systematic Literature Review of the Cloud-ready Software Architecture

Many companies are adopting cloud for hosting applications delivered as a service over the Internet. An application service delivered in this way is referred as Software as a Service (SaaS). The SaaS providers get benefits from getting cloud resources provisioned on-demand and through pay-as-you-go billing models. These capabilities enable faster application development and deployment with lower upfront investment into infrastructure. To benefit the most from the cloud, software architecture must be designed with consideration that software will run on the cloud. However, a legacy application is often developed by using monolithic architecture approach and might not get all advantages provided by a cloud computing. A growing monolithic application gets less flexible in development, has longer provisioning time, slows down the speed of innovation and lowers economy of scale. As result of such problems, not only commercial companies, but also the various academic researchers aim to design software as a “cloud-native” application. This kind of software has specific non-functional requirements that define scalability, reliability, fault tolerance and other cloud-specific requirements. This systematic literature review is based on the case studies, published articles and other literature related to the cloud-native or cloud-ready applications. It generalizes common traits of non-functional requirements defined in analyzed resources. Also, it walks through architectural styles of the applications running on a cloud and presents recently developed architectures that are used for large-scale software services delivered on a cloud.

[1]  Samuel Kounev,et al.  Elasticity in Cloud Computing: What It Is, and What It Is Not , 2013, ICAC.

[2]  Timothy Meline,et al.  Selecting Studies for Systemic Review: Inclusion and Exclusion Criteria , 2006 .

[3]  Schahram Dustdar,et al.  MADCAT: A Methodology for Architecture and Deployment of Cloud Application Topologies , 2014, 2014 IEEE 8th International Symposium on Service Oriented System Engineering.

[4]  Yehia Taher,et al.  4CaaSt: Comprehensive Management of Cloud Services through a PaaS , 2012, 2012 IEEE 10th International Symposium on Parallel and Distributed Processing with Applications.

[5]  Frank Leymann,et al.  How to adapt applications for the Cloud environment , 2012, Computing.

[6]  Vassil Roussev,et al.  Cloud forensics-Tool development studies & future outlook , 2016, Digit. Investig..

[7]  Michael Kavis,et al.  Architecting The Cloud: KAVIS: ARCHITECTING THE CLOUD , 2014 .

[8]  Sam Newman,et al.  Building Microservices , 2015 .

[9]  Olaf Zimmermann Architectural refactoring for the cloud: a decision-centric view on cloud migration , 2016, Computing.

[10]  Frank Leymann Native Cloud Applications - Why Virtual Machines, Images and Containers Miss the Point! , 2016, WEBIST.

[11]  David S. Linthicum,et al.  Practical Use of Microservices in Moving Workloads to the Cloud , 2016, IEEE Cloud Computing.

[12]  Kjell Hole Toward an Anti-fragile e-Government System , 2016 .

[13]  Balwinder Sodhi,et al.  Application architecture considerations for cloud platforms , 2011, 2011 Third International Conference on Communication Systems and Networks (COMSNETS 2011).

[14]  Frank Leymann,et al.  Cloud Computing Patterns , 2014, Springer Vienna.

[15]  Josef Spillner,et al.  Self-managing cloud-native applications: Design, implementation, and experience , 2017, Future Gener. Comput. Syst..

[16]  Pooyan Jamshidi,et al.  Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture , 2016, IEEE Software.

[17]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[18]  Patrizia Scandurra,et al.  A framework for early design and prototyping of service-oriented applications with design patterns , 2016, Comput. Lang. Syst. Struct..

[19]  Josef Spillner,et al.  Experimental Evaluation of the Cloud-Native Application Design , 2015, 2015 IEEE/ACM 8th International Conference on Utility and Cloud Computing (UCC).

[20]  René Peinl,et al.  Docker Cluster Management for the Cloud - Survey Results and Own Solution , 2016, Journal of Grid Computing.

[21]  Alan Sill,et al.  The Design and Architecture of Microservices , 2016, IEEE Cloud Computing.

[22]  Mike Amundsen,et al.  Microservice Architecture: Aligning Principles, Practices, and Culture , 2016 .

[23]  Dana Petcu,et al.  MODAClouds: A model-driven approach for the design and execution of applications on multiple Clouds , 2012, 2012 4th International Workshop on Modeling in Software Engineering (MISE).

[24]  René Peinl,et al.  ClouNS - a Cloud-Native Application Reference Model for Enterprise Architects , 2016, 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW).

[25]  Frank Leymann,et al.  CAP-Oriented Design for Cloud-Native Applications , 2012, CLOSER.

[26]  Marko Becker,et al.  Service Oriented Architecture Concepts Technology And Design , 2016 .

[27]  Iraklis Paraskakis,et al.  Software Co-development in the Era of Cloud Application Platforms and Ecosystems: The Case of CAST , 2012, PRO-VE.

[28]  Joe Weinman,et al.  Migrating to--or away from--the Public Cloud , 2016, IEEE Cloud Computing.

[29]  V. Neelanarayanan,et al.  Framework for Platform Agnostic Enterprise Application Development Supporting Multiple Clouds , 2015 .

[30]  Nane Kratzke,et al.  Understanding cloud-native applications after 10 years of cloud computing - A systematic mapping study , 2017, J. Syst. Softw..