skip to main content
research-article

Architectural Principles for Cloud Software

Authors Info & Claims
Published:02 February 2018Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. N. Antonopoulos and L. Gillam. 2010. Cloud Computing: Principles, Systems and Applications. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. Baresi and C. Ghezzi. 2013. A journey through SMScom: Self-managing situational computing. Comput. Sci.-Res. Dev. 28, 4 (2013), 267--277. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. T. Erl. 2005. Service-oriented Architecture: Concepts, Technology, and Design. Pearson Education. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. Esfahani and S. Malek. 2013. Uncertainty in self-adaptive software systems. In Software Engineering for Self-Adaptive Systems II. Springer, 214--238.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. C. Fehling, F. Leymann, R. Retter, W. Schupeck, and P. Arbitter. 2014. Cloud computing patterns. Springer-Verlag Wien.Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Garlan and M. Shaw. 1994. An Introduction to Software Architecture. Vol. 1. World Scientific.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarCross RefCross Ref
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle Scholar
  27. 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 ScholarGoogle Scholar
  28. S. Kounev. 2011. Self-aware software and systems engineering: A vision and research roadmap. GI Softwaretech.-Trends 31, 4 (2011), 21--25.Google ScholarGoogle Scholar
  29. S. Kounev, F. Brosig, and N. Huber. 2014. The Descartes Modeling Language. Department of Comp Science, University of Wuerzburg, Tech. Rep (2014).Google ScholarGoogle Scholar
  30. 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 ScholarGoogle Scholar
  31. P. B. Kruchten. 1995. The 4+1 view model of architecture. IEEE Softw. 12, 6 (1995), 42--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. J. Lewis and M. Fowler. 2014. Microservices. Retrieved January 7, 2018 from http://martinfowler.com/articles/microservices.html.Google ScholarGoogle Scholar
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. Microsoft. 2009. Software Architecture and Design. Retrieved January 7, 2018 from https://msdn.microsoft.com/en-us/library/ee658093.aspx.Google ScholarGoogle Scholar
  35. S. Newman. 2015. Building Microservices. O’Reilly. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. C. Pahl. 2015. Containerization and the PaaS cloud. IEEE Cloud Comput. 2, 3 (2015), 24--31.Google ScholarGoogle ScholarCross RefCross Ref
  37. 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 ScholarGoogle ScholarCross RefCross Ref
  38. 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 ScholarGoogle Scholar
  39. 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 ScholarGoogle ScholarCross RefCross Ref
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  42. R. Perrey and M. Lycett. 2003. Service-oriented architecture. In Proceedings of the Symposium on Applications and the Internet Workshops 2003. 116--119. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. T. Stahl, M. Voelter, and K. Czarnecki. 2006. Model-driven Software Development: Technology, Engineering, Management. Wiley 8 Sons. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. A. Van Deursen, P. Klint, and J. Visser. 2000. Domain-specific languages: An annotated bibliography. Sigplan Not. 35, 6 (2000), 26--36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  48. J. Varia. 2011. Architecting for the cloud: Best practices. Technical Report. Amazon Web Services. https://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf.Google ScholarGoogle Scholar
  49. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  50. 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 ScholarGoogle Scholar
  51. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  52. 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 ScholarGoogle Scholar
  53. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  54. O. Zimmermann. 2009. An Architectural Decision Modeling Framework for Service Oriented Architecture Design. Ph.D. Dissertation. Universität Stuttgart.Google ScholarGoogle Scholar
  55. O. Zimmermann. 2016. Mircroservices tenets: Agile approach to service development and deployment. In Proceedings of the Symposium/Summer School on Service-Oriented Computing.Google ScholarGoogle Scholar

Index Terms

  1. Architectural Principles for Cloud Software

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!