Subsystem for deploying and configuring the Platform and registries
🌐 This document is available in both English and Ukrainian. Use the language toggle in the top right corner to switch between versions. |
1. Overview
The Subsystem for deploying and configuring the Platform and registries is a collection of tools and processes that enable the Platform and Registries to function smoothly and continuously, tailored to the needs of its users.
The subsystem manages crucial functions for the Platform and its registries, including deployment, configuration, updates, component storage, and version control.
The subsystem uses GitOps practices, storing the Platform and registry states in the Git repository (Gerrit). Other components like operators and CI/CD tools (Jenkins) monitor and align the Platform’s state with the repository’s version.
2. Subsystem functions
-
Deployment, configuring and updating of the Platform components and registries.
-
Storage of the Platform and registries components.
-
Versioning of the Platform and registries configuration.
3. Technical design
4. Registry configuration structure
5. Subsystem components
Component name | Namespace | Deployment | Origin | Repository | Function |
---|---|---|---|---|---|
Configuration changes control and storage service |
|
|
3rd-party |
Software tool allowing version management for components and configurations. It is closely integrated with the Git distributed version control system. Using this tool, Platform administrators are abile to view all code and configuration modifications using a web browser, and approve or reject those changes. |
|
Configuration deployment service |
|
|
3rd-party |
Software system that provides automation throughout the life cycle of the Platform and Registries. It performs the actual deployment of the Registry, configuring, updating and many other automated tasks in the Platform. |
|
Storage of the Platform artefacts |
|
|
3rd-party |
Central repository of artifacts, components and their dependencies that make up every individual subsystem and the Platform as a whole. Storage of platform artifacts. |
|
Jenkins operator |
|
|
epam-origin |
Auxiliary software with the functions of deployment, configuring and recovery of Jenkins as a subsystem component. |
|
Gerrit operator |
|
|
epam-origin |
Auxiliary software with the functions of deployment, configuring and recovery of Gerrit as a subsystem component. |
|
Codebase operator |
|
|
epam-origin |
Codebase operator is an auxiliary software with the function of registering a new registry as a platform component, and performing initial configuration. |
|
Nexus operator |
|
|
epam-origin |
Auxiliary software with the functions of deployment, configuring and recovery of Nexus Repository Manager as a subsystem component. |
6. The process stack
In the course of the subsystem designing and development, the following technologies were used:
7. Subsystem quality attributes
7.1. Portability
Containers with subsystem components can be deployed or transferred to different cloud environments, to an own local infrastructure, or between other instances of the Platform for state registries.
7.2. Observability
The management subsystem of the Platform for state registries supports logging of incoming requests, event logging and collection of performance metrics for further analysis through the web interfaces of the corresponding Platform subsystems.
You can find out more about the design of the subsystems in the relevant sections: |
7.3. Maintainability
The subsystem is developed using the Gitops approach, which provides a description as a code of the Platform and registries configuration, that simplifies maintenance and deployment. It also allows you to automate the deployment process, minimizing the risk of human error. It also allows tracking of changes and ensures stability during deployment, and makes it easy for technical administrators to update the Platform and registries, roll back changes as required, and maintain a history of all changes made.