A Brief History of Cloud Application Architectures

This paper presents a review of cloud application architectures and its evolution. It reports observations being made during a research project that tackled the problem to transfer cloud applications between different cloud infrastructures. As a side effect, we learned a lot about commonalities and differences from plenty of different cloud applications which might be of value for cloud software engineers and architects. Throughout the research project, we analyzed industrial cloud standards, performed systematic mapping studies of cloud-native application-related research papers, did action research activities in cloud engineering projects, modeled a cloud application reference model, and performed software and domain-specific language engineering activities. Two primary (and sometimes overlooked) trends can be identified. First, cloud computing and its related application architecture evolution can be seen as a steady process to optimize resource utilization in cloud computing. Second, these resource utilization improvements resulted over time in an architectural evolution of how cloud applications are being built and deployed. A shift from monolithic service-oriented architectures (SOA), via independently deployable microservices towards so-called serverless architectures, is observable. In particular, serverless architectures are more decentralized and distributed, and make more intentional use of separately provided services. In other words, a decentralizing trend in cloud application architectures is observable that emphasizes decentralized architectures known from former peer-to-peer based approaches. This is astonishing because, with the rise of cloud computing (and its centralized service provisioning concept), the research interest in peer-to-peer based approaches (and its decentralizing philosophy) decreased. However, this seems to change. Cloud computing could head into the future of more decentralized and more meshed services.

[1]  Johan Bové,et al.  The Twelve-Factor App , 2020 .

[2]  Antonio Brogi,et al.  Cloud Container Technologies: A State-of-the-Art Review , 2019, IEEE Transactions on Cloud Computing.

[3]  Alexandru Iosup,et al.  Serverless is More: From PaaS to Present Cloud Computing , 2018, IEEE Internet Computing.

[4]  Magnus Westerlund,et al.  Towards Distributed Clouds: A Review About the Evolution of Centralized Cloud Computing, Distributed Ledger Technologies, and A Foresight on Unifying Opportunities and Security Implications , 2018, 2018 International Conference on High Performance Computing & Simulation (HPCS).

[5]  Alfonso Pérez,et al.  Serverless computing for container-based architectures , 2018, Future Gener. Comput. Syst..

[6]  Mauro Conti,et al.  Scheduling Distributed Energy Resource Operation and Daily Power Consumption for a Smart Building to Optimize Economic and Environmental Parameters , 2018 .

[7]  Claus Pahl,et al.  Microservices: The Journey So Far and Challenges Ahead , 2018, IEEE Softw..

[8]  Remi Badonnel,et al.  Unikernel-based approach for software-defined security in cloud infrastructures , 2018, NOMS 2018 - 2018 IEEE/IFIP Network Operations and Management Symposium.

[9]  Cristina L. Abad,et al.  A SPEC RG Cloud Group's Vision on the Performance Challenges of FaaS Cloud Architectures , 2018, ICPE Companion.

[10]  Mauro Conti,et al.  RARE: Defeating side channels based on data-deduplication in cloud storage , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS).

[11]  Gerti Kappel,et al.  A Systematic Review of Cloud Modeling Languages , 2018, ACM Comput. Surv..

[12]  Nane Kratzke,et al.  Towards a Lightweight Multi-Cloud DSL for Elastic and Transferable Cloud-native Applications , 2018, CLOSER.

[13]  Claus Pahl,et al.  Architectural Patterns for Microservices: A Systematic Mapping Study , 2018, CLOSER.

[14]  Josef Spillner Practical Tooling for Serverless Computing , 2017, UCC.

[15]  Theo Lynn,et al.  A Preliminary Review of Enterprise Serverless Cloud Computing (Function-as-a-Service) Platforms , 2017, 2017 IEEE International Conference on Cloud Computing Technology and Science (CloudCom).

[16]  Perry Cheng,et al.  The serverless trilemma: function composition for serverless computing , 2017, Onward!.

[17]  Siobhán Clarke,et al.  Quality of service approaches in IoT: A systematic mapping , 2017, J. Syst. Softw..

[18]  Michael J. Donahoo,et al.  Disambiguation and Comparison of SOA, Microservices and Self-Contained Systems , 2017, RACS.

[19]  Jörg Ott,et al.  FADES: Fine-Grained Edge Offloading with Unikernels , 2017, HotConNet@SIGCOMM.

[20]  Bob Duncan,et al.  Cloud Cyber Security: Finding an Effective Approach with Unikernels , 2017 .

[21]  Perry Cheng,et al.  Serverless Computing: Current Trends and Open Problems , 2017, Research Advances in Cloud Computing.

