In our latest published Deliverable D2.1 ‘Initial requirements and baselines’, we presented the guiding concepts behind the RADON framework, the key methods and tools that will be made available to the RADON end users, through a toy example case of a “thumbnail generation” serverless application. The deliverable also presents the requirements and usage scenarios for the RADON tools that will comprise the framework and for the 3 industrial use case scenarios that will be developed to validate them.
Today, serverless FaaS is seen by many as a way to quickly prototype a cloud-based application, e.g. for customer demonstration purposes, without having to deal with complex infrastructure management. In some cases, application demos can be built from reusable services in a matter of hours, allowing a skilled programmer or consultant to experiment with novel software services in a rapid manner.
As serverless functions are short-lived and are automatically deallocated by the provider, FaaS also reduces the risk of incurring unwarranted cloud costs, which is a significant plus in start-ups and small companies. Businesses may benefit from FaaS by avoiding the management of cloud resources, moving expenses from CAPEX to OPEX, lowering development and lead time to production. The microservice architecture used in conjunction with FaaS allows fine-grained autoscaling capabilities and significant flexibility and responsiveness compared with the monolithic structures.
Beside prototyping, serverless computing equips developers with a lightweight and powerful toolbox for developing small ad-hoc or large application ecosystems. Currently, serverless is increasingly important for real-time data analytics and connecting IoT devices to the cloud backend.
To be more precise in RADON, the FaaS use cases are found in, but not limited to, the following areas mentioned
- Real-time data analytics
- Real-time file processing
- Support for batch processing, small or embarrassingly parallel processes
- IoT, e.g. using FaaS to connect devices with end-users through cloud
- Fintech, financial data analytics as data processing of transactions for insider trading or managing accounts and trading actions
- Automatic AWS account creation
- Big Data platforms as MapReduce, or similar data pre/post processing in data flows
- Serving static content/websites
- Extract, transform, load data
- Function used as a cron job
Even though FaaS is an effective tool, it is not yet appropriate for data rich/intensive operations, mainly because of high I/O latency that is made by an object store used for communication between the functions. Other downsides are stateless operation and frequently poor networking/architectural/performance examples, as the latter is still being investigated in the context of FaaS. The latencies of “cold starts” could be unpredictable and too slow, for example upon first invocation after deployment of an application with tens or hundreds of serverless functions. For some models as batch processing, functions could also be inappropriate, which mostly depends on the batch flow rates. FaaS users are also limited by vendor lock-in, uncertain security and time duration limits of a particular function.
The downsides of FaaS are not a problem of technology but frequently of the misuse. However, this new computing paradigm is very appealing and popular in the areas listed above. This highlights the everyday risks that new FaaS adopters may face upon deciding when and how to use FaaS. RADON will offer an environment to lower learning curves and to offer quality assurance tools that will help users to embrace FaaS in a rapid manner, thanks to DevOps automation, but also with methodological guidance to do this effectively.