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 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)