Elisabetta Di Nitto (POLIMI), Emilio Imperiali (POLIMI), Saloni Kyal (POLIMI), Dragan Radolović (XLAB), Alexander Maslennikov (XLAB), Kalman Meth (IBM), Yosu Gorroñogoitia (ATOS), Kamil Tokmakov (USTUTT)
Indika Kumara (JADS), Alfio Lazzaro (HPE), Paul Mundt (ADPT)

The purpose of this deliverable is to present the status of the IaC Management Layer at the end of the second year of the SODALITE project.

The SODALITE Infrastructure as Code (IaC) Management Layer acts as an intermediary between the modeling environment, which aims at supporting the development of Abstract Application Deployment Models (AADMs), and the runtime environment, where the applications are actually executed. To accomplish its intermediation function, this layer offers several support services concerning the following activities:

  • Discovery of resources and automatic generation of Resource Models.
  • Generation of the IaC code from the AADM.
  • Creation of the container images to support the performance-optimized execution of application components on specific target environments.
  • Identification of smells/bugs in the IaC scripts and their prediction and fixing.
  • Configuration of the containerized application to achieve an optimized execution in the HPC environment.

In the current deliverable we provide an overview of the current evolution of the IaC Management Layer with respect to the points described above. In particular, this deliverable focuses on the progress of the work with respect to what was reported in Deliverable D4.1 [D4.1] at the end of the first project year. The deliverable has been developed in parallel and coherently to WP2, WP5 and WP6 deliverables [D2.2, D5.2, D6.3, D6.6] and to the work developed in WP3 as part of the second year.

The main innovations accomplished during this year are the following:

  • Automated platform discovery: this new mechanism allows the identification of specific resources and the creation of the corresponding Resource Models and TOSCA node types. The approach works by querying the status of the available infrastructures at a certain point in time. This is particularly important as it relieves the Resource Expert (RE) from the need to manually model and define resource types, thus saving significant modeling time.
  • Support for the creation of Ansible scripts integrated with the Resource Models: this is an add-on that offers users content assistance mechanisms that guide developers in the creation of scripts that are coherent with the definition of the resource models in which context they are used.
  • The MODAK package, a software-defined optimisation framework for containerised HPC and AI applications: this is responsible for enabling the static optimisation of applications before deployment. MODAK aims to optimise the performance of applications deployed to HPC infrastructures in a software-defined way. Automation in application optimisation is enabled by using performance modelling and container technology.
  • Semantic and Analysis Support including: bug taxonomy; unified best and bad practices catalog; unified smell catalog; linguistic anti-pattern detection via NLP and deep learning; improved support for detecting smells via a semantic approach.

During this year, the consortium has also consolidated the pre-existing components of the IaC Management Layer, namely, the Image Builder, the IaC Blueprint Builder, the Prediction Services, the IaC Quality Assessors, the Topology Verifier and the Provisioning Workflow Verifier. A special attention has been posed not only to the development of new features and integration mechanisms for these components, but also to the improvement of their quality and robustness.

All components of the IaC Management Layer, together with the other SODALITE components, have been incorporated into an overall CI/CD process with quality gates both in terms of code analysis (through SonarCloud) and in terms of testing. In the third project year all IaC Management Layer components will be enriched with additional features.