Opendata, web and dolomites

Report

Teaser, summary, work performed and final results

Periodic Reporting for period 1 - RADON (Rational decomposition and orchestration for serverless computing)

Teaser

Serverless computing has rapidly grown in popularity in recent years, establishing itself as a novel paradigm to develop cloud-native applications that do not require end-users, or large parts of the application backend itself, to explicitly interact with a server. This can be...

Summary

Serverless computing has rapidly grown in popularity in recent years, establishing itself as a novel paradigm to develop cloud-native applications that do not require end-users, or large parts of the application backend itself, to explicitly interact with a server. This can be achieved, for example, through event-driven approaches, where the application logic is automatically run through elastic functions, hosted in transient cloud containers, that are invoked only in response to specific events, a technique commonly referred to as Function-as-a-Service (FaaS). Relying on serverless FaaS yields numerous advantages for software vendors and end users, in terms of ease of use (e.g., no explicit interaction with a server), cost reduction (e.g., no idle servers within a VM), automated management (e.g., fast “NoOps”-style prototyping, function-level auto-scaling).

Some elements of serverless computing were already present in fully-automated cloud Platform-as-a-Service (PaaS) offerings such as Google AppEngine. However, the emergence of commercial offerings such as AWS Lambda, Microsoft Functions, and Google CloudFunctions, have given momentum to the approach. The strong commercial growth of serverless FaaS however also carries risks for adopters, in particular related to the classic vendor lock-in issue, which at present is very much a reality due to the large prominence in this setting of the aforementioned cloud operators. Another important aspect to keep in mind is that, in a European setting, most companies and public administration have limited exposure to advanced cloud technologies, calling for simple software development methodologies to enable these stakeholders to also share the benefits of technological advancements, and the implied cost reduction, brought by serverless FaaS. Last, but not least, there is a need for spreading out the FaaS concepts in the research and technical development community in Europe, to ensure capacity in adopting such architecture, re-engineer existing applications, and release timely research that can support the broader community efforts.

In the above context, RADON aims at developing a DevOps framework to address the aforementioned challenges posed by serverless FaaS, in particular seeing model-based methods as a natural panacea to address vendor lock-in problems. Our primary goal is to create a unified model-based approach to ease the definition of novel FaaS-based cloud applications. The approach is graphical in nature, allowing software developers to specify the application diagrammatically and, still graphically, reuse functions, microservices, and other cloud platform components, as building blocks in complex software systems. In parallel to this, the framework will offer an IDE to code low-level application code within those functions and microservices, and an ecosystem of tools to ensure continuous delivery to the cloud, as well as verification, testing and enhancement for the technical architecture and its qualities (e.g., performance, security, correctness). In concrete terms, RADON end users will be able to adopt modern, integrated DevOps frameworks, which allow software vendors to develop and deliver FaaS-based applications. Industrial use cases in the areas of travel technology (ATC), ambient assisted living (ENG), and managed DevOps (PRQ) will validate the approach in concrete vertical domain, presenting technical challenges that are common to a spectrum of industries in Europe.

The consortium has decided to release at conclusion of the YR1 prototyping activities the initial open-source versions of the code for the tools available at this stage: https://github.com/radon-h2020.

Work performed

In the first year, and especially in the initial part of the period, the consortium has developed the core concepts of the integrated framework, elicited its requirements, identified the core technical assets, specified the integration patterns and designed the interfaces between tools. We have also enumerated the supported technologies to ensure that the approach is focussed, and also gained a better understanding of the baselines arising from other EU projects that are helping in the development of the RADON solution.

A core qualitative decision has been to centre our attention on the development of complex cloud-native applications that mesh serverless functions, microservices, and complex data pipelines. This is opposed, for example, to tailoring the solution for prototyping lightweight commercial demonstrators or to re-engineer existing software, which however are also retained as secondary use cases for the framework. As RADON is one of the very first EU projects dealing with serverless FaaS, we had relatively few terms of comparison. As such, we have used a bottom-up definition approach that involved the analysis of demo (toy) applications that encompass all the elements of the framework, namely functions, data pipelines, and microservices, allowing us to understand typical problems, methodological workflows and lifecycles that arise in applied industrial settings. Proof-of-concept prototypes for the core tools have been developed by end of year 1, allowing the consortium to enter on-time in the next phase where the integration will lead to initial public “alpha release” of the integrated framework.

Final results

In year 1 both TOSCA and Winery have been extended to allow serverless FaaS modelling, graphically and in terms of models, and to annotate the model with constraints, through the RADON constraint definition language (CDL). Compatibility with the latest TOSCA 1.3 blueprint generation, a basic need for broader relevance, was also obtained. The definition of a broad range of novel TOSCA types that capture new platform-specific nodes (e.g., AWS Lambda function). The project also focused on design and initial implementation of an ecosystem of runtime services and methods to ensure that RADON applications defined with the modelling environment are concretely executable, such as automatically deployable monitoring, an automated orchestration engine supporting FaaS (xOpera), CI/CD to connect and design runtime environments and automate new releases; and a function hub to store and reuse functions as basic building blocks for RADON applications; methodological and implementation of technological capabilities to deliver data pipelines.

In year 1, the consortium also defined proof-of-concept implementations for a collection of tools and methods that help in ensuring that key software qualities in the FaaS development process. The problem has been tackled from three directions: 1) Verification of the CDL constraints by means of formal methods and logic programming. 2) Initial work on our decomposition tool defining features related to resource allocation and optimization, architectural evaluation in the presence of microservices and FaaS nodes. 3) We have also carried out initial methodological and implementation work on the continuous test tool, for example by introducing a novel form of testing, unique to microservices-based architecture, to selectively analysis the performance of particular microservices in a complex architecture, and developing the corresponding methodological and architectural workflows

Website & more info

More info: http://radon-h2020.eu/.