History of Cloud Application Architectures From Deployment Monoliths via Microservices to Serverless Architectures and Possible Roads Ahead-A Review from the Frontline ( invited paper )

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

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

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

[3]  Michał Tomasz Jakóbczyk Cloud-Native Architecture , 2020 .

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

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

[6]  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.

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

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

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

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

[11]  Rogério F. da Silva,et al.  The Challenge of Evaluating Virtual Communities of Practice: A Systematic Mapping Study , 2020, Interdisciplinary Journal of Information, Knowledge, and Management.

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

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

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

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

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

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

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

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

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

[21]  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.

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

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

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

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

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

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

[28]  Clarion Congress Hotel Prague Book of Extended Abstracts , 2015 .

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

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

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

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

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

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

[35]  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.

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

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

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

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

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

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

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

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

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

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