Serverless Parachutes: Preparing Chosen Functionalities for Exceptional Workloads

Function-as-a-Service (FaaS) is an emerging cloud service model that enables composing applications using arbitrary, small, and event-driven code snippets managed by cloud providers and that can be scaled to zero. The scalability properties of FaaS look attractive for handling rare or unexpected high loads that affect only particular functionalities of the application. However, deciding on the component granularity upfront or reengineering the architecture of an entire application for rare workloads is often a very difficult challenge or even infeasible. In this work, we introduce a method that prepares annotated functionalities for handling rare workloads by automatically extracting them from the source code of the application and additionally deploying them as FaaS functions, while keeping the original application's functionalities and architecture unchanged. In this way, the benefits of FaaS can be leveraged without the need to reengineer the application only for rare cases. We validate our method by means of a prototype, evaluate its feasibility in a set of experiments, and discuss limitations and future work.

[1]  Sam Newman,et al.  Building microservices - designing fine-grained systems, 1st Edition , 2015 .

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

[3]  Claus Pahl,et al.  Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation , 2017, IEEE Cloud Computing.

[4]  Geoffrey C. Fox,et al.  Status of Serverless Computing and Function-as-a-Service(FaaS) in Industry and Research , 2017, ArXiv.

[5]  Jing Zou,et al.  Research on Early Warning System of Power Network Overloading Under Serverless Architecture , 2018, 2018 2nd IEEE Conference on Energy Internet and Energy System Integration (EI2).

[6]  Josef Spillner,et al.  Java Code Analysis and Transformation into AWS Lambda Functions , 2017, ArXiv.

[7]  P. Mell,et al.  SP 800-145. The NIST Definition of Cloud Computing , 2011 .

[8]  Jorge Marx Gómez,et al.  GranMicro: A Black-Box Based Approach for Optimizing Microservices Based Applications , 2017, EnviroInfo.

[9]  Flavio Esposito,et al.  Speeding up children reunification in disaster scenarios via serverless computing , 2017, WOSC@Middleware.

[10]  Josef Spillner,et al.  Transformation of Python Applications into Function-as-a-Service Deployments , 2017, ArXiv.

[11]  Ben Maurer Fail at scale , 2015, Commun. ACM.

[12]  Wilhelm Hasselbring,et al.  The CloudMIG Approach: Model-Based Migration of Software Systems to Cloud-Optimized Applications , 2012 .

[13]  Bo Sheng,et al.  Secure and Serverless RFID Authentication and Search Protocols , 2008, IEEE Transactions on Wireless Communications.

[14]  Rubby Casallas,et al.  Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud , 2015, 2015 10th Computing Colombian Conference (10CCC).

[15]  Joseph M. Hellerstein,et al.  Serverless Computing: One Step Forward, Two Steps Back , 2018, CIDR.

[16]  Indika Perera,et al.  TheArchitect: A Serverless-Microservices Based High-level Architecture Generation Tool , 2018, 2018 IEEE/ACIS 17th International Conference on Computer and Information Science (ICIS).

[17]  Mira Mezini,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[18]  Adam Eivy,et al.  Be Wary of the Economics of "Serverless" Cloud Computing , 2017, IEEE Cloud Computing.

[19]  Oliver Kopp,et al.  Combining Declarative and Imperative Cloud Application Provisioning Based on TOSCA , 2014, 2014 IEEE International Conference on Cloud Engineering.

[20]  Yury Izrailevsky,et al.  Cloud Reliability , 2018, IEEE Cloud Comput..

[21]  Adnan Noor Mian,et al.  Feasibility of Serverless Cloud Services for Disaster Management Information Systems , 2018, 2018 IEEE 20th International Conference on High Performance Computing and Communications; IEEE 16th International Conference on Smart City; IEEE 4th International Conference on Data Science and Systems (HPCC/SmartCity/DSS).

[22]  Bartosz Balis,et al.  Serverless execution of scientific workflows: Experiments with HyperFlow, AWS Lambda and Google Cloud Functions , 2017, Future Gener. Comput. Syst..

[23]  Oliver Kopp,et al.  Secure Collaborative Development of Cloud Application Deployment Models , .

[24]  R.N. Charette,et al.  Why software fails [software failure] , 2005, IEEE Spectrum.

[25]  Wei Ye,et al.  Distributed network file storage for a serverless (P2P) network , 2003, The 11th IEEE International Conference on Networks, 2003. ICON2003..

[26]  Frank Leymann,et al.  Modeling and Automated Deployment of Serverless Applications Using TOSCA , 2018, 2018 IEEE 11th Conference on Service-Oriented Computing and Applications (SOCA).

[27]  Andrea C. Arpaci-Dusseau,et al.  Serverless Computation with OpenLambda , 2016, HotCloud.

[28]  Luciano Baresi,et al.  Empowering Low-Latency Applications Through a Serverless Edge Computing Architecture , 2017, ESOCC.

[29]  Vishal Dwivedi,et al.  The Role of Service Granularity in a Successful SOA Realization A Case Study , 2008, 2008 IEEE Congress on Services - Part I.

[30]  Piotr Dziurzanski,et al.  Value-based manufacturing optimisation in serverless clouds for industry 4.0 , 2018, GECCO.

[31]  Giovanni Vigna,et al.  Understanding Code Mobility , 1998, IEEE Trans. Software Eng..

[32]  Eli Tilevich,et al.  Cloud refactoring: automated transitioning to cloud-based services , 2013, Automated Software Engineering.

[33]  O. Mustafa Optimizing economics of microservices by planning for granularity level Experience , 2017 .

[34]  Patricia Lago,et al.  Migrating Towards Microservice Architectures: An Industrial Survey , 2018, 2018 IEEE International Conference on Software Architecture (ICSA).

[35]  Shrideep Pallickara,et al.  Serverless Computing: An Investigation of Factors Influencing Microservice Performance , 2018, 2018 IEEE International Conference on Cloud Engineering (IC2E).

[36]  Prashant J. Shenoy,et al.  Cost-Aware Cloud Bursting for Enterprise Applications , 2014, TOIT.

[37]  Jurriaan Hage,et al.  A method engineering based legacy to SOA migration method , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[38]  Oliver Kopp,et al.  Modeling and Automated Execution of Application Deployment Tests , 2018, 2018 IEEE 22nd International Enterprise Distributed Object Computing Conference (EDOC).

[39]  Rajkumar Buyya,et al.  Emergent Failures: Rethinking Cloud Reliability at Scale , 2018, IEEE Cloud Computing.