Periodic Reporting for period 2 - RADON (Rational decomposition and orchestration for serverless computing)
Période du rapport: 2020-01-01 au 2021-06-30
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 Cloud Functions, has 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 created 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 result is the creation of 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 offers 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 adopts 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) validated the approach in concrete vertical domain, presenting technical challenges that are common to a spectrum of industries in Europe.
More information about the RADON framework and its tools can be found at: https://github.com/radon-h2020/radon-methodology/(s’ouvre dans une nouvelle fenêtre)
The attached Architecture Diagram depicts the connections among the RADON components. The design-time components interact with each other and with the runtime components in order to design, prototype, deploy and test applications built on serverless FaaS. Such interaction(s) are defined by the RADON Workflows in the context of the RADON methodology. In this context, a particular role is played by the RADON IDE. This component is be based on Eclipse Che and provides a multi-user development environment to access the RADON artifacts. As depicted in the Architecture Diagram, the RADON IDE interacts also with an important component called the Template Library. These components offers access to reusable base types, abstractions, and TOSCA extensions and make them available to the RADON tools, that require them to model a RADON application. Moreover, the RADON IDE acts as the front-end of the RADON methodology, by enabling users to invoke RADON tools supporting both the design and runtime phases of application development. For more information on the RADON Architecture, please refer to the deliverable document D2.3 – Architecture & Integration Plan I
RADON offers on top of the architecture a full-fledged DevOps-inspired methodology. With it, RADON proposes to identify a few reference DevOps actors. A RADON actor defines a role -- not a single human or software -- therefore the same person can potentially act as multiple RADON actors and the same role could be split across multiple actors. The RADON DevOps methodology consolidates the user workflow for using RADON tools and the DevOps paradigm for software delivery and evolution.
The main tool repositories of the final solution are linked at the Github landing page: https://github.com/radon-h2020/radon-methodology(s’ouvre dans une nouvelle fenêtre)
Getting started documentation is at our Read-the-Docs (RTD) documents: https://radon-ide.readthedocs.io/en/latest/(s’ouvre dans une nouvelle fenêtre)
A professional video that summarizes the integrated solution is available on YouTube: https://youtu.be/i4drw3RkYoI(s’ouvre dans une nouvelle fenêtre)
As such, the RADON key business value proposition is to provide a DevOps framework to rapidly develop novel FaaS-based software products without incurring code and data lock-in.