Skip to content

Getting started: RADON Methodology for developing microservices and serverless applications

Notifications You must be signed in to change notification settings

radon-h2020/radon-methodology

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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!

Introduction to RADON

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.

Table of Contents

RADON Architecture

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.

#radon-architecture

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 Actors and Stakeholders

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

RADON Methodology

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.

#radon-methodology

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.

RADON Tools

Integrated Development Environment

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

Defect Prediction Tool

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

Decomposition Tool

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

Constraint Definition Language and Verification Tool

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

Continuous Testing Tool

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

Orchestrator

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

Data Pipeline Plugins

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

Template Library

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

Graphical Modeling Tool (Eclipse Winery)

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

Delivery Toolchain

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

Function Hub

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

About

Getting started: RADON Methodology for developing microservices and serverless applications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published