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.
- Main repository: Gitlab repository that works on PIAP servers
- Integration: It allows for cooperation with software modules created by partners
- Build and test: It allows building the software automatically and run the test
- Validation: Validation of a deployed solution will rely on digital twin services to perform safety risk assessments
- Deploy: It automatically build binaries ready for deployment
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.
Use Case Mock-ups
The following mock-up illustrate gitlab basic interface that is used to interact with the system.
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
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
Additional Information component-related
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.