Skip to main content

SOftware Defined AppLication Infrastructures managemenT and Engineering

Periodic Reporting for period 1 - SODALITE (SOftware Defined AppLication Infrastructures managemenT and Engineering)

Reporting period: 2019-02-01 to 2020-01-31

The back-end for practically any new software application domain, from healthcare to aerospace, is in the data centre. Within such data centres, there are multiple and diverse computational resources ranging from public and private Cloud to HPC systems and exploiting a variety of components, such as accelerators, GPUs, configurable processors, and non-x86 CPUs such as ARMv8.
Managing applications on such composite and heterogeneous systems is hard. It requires different skill sets, depending on the targeted resources, the chosen configuration, and deployment technologies and is nowadays accomplished through the creation of software-defined infrastructures. SODALITE is addressing the gap emerging within such software-defined, application-specific infrastructures. It will provide developers and infrastructure operators the tools that simplify application and infrastructure description and suggest the best deployment scenarios. This will enable DevOps teams to deploy their applications in a simpler and faster way.
The goal of SODALITE is to provide design time support for optimal application deployment configuration and an execution environment for heterogeneous applications that is able to evolve based on the diverse circumstances occurring on heterogeneous, software-defined, high-performance, cloud, HPC and GPUs infrastructures..
Following the simplification of application management, SODALITE focuses on performance of the applications and infrastructure. This will be achieved through static optimisation of the applications (where source code is available) and dynamic optimisation, within the running data centre. The latter will take into account the system state and re-deploy the applications, based on multiple criteria.
SODALITE will produce several tangible results:
- A pattern-based abstraction library that includes an application, infrastructure, and performance abstractions;
- An IDE supported design and programming model for both full-stack applications and infrastructures based on the abstraction library;
- An open-source and state-of-the-art based deployment framework that enables the static optimization of abstracted applications onto specific infrastructure;
- Automated static and run-time optimization and management of applications.
The work within the Consortium has been mostly around research in the area of deployment and configuration on heterogeneous resources and in eliciting the requirements for the SODALITE infrastructure. These have been provided by the use-case providers and technical partners and have been formalized into models and prototypes.
This has led to a better understanding of the overall system, supported by the creation of SODALITE UML cases, which elaborate the workflow and possible actions within the system.
Based on the aforementioned requirements, the initial design of the SODALITE overall architecture, has been crafted. Additionally, the possible technologies capable of contributing to the designed architecture were selected. The selection has been made based on the internal evaluation, possible and known pitfalls and, of course, the potential for impact.
The components, contributing to SODALITE have been designed, according to the overall architecture and the currently understood points of communication and data transfer. Efforts were allocated to understanding the placement and use of semantic tools, connected with the user-oriented DSLs and optimisations offered on various layers of SODALITE.
Prototypes of the DSL within the IDE, suggestions through Semantic Reasoning (supported by the Semantic Knowledge Base), Application Deployment, Application Reconfiguration have been implemented. Specific components, concerning the static and dynamic optimisation of the application have been designed and implemented as prototypes. The use-cases have been deployed on the test-beds in their first iteration. Furthermore, the literature research for the optimisation patterns and anti-patterns enabling performance-based re-deployments of the components, has been completed.
Work on the impact of the project has started, with the setup of the SODALITE website and clear instructions for contributions with blog posts and social media. Market research, as the cornerstone of the positioning of the SODALITE results, has been started and produced the initial positioning of the project and its components. Finally, clear procedures regarding the IPR rules and protection within the project have been elaborated and communicated.
In the first year, the SODALITE project constructed the application and infrastructure ontologies, supporting and enabling the suggestions within the IDE. To simplify inputs, a novel Domain Specific Language (DSL) for application deployment models has been constructed. Moreover, the approaches towards dynamic reconfiguration of applications have been researched, with particular focus on performance monitoring and subsequent reconfiguration as well as on bug detection based on recurring patterns.