Service as a deployable unit
A service represents a standalone, deployable component within the project. Each service is designed to operate independently, encapsulating specific functionality, and is packaged for deployment in a k8s environment. This approach ensures modularity, scalability, and ease of maintenance.
Service structure and responsibilities
A service encapsulates specific business functionality and interacts with other software components through synchronous (REST API) or asynchronous (messaging) communication.
Each service repository is responsible for defining and describing the following:
- Functionality: The core business logic and implementation.
- Contract (OAS): API specifications for communication.
- Tests: Ensuring quality and reliability through automated and manual testing.
- Continuous Deployment (CD): Deployment configurations for specific environments.
- Documentation: Basic information and usage guidelines for the service.
Project structure
DevOps white-label project consists of multiple repositories, each with a clearly defined responsibility. This project is tailored to meet specific customer needs and requirements. It leverages platform components (packages) and references other artifacts, including repositories, Helm charts, pipeline templates, and more. Customer-specific projects are initially created as clones of the white-label project.
Folders structure
This section describes the standard folder structure of a service repository, organized to streamline development, deployment, and testing processes.