Abstract
Various cloud service models with different management requirements can be used for hosting a certain application component. For instance, more consumer-managed serverful options can be preferred if a component has special requirements related to deployment stack or scaling configuration management, whereas more provider-managed serverless alternatives can be used if no customization is needed. However, finding a suitable hosting variant based on the deployment stack or scaling configuration management requirements is cumbersome without clear guidelines. In our previous work, we introduced a set of Component Hosting Patterns that represent different management trade-offs and can help finding suitable hosting options for a component to be deployed. However, selecting the most appropriate pattern and exploring which concrete deployment alternatives can be used to technically realize the selected pattern was up to developers, thus, requiring considerable expertise in provider-specific offerings. Therefore, in this work, we (i) introduce four new complementary patterns representing abstract deployment stack customization and scaling configuration management decisions, which we (ii) combine with our Component Hosting Patterns in a new pattern language. Moreover, we (iii) introduce a method that supports application developers using the introduced pattern language as well as refining selected patterns to concrete technical deployment stacks. Finally, we (iv) show how the TOSCA modeling tool Eclipse Winery can be used to support our new method.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Alexander, C.: A Pattern Language: Towns, Buildings, Construction. Oxford University Press, New York (1977)
Amazon Web Services: AWS Solutions Library (2022). https://aws.amazon.com/solutions/browse-all
Bibartiu, O., et al.: Clams: a cloud application modeling solution. In: Proceedings of the 2021 IEEE International Conference on Services Computing (SCC 2021), pp. 1–10 (2021)
Burns, B., Oppenheimer, D.: Design patterns for container-based distributed systems. In: 8th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 2016) (2016)
Buschmann, F., et al.: Pattern-Oriented Software Architecture: On Patterns and Pattern Language, vol. 5. Wiley, New York (2007)
Coplien, J.O.: Software patterns (1996)
Councill, B., Heineman, G.T.: Definition of a software component and its elements. In: Component-Based Software Engineering: Putting the Pieces Together, pp. 5–19. Addison-Wesley, San Francisco (2001)
Davis, C.: Cloud Native Patterns: Designing Change-Tolerant Software. Manning Publishing, New York (2019)
Endres, C., et al.: Declarative vs. imperative: two modeling patterns for the automated deployment of applications. In: Proceedings of the 9th International Conference on Pervasive Patterns and Applications (PATTERNS 2017), pp. 22–27. Xpert Publishing Services (2017)
Erl, T., et al.: Cloud Computing Design Patterns, 1st edn. Prentice Hall Press, Upper Saddle River (2015)
Falkenthal, M., et al.: Leveraging pattern application via pattern refinement. In: Proceedings of the International Conference on Pursuit of Pattern Languages for Societal Change (PURPLSOC 2015), pp. 38–61 (2015)
Falkenthal, M., et al.: The Nature of Pattern Languages. In: Pursuit of Pattern Languages for Societal Change, pp. 130–150. Tredition, October 2018
Fehling, C., Barzen, J., Breitenbücher, U., Leymann, F.: A Process for pattern identification, authoring, and application. In: Proceedings of the 19th European Conference on Pattern Languages of Programs (EuroPLoP 2014). ACM, January 2014
Fehling, C., et al.: Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications. Springer, Vienna, January 2014. https://doi.org/10.1007/978-3-7091-1568-8
Google: Google Cloud products (2022). https://cloud.google.com/products/
Harzenetter, L., et al.: Pattern-based deployment models and their automatic execution. In: 11th IEEE/ACM International Conference on Utility and Cloud Computing (UCC 2018), pp. 41–52. IEEE Computer Society, Dec 2018
Harzenetter, L., et al.: Pattern-based deployment models revisited: automated pattern-driven deployment configuration. In: Proceedings of the Twelfth International Conference on Pervasive Patterns and Applications (PATTERNS 2020), pp. 40–49. Xpert Publishing Services, October 2020
Harzenetter, L., et al.: Automated detection of design patterns in declarative deployment models. In: Proceedings of the 2021 IEEE/ACM 14th International Conference on Utility Cloud Computing (UCC 2021), pp. 36–45. ACM, December 2021
Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley, New York (2004)
Hong, S., et al.: Go serverless: securing cloud via serverless design patterns. In: 10th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 2018) (2018)
IBM: IBM Cloud Solutions (2021). https://www.ibm.com/cloud/solutions
Jamshidi, P., Pahl, C., Chinenyeze, S., Liu, X.: Cloud migration patterns: a multi-cloud service architecture perspective. In: Toumani, F., et al. (eds.) ICSOC 2014. LNCS, vol. 8954, pp. 6–19. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-22885-3_2
Jamshidi, P., et al.: Pattern-based multi-cloud architecture migration. Softw. Pract. Exp. 47(9), 1159–1184 (2017)
Kopp, O., Binz, T., Breitenbücher, U., Leymann, F.: Winery – a modeling tool for tosca-based cloud applications. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds.) ICSOC 2013. LNCS, vol. 8274, pp. 700–704. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-45005-1_64
Kounev, S., et al.: Toward a Definition for Serverless Computing. In: Serverless Computing (Dagstuhl Seminar 21201), vol. 11, Chap. 5.1, pp. 56–59. Schloss Dagstuhl - Leibniz-Zentrum für Informatik (2021)
Lau, K.K., Wang, Z.: Software component models. IEEE Trans. Softw. Eng. 33(10), 709–724 (2007)
Leymann, F., Barzen, J.: Pattern Atlas. Next-Generation Digital Services. A Retrospective and Roadmap for Service Computing of the Future, pp. 67–76 (2021)
Messerschmitt, D.G.: Rethinking components: from hardware and software to systems. Proc. IEEE 95(7), 1473–1496 (2007)
Microsoft: Directory of Azure Services (2022). https://azure.microsoft.com/en-us/services/
Morris, K.: Infrastructure as Code. O’Reilly Media, Sebastopol (2020)
OASIS: Topology and Orchestration Specification for Cloud Applications (TOSCA) Version 2.0. Organization for the Advancement of Structured Information Standards (OASIS) (2020)
Pahl, C., et al.: Architectural principles for cloud software. ACM Trans. Internet Technol. (TOIT) 18(2) (2018)
Richardson, C.: Microservices Patterns. Manning Publications Company, New York (2018)
Taibi, D., et al.: Patterns for serverless functions (function-as-a-service): a multivocal literature review. In: CLOSER, pp. 181–192 (2020)
Wellhausen, T., Fiesser, A.: How to write a pattern? A rough guide for first-time pattern authors. In: Proceedings of the 16th European Conference on Pattern Languages of Programs, pp. 1–9 (2011)
Yussupov, V., et al.: Facing the unplanned migration of serverless applications: a study on portability problems, solutions, and dead ends. In: Proceedings of the 12th IEEE/ACM International Conference on Utility and Cloud Computing (UCC), pp. 273–283. ACM (2019)
Yussupov, V., et al.: From serverful to serverless: a spectrum of patterns for hosting application components. In: Proceedings of the 11th International Conference on Cloud Computing and Services Science (CLOSER 2021), pp. 268–279. SciTePress, May 2021
Zambrano, B.: Serverless Design Patterns and Best Practices: Build, Secure, and Deploy Enterprise Ready Serverless Applications with AWS to Improve Developer Productivity. Packt Publishing, Birmingham (2018)
Acknowledgments
This work was partially funded by the German Research Foundation (DFG) project IAC2 (314720630).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Yussupov, V., Breitenbücher, U., Brogi, A., Harzenetter, L., Leymann, F., Soldani, J. (2022). Serverless or Serverful? A Pattern-Based Approach for Exploring Hosting Alternatives. In: Barzen, J., Leymann, F., Dustdar, S. (eds) Service-Oriented Computing. SummerSOC 2022. Communications in Computer and Information Science, vol 1603. Springer, Cham. https://doi.org/10.1007/978-3-031-18304-1_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-18304-1_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-18303-4
Online ISBN: 978-3-031-18304-1
eBook Packages: Computer ScienceComputer Science (R0)