CI/CD FRAMEWORK FOR AI-BASED SOLUTIONS

Introduction

The objective of CI/CD framework is to design and validation of continuous integration and validation pipelines for AI-PRISM AI-based solutions. It provides the tools and infrastructure required to manage AI-based solutions along their lifecycle, considering design, development, deployment, training, validation, use, monitoring, and improvement.

Technical Specifications

Software and hardware Requirements

The technical specification diagram represents the architecture of CI/CD framework and its components. It includes cloud cluster: code repository, CI/CD workers and fog cluster module.

Technical Specifications

Usage Manual

Diagram blelow shows AI-PRISM CI/CD services and the relationship to the AI-PRISM IIoT Platform internal architecture and functions described above in section 4.2.

Developers release new versions of software in a code repository (Git repository). This software release triggers the execution of a CI/CD pipeline in a CI/CD worker (a cloud computing resource dedicated to run the build, integration, and test scripts specified in the pipelines). If the pipeline successfully runs all the tests, a new version of the application is published in the Application repository. The cluster control function of the AI-PRISM IIoT Platform fetches the versions available in the repository and notifies the administration user that there is a new version available, so that, in the end, the system administration is responsible of confirming the update process.

During the execution of the CI/CD Pipeline, the CI/CD workers use services of the AI-PRISM CI/CD to perform a software quality analysis (a static code analysis using open solutions like SonarQube16) as well as tests in an integrated test environment (a cloud replica of a production environment) to detect possible integration issues.

Details will be available later as work progresses.

Use Case

This component applies to all other AI-PRISM components, so its operation is identical for all use-cases.

Technical Specifications

Use Case Mock-ups

The following mock-up illustrate gitlab basic interface that is used to interact with the system.

Mockup

As the work progresses, more functionalities will appear, especially in the CI/CD section.

Functional Specifications

The functional specifications is showed in a diagram below.

Functional Block Diagram

Technical Specifications

Functional diagram shows the interrelationships between the functional (sub-)components.

Main interfaces

List of main interfaces between functional components shown in the figure.

ID Component Name Description Sense
1 Make code changes Get changes Apply changes to repository In
2 Make code changes Make build Attempt to build Out
3 Build and test Build result Built or not Out
4 Integrate and test Make integration Make integration and tests Out
5 Build and deploy Make deploy Deploy built modules Out

Sequence Maps

Sequence maps showing the interactions between the functional (sub-)components. Explanation of flows.

sequenceDiagram
Developer->>Make code changes: Apply changes to repository
Make code changes->>Build and test: Attempt to build and test
Build and test->>Integrate and test: Result OK
Build and test-->>Make code changes: Result fails
Integrate and test->>Build and deploy: Result OK
Integrate and test-->>Make code changes: Result fails

The CD module is still in the design phase and will continue to be developed according to the progress of work in other AI-PRISM modules.