Abstract
A cloud is a distributed Internet-based software system providing resources as tiered services. Through service-orientation and virtualization for resource provisioning, cloud applications can be deployed and managed dynamically. We discuss the building blocks of an architectural style for cloud-based software systems. We capture style-defining architectural principles and patterns for control-theoretic, model-based architectures for cloud software. While service orientation is agreed on in the form of service-oriented architecture and microservices, challenges resulting from multi-tiered, distributed and heterogeneous cloud architectures cause uncertainty that has not been sufficiently addressed. We define principles and patterns needed for effective development and operation of adaptive cloud-native systems.
- A. Ahmad, P. Jamshidi, and C. Pahl. 2014. Classification and comparison of architecture evolution reuse knowledge – A systematic review. J. Softw.: Evol. Process 26, 7 (2014), 654--691. Google Scholar
Digital Library
- N. Antonopoulos and L. Gillam. 2010. Cloud Computing: Principles, Systems and Applications. Springer. Google Scholar
Digital Library
- H. Arabnejad, P. Jamshidi, G. Estrada, N. El Ioini, and C. Pahl. 2016. An auto-scaling cloud controller using fuzzy Q-learning—Implementation in openstack. In Proceedings of the European Conference on Service-Oriented and Cloud Computing (ESOCC’16).Google Scholar
- H. Arabnejad, C. Pahl, P. Jamshidi, and G. Estrada. 2017. A comparison of reinforcement learning techniques for fuzzy cloud auto-scaling. In Proceedings of the International Symposium on Cluster, Cloud and Grid Computing (CCGrid’17). Google Scholar
Digital Library
- A. Balalaie, A. Heydarnoori, and P. Jamshidi. 2016. Microservices architecture enables DevOps: Migration to a cloud-native architecture. IEEE Softw. 33, 3 (May 2016), 42--52. Google Scholar
Digital Library
- L. Baresi and C. Ghezzi. 2013. A journey through SMScom: Self-managing situational computing. Comput. Sci.-Res. Dev. 28, 4 (2013), 267--277. Google Scholar
Digital Library
- A. Brunnert, A. van Hoorn, F. Willnecker, A. Danciu, W. Hasselbring, C. Heger, N. Herbst, P. Jamshidi, R. Jung, J. von Kistowski, A. Koziolek, J. Kross, S. Spinner, C. Vögele, J. Walter, and A. Wert. 2015. Performance-oriented DevOps: A research agenda. Technical Report SPEC-RG-2015-01, SPEC Research Group (RG) DevOps Performance. https://arxiv.org/abs/1508.04752.Google Scholar
- P. Cedillo, J. Jimenez-Gomez, S. Abrahao, and E. Insfran. 2015. Towards a monitoring middleware for cloud services. In Proceedings of the International Conference on Services Computing (SCC’15). 451--458. Google Scholar
Digital Library
- K. Chan, I. Poernomo, H. Schmidt, and J. Jayaputera. 2005. A model-oriented framework for runtime monitoring of nonfunctional properties. In Proceedings Conference on Quality of Software Architectures and Software Quality. Lecture Notes in Computer Science, vol. 3712. Springer. Google Scholar
Digital Library
- B. H. C. Cheng, R. De Lemos, H. Giese, P. Inverardi, J. Magee, J. Andersson, B. Becker, N. Bencomo, Y. Brun, B. Cukic, and others. 2009. Software engineering for self-adaptive systems: A research roadmap. In Software Engineering for Self-adaptive Systems. Springer. Google Scholar
Digital Library
- K. Czarnecki and S. Helsen. 2003. Classification of model transformation approaches. In Workshop Generative Techniques in the Context of the Model Driven Architecture. 1--17.Google Scholar
- R. De Lemos, H. Giese, H. A. Müller, M. Shaw, J. Andersson, M. Litoiu, B. Schmerl, G. Tamura, N. M. Villegas, T. Vogel, and others. 2013. Software engineering for self-adaptive systems: A second research roadmap. In Software Engineering for Self-Adaptive Systems II. Springer, 1--32.Google Scholar
- T. Erl. 2005. Service-oriented Architecture: Concepts, Technology, and Design. Pearson Education. Google Scholar
Digital Library
- N. Esfahani and S. Malek. 2013. Uncertainty in self-adaptive software systems. In Software Engineering for Self-Adaptive Systems II. Springer, 214--238.Google Scholar
- S. Farokhi, P. Jamshidi, I. Brandic, and E. Elmroth. 2015. Self-adaptation challenges for cloud-based applications: A control theoretic perspective. In Proceedings of the 10th International Workshop on Feedback Computing.Google Scholar
- C. Fehling, F. Leymann, R. Retter, W. Schupeck, and P. Arbitter. 2014. Cloud computing patterns. Springer-Verlag Wien.Google Scholar
- A. Filieri, M. Maggio, K. Angelopoulos, N. D’Ippolito, I. Gerostathopoulos, A. Hempel, H. Hoffmann, P. Jamshidi, E. Kalyvianaki, C. Klein, F. Krikava, S. Misailovic, A. V. Papadopoulos, S. Ray, A. M. Sharifloo, S. Shevtsov, M. Ujma, and T. Vogel. 2015. Software engineering meets control theory. In Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’2015). Google Scholar
Digital Library
- B. Fitzgerald and K.-J. Stol. 2014. Continuous software engineering and beyond: Trends and challenges. In Proceedings of the 1st International Workshop on Rapid Continuous Software Engineering (RCoSE’14). Google Scholar
Digital Library
- D. Garlan and M. Shaw. 1994. An Introduction to Software Architecture. Vol. 1. World Scientific.Google Scholar
- C. Ghezzi, L. S. Pinto, P. Spoletini, and G. Tamburrelli. 2013. Managing non-functional uncertainty via model-driven adaptivity. In Proceedings of the 2013 International Conference on Software Engineering. 33--42. Google Scholar
Digital Library
- S. He, L. Guo, Y. Guo, C. Wu, M. Ghanem, and R. Han. 2012. Elastic application container: A lightweight approach for cloud resource provisioning. In Proceedings of the International Conference on Advances in Information Networking and Applications. Google Scholar
Digital Library
- R. Heinrich, E. Schmieders, R. Jung, K. Rostami, A. Metzger, W. Hasselbring, R. Reussner, and K. Pohl. 2014. Integrating run-time observations and design component models for cloud system analysis. In Proceedings of the 9th Workshop on [email protected]. 41–46. http://ceur-ws.org/Vol-1270/.Google Scholar
- Z.-S. Hou and J.-X. Xu. 2007. New feedback-feedforward configuration for the iterative learning control of a class of discrete-time systems. Acta Automatica Sinica 33, 3 (2007), 323–326.Google Scholar
Cross Ref
- J. Hu, J. Gu, G. Sun, and T. Zhao. 2010. A scheduling strategy on load balancing of virtual machine resources in cloud computing environment. In Proceedings of the International Symposium on Parallel Architectures, Algorithms and Programming. Google Scholar
Digital Library
- P. Jamshidi, A. Ahmad, and C. Pahl. 2014. Autonomic resource provisioning for cloud-based software. In Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’14). Google Scholar
Digital Library
- P. Jamshidi, C. Pahl, S. Chinenyeze, and X. Liu. 2015. Cloud migration patterns: A multi-cloud service architecture perspective. In Proceeings of the Service-Oriented Computing Workshops (ICSOC’14). 6--19.Google Scholar
- P. Jamshidi, A. Sharifloo, C. Pahl, H. Arabnejad, A. Metzger, and G. Estrada. 2016. Fuzzy self-learning controllers for elasticity management in dynamic cloud architectures. In Proceedings of the 2016 12th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA’16). IEEE, 70--79.Google Scholar
- S. Kounev. 2011. Self-aware software and systems engineering: A vision and research roadmap. GI Softwaretech.-Trends 31, 4 (2011), 21--25.Google Scholar
- S. Kounev, F. Brosig, and N. Huber. 2014. The Descartes Modeling Language. Department of Comp Science, University of Wuerzburg, Tech. Rep (2014).Google Scholar
- N. Kratzke and R. Peinl. 2016. ClouNS - A cloud-native application reference model for enterprise architects. In Proceedings of the International Enterprise Distributed Object Computing Workshop (EDOCW’16). 1--10.Google Scholar
- P. B. Kruchten. 1995. The 4+1 view model of architecture. IEEE Softw. 12, 6 (1995), 42--50. Google Scholar
Digital Library
- J. Lewis and M. Fowler. 2014. Microservices. Retrieved January 7, 2018 from http://martinfowler.com/articles/microservices.html.Google Scholar
- P. Mell and T. Grance. 2011. The NIST definition of cloud computing. Technical Report SP 800-145. Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology, Gaithersburg, US. Google Scholar
Digital Library
- Microsoft. 2009. Software Architecture and Design. Retrieved January 7, 2018 from https://msdn.microsoft.com/en-us/library/ee658093.aspx.Google Scholar
- S. Newman. 2015. Building Microservices. O’Reilly. Google Scholar
Digital Library
- C. Pahl. 2015. Containerization and the PaaS cloud. IEEE Cloud Comput. 2, 3 (2015), 24--31.Google Scholar
Cross Ref
- C. Pahl, A. Brogi, J. Soldani, and P. Jamshidi. 2017a. Cloud container technologies: A state-of-the-art review. IEEE Transactions on Cloud Computing. Published online at https://ieeexplore.ieee.org/document/7922500/.Google Scholar
Cross Ref
- C. Pahl and P. Jamshidi. 2015. Software architecture for the cloud - A roadmap towards control-theoretic, model-based cloud architecture. In Proceedings of the European Conference on Software Architecture (ECSA’15).Google Scholar
- C. Pahl, P. Jamshidi, and D. Weyns. 2017b. Cloud architecture continuity: Change models and change rules for sustainable cloud software architectures. J. Softw.: Evol. Process 29, 2 (2017).Google Scholar
Cross Ref
- C. Pahl and B. Lee. 2015. Containers and clusters for edge cloud architectures - A technology review. In Proceedings of the 3rd International Conference on Future Internet of Things and Cloud (FiCloud’15). IEEE. Google Scholar
Digital Library
- C. Pautasso, O. Zimmermann, M. Amundsen, J. Lewis, and N. Josuttis. 2017. Microservices in practice, part 1: Reality check and service design. IEEE Softw. 34, 1 (2017), 91--98. Google Scholar
Digital Library
- R. Perrey and M. Lycett. 2003. Service-oriented architecture. In Proceedings of the Symposium on Applications and the Internet Workshops 2003. 116--119. Google Scholar
Digital Library
- P. Sawyer, N. Bencomo, J. Whittle, E. Letier, and A. Finkelstein. 2010. Requirements-aware systems: A research agenda for re for self-adaptive systems. In Proceedings 18th IEEE International Requirements Engineering Conference (RE). 95–103. Google Scholar
Digital Library
- T. Stahl, M. Voelter, and K. Czarnecki. 2006. Model-driven Software Development: Technology, Engineering, Management. Wiley 8 Sons. Google Scholar
Digital Library
- V. Stantchev and C. Schräpfer. 2009. Negotiating and enforcing QoS and SLAs in grid and cloud computing. In Proceedings of the Advances in Grid and Pervasive Computing. Vol. 5529. 25--35. Google Scholar
Digital Library
- A. Van Deursen, P. Klint, and J. Visser. 2000. Domain-specific languages: An annotated bibliography. Sigplan Not. 35, 6 (2000), 26--36. Google Scholar
Digital Library
- A. Van Hoorn, M. Rohr, A. Gul, and W. Hasselbring. 2009. An adaptation framework enabling resource-efficient operation of software systems. In Proceedings of the Warm Up Workshop for the ACM/IEEE International Conference on Software Engineering (ICSE’10). Google Scholar
Digital Library
- J. Varia. 2011. Architecting for the cloud: Best practices. Technical Report. Amazon Web Services. https://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf.Google Scholar
- T. Vogel and H. Giese. 2014. Model-driven engineering of self-adaptive software with EUREMA. ACM Trans. Auton. Adapt. Syst. 8, 4 (2014), 18. Google Scholar
Digital Library
- S. Wätzoldt and H. Giese. 2014. Classifying distributed self-* Systems based on runtime models and their coupling. In Proceedings of the 9th Workshop on [email protected]. 11–20. http://ceur-ws.org/Vol-1270/.Google Scholar
- R. Wieringa and A. Moralı. 2012. Technical action research as a validation method in information systems design science. In Proceedings of the International Conference on Design Science Research in Information Systems. 220--238. Google Scholar
Digital Library
- H. Xiong, F. Fowley, and C. Pahl. 2015. An architecture pattern for multi-cloud high availability and disaster recovery. In Proceedings of the Workshop on Federated Cloud Networking (FedCloudNet’15).Google Scholar
- L. Zhang, Y. Zhang, P. Jamshidi, L. Xu, and C. Pahl. 2014. Workload patterns for quality-driven dynamic cloud service configuration and auto-scaling. In Proceedings of the IEEE/ACM International Conference on Utility and Cloud Computing (UCC’14). 156--165. Google Scholar
Digital Library
- O. Zimmermann. 2009. An Architectural Decision Modeling Framework for Service Oriented Architecture Design. Ph.D. Dissertation. Universität Stuttgart.Google Scholar
- O. Zimmermann. 2016. Mircroservices tenets: Agile approach to service development and deployment. In Proceedings of the Symposium/Summer School on Service-Oriented Computing.Google Scholar
Index Terms
Architectural Principles for Cloud Software
Recommendations
Architectural Requirements for Cloud Computing Systems: An Enterprise Cloud Approach
Cloud Computing is a model of service delivery and access where dynamically scalable and virtualized resources are provided as a service over the Internet. This model creates a new horizon of opportunity for enterprises. It introduces new operating and ...
Architectural Strategies for Green Cloud Computing: Environments, Infrastructure and Resources
Opportunities for improving IT efficiency and performance through centralization of resources have increased dramatically in the past few years with the maturation of technologies, such as service oriented architecture, virtualization, grid computing, ...
Software architecture definition for on-demand cloud provisioning
Cloud computing is a promising paradigm for the provisioning of IT services. Cloud computing infrastructures, such as those offered by the RESERVOIR project, aim to facilitate the deployment, management and execution of services across multiple physical ...






Comments