Assisting users in the creation of complex application deployment models.

Cloud computing is an increasingly popular paradigm for accessing resources. Research And Markets [1] forecasts that global cloud computing is expected to grow by 17.5% compound annual growth rate. Especially due to the COVID-19 outbreak [2], cloud computing adoption tends to be even higher. In recent times, applications are becoming more and more complex, thus more and more organizations migrate to cloud and HPC infrastructures. However, those resources are diverse and heterogeneous with different standards per cloud provider. As such, authoring a deployment model tends to be a daunting task for the user. To this end, we present the Smart SODALITE Integrated Development Environment (IDE), implemented in Eclipse as a set of installable extension plugins, for enabling simpler and faster deployment of applications.

Authoring a deployment model in SODALITE - Smart IDE

SODALITE simplifies the creation of the deployment models through a smart IDE. IDE separates the modelling concerns by supporting different roles, namely, Application Experts(AEs), Resource Experts(REs), and Quality Experts(QEs). AEs model application deployment topologies in Abstract Application Deployment Models (AADMs), REs design the infrastructure resources on which the applications are deployed, and QEs model optimization plans for the static optimization of the application. The models designed in IDE are instances of the SODALITE Domain Specific Languages (DSLs), which leverages the TOSCA [3] language for facilitating the export of AADM topologies as TOSCA blueprints into the SODALITE IaC environment.

SODALITE IDE provides textual editors for all kinds of models, as well as a graphical editor for the visualization and form-based edition of AADMs. The textual and graphical representations of the AADM are kept in sync. The textual representation offers higher modelling productivity while the graphical one offers better outline communication.

Figure 1: Visual and textual representation on an AADM

SODALITE IDE offers complete assistance for the development of the deployment model of the user’s application. Some of the assisting features are:

  • Auto-completion, syntax highlighting
  • Semantics-powered context-aware content-assistance
  • Syntactic and semantic validation of the model 
  • Abstraction of the AADM and its concretization at deployment time

All the resources are saved as interconnected RDF knowledge graphs capturing both structural and semantic relationships. Reasoning services are run upon them to infer complex relationships and reuse the already stored resources.

Smart context-aware content-assistance suggestions and semantic validation are primarily driven from the Knowledge Base.
Suggestions can be advanced, such as getting node templates that can serve as a host for an application (the schema of the node type of the application should be checked), or as simple as getting the attributes/capabilities/properties of a node type so as to be proposed when authoring a node template instance of a specific node type. As for the validation of the model, in order to avoid errors during the deployment, only valid models are saved in the KB. For example, errors are thrown when required properties are missing from node templates, or when an invalid requirement host is assigned to a template (e.g invalid node type for a host).

We have evaluated our platform through three industrial use cases [4] developed in the SODALITE project. Through those use cases, we are able to test our platform by targeting various environments from Cloud to HPC and Edge computing environments.

We have evaluated our platform through three industrial use cases [4] developed in the SODALITE project. Through those use cases, we are able to test our platform by targeting various environments from Cloud to HPC and Edge computing environments.

Figure 2: Snippet of the visual representation of the AADM for the Snow UC

Next Steps

For the future work, some of the steps are to: i) visually enrich the representation of the AADM, ii) enhance the KB-powered support to IDE for suggestions, iii) further abstract the application deployment model, and iv) provide deployment governance through the runtime.