[22]  Rubby Casallas,et al.  Cost comparison of running web applications in the cloud using monolithic, microservice, and AWS Lambda architectures , 2017, Service Oriented Computing and Applications.

[23]  Claus Pahl,et al.  Benchmark Requirements for Microservices Architecture Research , 2017, 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE).

[24]  Dan Williams,et al.  Will Serverless End the Dominance of Linux in the Cloud? , 2017, HotOS.

[25]  Nane Kratzke About the Complexity to Transfer Cloud Applications at Runtime and How Container Platforms Can Contribute? , 2017, CLOSER.

[26]  Bob Duncan,et al.  Unikernels for Cloud Architectures: How Single Responsibility can Reduce Complexity, Thus Improving Enterprise Cloud Security , 2017, COMPLEXIS.

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

[28]  Robert Anderson Keith Duncan,et al.  Enhancing Cloud Security and Privacy: The Unikernel Solution , 2017 .

[29]  Alberto Lluch-Lafuente,et al.  Microservices: Yesterday, Today, and Tomorrow , 2016, Present and Ulterior Software Engineering.

[30]  Nane Kratzke Smuggling Multi-cloud Support into Cloud-native Applications using Elastic Container Platforms , 2017, CLOSER.

[31]  Nane Kratzke,et al.  Towards a Description of Elastic Cloud-native Applications for Transferable Multi-Cloud-Deployments , 2017 .

[32]  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).

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

[34]  Ramtin Jabbari,et al.  What is DevOps?: A Systematic Mapping Study on Definitions and Practices , 2016, XP Workshops.

[35]  Perry Cheng,et al.  Cloud-Native, Event-Based Programming for Mobile Applications , 2016, 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft).

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

[37]  Nane Kratzke,et al.  Overcome Vendor Lock-In by Integrating Already Available Container Technologies Towards Transferability in Cloud Computing for SMEs , 2016 .

[38]  Nane Kratzke,et al.  Project Cloud TRANSIT - Or to Simplify Cloud-native Application Provisioning for SMEs by Integrating Already Available Container Technologies , 2016, EPS.

[39]  Inderveer Chana,et al.  Energy Efficiency Techniques in Cloud Computing , 2015, ACM Comput. Surv..

[40]  Andrea Tosatto,et al.  Container-Based Orchestration in Cloud: State of the Art and Challenges , 2015, 2015 Ninth International Conference on Complex, Intelligent, and Software Intensive Systems.

[41]  Abhishek Verma,et al.  Large-scale cluster management at Google with Borg , 2015, EuroSys.

[42]  Feng Tian,et al.  Critical review of vendor lock-in and its impact on adoption of cloud computing , 2014, International Conference on Information Society (i-Society 2014).

[43]  Nane Kratzke Lightweight Virtualization Cluster How to Overcome Cloud Vendor Lock-In , 2014 .

[44]  Danilo Ardagna,et al.  Quality-of-service in cloud computing: modeling techniques and their applications , 2014, Journal of Internet Services and Applications.

[45]  Dmitry Namiot,et al.  On micro-services architecture , 2014 .

[46]  Athanasios V. Vasilakos,et al.  Mobile Cloud Computing: A Survey, State of Art and Future Directions , 2013, Mobile Networks and Applications.

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

[48]  Jukka Riekki,et al.  Cloud Architecture for Dynamic Service Composition , 2012, Int. J. Grid High Perform. Comput..

[49]  Maryam Razavian,et al.  A Survey of SOA Migration in Industry , 2011, ICSOC.

[50]  P. Mell,et al.  The NIST Definition of Cloud Computing , 2011 .

[51]  Fang Liu,et al.  NIST Cloud Computing Reference Architecture , 2011, 2011 IEEE World Congress on Services.

[52]  Jukka Riekki,et al.  Super-peer-based coordinated service provision , 2011, J. Netw. Comput. Appl..

[53]  Randy H. Katz,et al.  Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center , 2011, NSDI.

[54]  Jukka Riekki,et al.  Pervasive Service Computing toward Accommodating Service Coordination and Collaboration , 2009, 2009 Fourth International Conference on Frontier of Computer Science and Technology.

[55]  Paolo Traverso,et al.  Service-Oriented Computing: State of the Art and Research Challenges , 2007, Computer.

[56]  Mike P. Papazoglou,et al.  Service oriented architectures: approaches, technologies and research issues , 2007, The VLDB Journal.

[57]  Schahram Dustdar,et al.  A survey on web services composition , 2005, Int. J. Web Grid Serv..

[58]  Munindar P. Singh,et al.  Service-Oriented Computing: Key Concepts and Principles , 2005, IEEE Internet Comput..

[59]  クレジャ,フラン・エイ,et al.  The circuit breaker , 2004 .