This repository acts as a knowledge base related to the RADON methodology, containing an overview and links to the RADON architecture, tools, actors and methodology.
Please check out the RADON YouTube channel for videos!
If you are new to the framework, the RADON booklet offers an holistic summary of the project results in its impacts in the domain of its use cases.
The RADON framework provides a set of components that realize a set of tools, modules and services covering both the design and runtime phases of microservices and serverless-oriented application development and deployment.
The 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. This 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.4 – Architecture & Integration Plan II
RADON delivers a DevOps-inspired methodology. On that basis, 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 actors are as follows:
- Software Designer: this actor is responsible of the application architecture and data lifecycle design.
- Software Developer (Dev): responsible for business logic coding and testing.
- Operations Engineer (Ops): responsible for delivery on the infrastructure and infrastructure testing.
- QoS Engineer: responsibility for ensuring performance/reliability/security/privacy/access control properties of the application,
- Release Manager: team leader that authorizes major changes and their release to production.
For more information on RADON actors, please refer to the deliverable document D2.2 - Final Requirements
The RADON DevOps methodology consolidates the user workflow for using RADON tools and the DevOps paradigm for software delivery and evolution. In the context of a DevOps lifecycle, we have defined several workflows as abstractions to organize and present the possible interactions of the different tools within the RADON framework and with the identified actors. DevOps actors as described above are fundamental to reason about the existing development and operations roles and re-assign them for the continuous delivery of software in the context of RADON.
The table below depicts the RADON methodology, which is composed of six key RADON workflows triggered by the Application Development Entry-point. The RADON workflows methods impose structure on specific software development tasks with the goal of making the activity (more) disciplined, systematic, repeatable and predictable. The RADON tools have thus been designed for the explicit support of the RADON workflows, maximizing the level of automated support.
RADON workflows | Roles | Tools |
---|---|---|
The Entry-point: Application Development | Software Developer Release Manager |
Integrated Development Environment Graphical Modeling Tool Data Pipeline Plugin Function Hub Template Library Orchestrator |
Verification Workflow | Software Designer QoS Engineer |
Verification Tool Graphical Modeling Tool Integrated Development Environment |
Decomposition Workflow | Software Designer Ops Engineer QoS Engineer |
Decomposition Tool Graphical Modeling Tool Integrated Development Environment Monitoring Tool |
Defect Prediction Workflow | Software Developer Ops Engineer |
Defect Prediction Tool Integrated Development Environment |
Continuous Testing Workflow | Software Developer Release Manager QoS Engineer |
Continuous Testing Tool Integrated Development Environment Orchestrator Monitoring Tool |
Monitoring Workflow | Ops Engineer QoS Engineer |
Monitoring Tool Integrated Development Environment Graphical Modeling Tool Orchestrator |
CI/CD Workflow | Ops Engineer Release Manager |
CI/CD Plugin Integrated Development Environment |
Full details about the methodology can be found in D3.1 – RADON methodology.
Items | Contents |
---|---|
Short Description | The RADON IDE is based on Eclipse Che, and provides standard functionalities to support development activities (e.g. debugging functionalities and error checking capabilities) along with specific functionalities to achieve the RADON needs. It provides a shared space where different teams can access the RADON artifacts according to their authorizations and an access point for the interactions with the tools involved in the RADON architecture. |
Documentation | D2.3 – Architecture & Integration Plan I D2.4 - Architecture & Integration Plan II D2.6 - RADON Integrated Framework I D2.7 - RADON Integrated Framework II |
Stand-Alone Tutorial | https://radon-ide.readthedocs.io/en/latest/ |
Video | https://www.youtube.com/watch?v=__EumXU9ZNE |
Repository | |
Latest DevFile | https://raw.githubusercontent.com/radon-h2020/radon-ide/master/devfiles/radon/latest/devfile.yaml |
Licence | Eclipse Public License, Version 1.0 (https://www.eclipse.org/legal/epl-v10.html) |
Contact |
|
Items | Contents |
---|---|
Short Description | The Defect Prediction tool focuses on Infrastructure-as-Code (IaC) correctness. Recall that IaC is machine-readable code that manages and provisions infrastructure -- e.g., TOSCA or Ansible YAML files. The defect prediction tool helps RADON users to find suspicious defective Infrastructure-as-Code (IaC) scripts enabling DevOps operators to focus on such critical scripts before deployment and during Quality Assurance activities. |
Documentation | D3.6 – Defect Prediction Tool I D3.7 – Defect Prediction Tool II |
Stand-Alone Tutorial | https://radon-h2020.github.io/radon-defect-prediction-cli/ |
Video | |
Repositories | |
Docs | |
Licence | Apache License, Version 2.0 |
Contact |
|
Items | Contents |
---|---|
Short Description | The decomposition tool is present to help RADON users in finding the optimal decomposition solution for an application based on the microservices architectural style and the serverless FaaS paradigm. It supports three typical usage scenarios: (1) architecture decomposition, (2) deployment optimization, (3) accuracy enhancement, (4) assignment/consolidation. |
Documentation | D3.2 – Decomposition Tool I D3.3 – Decomposition Tool II |
Stand-Alone Tutorial | https://decomposition-tool.readthedocs.io/ |
Video | https://youtu.be/ZHD0t8HK7K0 |
Repository | |
Licence | Imperial College's Intellectual Property |
Contact |
Items | Contents |
---|---|
Short Description | The Verification Tool (VT) provides the functionality for verifying that the current RADON model conforms to the CDL specification defined by the CDL tool. The VT will be available as a plugin in the IDE, and will be supported by a “VT backend”, which will run in a container. In cases where the current RADON model does not conform to the CDL specification, the VT can be used to suggest corrections to the model. If the model does conform, the VT can be used to suggest improvements to it with respect to the preferences expressed as soft constraints in the CDL specification. The VT can also be used to find an optimal (preferred) completion of a partial RADON model, with respect to the CDL specification, and to learn new constraints for the CDL. |
Documentation | D4.1 - Constraint Definition Language I D4.2 - Constraint Definition Language II |
Stand-Alone Tutorial | https://radon-vt-documentation.readthedocs.io/ |
Video | https://youtu.be/pJWetOzY2Zc |
Repository | https://github.com/radon-h2020/radon-verification-tool |
Licence | Please fill in this form to request a license: https://imperial.eu.qualtrics.com/jfe/form/SV_1HthWM3xILQM6ih |
Contact |
|
Items | Contents |
---|---|
Short Description | The Continuous Testing Tool (CTT) provides the functionality for defining, generating, executing, and refining continuous tests of application functions, data pipelines and microservices, as well as for reporting test results. While targeting to provide a general framework for continuous quality testing in RADON, a particular focus of CTT is on testing workload-related quality attributes such as performance, elasticity, and resource/cost efficiency. |
Documentation | D3.4 – Continuous Testing Tool I D3.5 – Continuous Testing Tool II |
Stand-Alone Tutorial | https://continuous-testing-tool.readthedocs.io/ |
Video | |
Source code |
|
Licence | Apache License, Version 2.0 |
Contact |
|
Items | Contents |
---|---|
Short Description | The orchestrator deploys the application into the runtime environment, enforcing the state described by application blueprint (CSAR) onto the targeted provider(s). The common operations are deployment, scaling and cleanup or un-deploy and are executed on different target environment as staging, development and production. |
Documentation | User Guide and developers notes D5.1 - Runtime Environment I D5.2 - Runtime environment II |
Stand-Alone Tutorial | https://xlab-si.github.io/xopera-docs/examples.html |
Video | |
Source code and executables |
|
Licence |
|
Contact |
|
Items | Contents |
---|---|
Short Description | Data Pipeline plugin extends the orchestrator with the capability to control the life cycle of data pipelines, solving some of the technical issues related to transfering and securing data across heterogeneous cloud environments. For example to ensure that data encryption is turned on when data pipeline tasks are deployed across multiple clouds. |
Documentation | User Guide and Documentation D5.5: Data Pipeline Orchestration I D5.6: Data Pipeline Orchestration II |
Stand-Alone Tutorial | |
Video | |
Repository |
|
Licence | Apache License, Version 2.0 |
Contact |
|
Items | Contents |
---|---|
Short Description | The template library is a repository of application runtime management definitions including the blueprints, high-level system abstractions, application abstractions (including data pipeline components) and TOSCA language extensions. One of the specific parts of Template Library is the FaaS abstraction layer that holds the definitions required to deploy a particular application component to different cloud providers. |
Documentation | User Guide D5.3 - Technology Library I D5.4 - Technology Library II |
Stand-Alone Tutorial | https://template-library-radon.xlab.si/docs/gui.html |
Video | |
Access and tools |
|
Licence |
|
Contact |
|
Items | Contents |
---|---|
Short Description | The Graphical Modeling Tool (GMT) is developed based on Eclipse Winery, which is a web-based environment to graphically model TOSCA-based application topologies. It includes (i) a component to manage TOSCA types and templates, (ii) a Topology Modeler that enables to graphically compose application topologies and specify configuration properties, and (iii) a file-based backend to store, import, and export TOSCA entities. |
Documentation | User Guide D4.3 - RADON Models I D4.4 - RADON Models II D4.5 - Graphical Modelling Tool I D4.6 - Graphical Modelling Tool II |
Stand-Alone Tutorial | Getting Started |
Video | Link |
Repository | https://github.com/radon-h2020/winery (fork) / https://github.com/eclipse/winery |
Licence | Dual licensed under the Apache License 2.0 and Eclipse Public License 2.0. |
Contact |
|
Items | Contents |
---|---|
Short Description | The delivery toolchain is a set of tools configured at one place with one goal - to deliver the application to the production site. To achieve the final step, delivery, with a success, a set of previous steps needs to be successfully accomplished. Delivery toolchain provides the single point of configuration management including CI/CD, monitoring and orchestration. |
Documentation | D5.1 - Runtime Environment I D5.2 - Runtime Environment II |
Stand-Alone Tutorial | https://radon-h2020.github.io/radon-delivery-toolchain/ |
Video | https://www.youtube.com/watch?v=rtMBcvVQdgI |
Repository | https://github.com/radon-h2020/radon-delivery-toolchain |
Licence | Apache License, Version 2.0 |
Contact |
|
Items | Contents |
---|---|
Short Description | The Function Hub is a services for uploading, storing and sharing reusable FaaS. In the context of the RADON framework, it is used when creating FaaS objects in GMT. The function will be fetched when a .csar file is generated. |
Documentation | D5.1 - Runtime Environment I D5.2 - Runtime Environment II |
Stand-Alone Tutorial | https://functionhub-cli.readthedocs.io |
Video | Comming |
Repository | https://github.com/radon-h2020/radon-functionhub-client |
Licence | CC BY-NC-ND 3.0 |
Contact |
|