Build and Deployment
Build Pipeline
Once you have implemented your integration logic and confirmed its behavior in developer mode, you are ready to build and deploy your microservice. Talisman provides an automated packaging and deployment pipeline that performs the following steps:
- Compiles the source code.
- Packages the application into a standalone JAR file containing all required dependencies.
- Builds an OCI-compliant (Open Container Initiative) container image of your packaged application.
- Pushes the OCI image to your designated image registry.
- Deploys the container to your target infrastructure (Docker or Kubernetes).
graph TD
subgraph Pipeline
C[Compile] --> P[Package JAR]
P --> B[Build OCI Image]
B --> R[(Push to Registry)]
R --> D[Deploy to Target]
end
Promotion Workflow
This process relies on a standard three-tier architecture (dev, test, and prod). All environments are connected to the same shared Git repository and container image registry.
graph LR
subgraph Dev Environment
Dev[Developer] -->|Commit Code & Config| Git[(Git Repository)]
Dev -->|Trigger Build| Build[Talisman Build Pipeline]
Build -->|Push Image| Reg[(Image Registry)]
end
subgraph Test Environment
TestOps[Test Deployment] -->|Pull Config| Git
TestOps -->|Pull Image| Reg
end
subgraph Prod Environment
ProdOps[Prod Deployment] -->|Pull Config| Git
ProdOps -->|Pull Image| Reg
end
- Development & Build: Developers work within the dev environment. Once development is complete, the developer commits the code to the Git repository and triggers the build process. Talisman generates the container image, pushes it to the shared registry, and outputs a base configuration file (e.g.,
kubernetes.yamlordocker-compose.yaml). - Configuration: To prepare for promotion, the developer generates environment-specific configurations (e.g.,
test.kubernetes.yamlandprod.kubernetes.yamlfor Kubernetes, ortest.docker-compose.yamlandprod.docker-compose.yamlfor Docker) and commits these files to the Git repository. - Deployment & Promotion: The test and prod environments operate strictly from version control. In these environments, deployments simply pull the latest configurations from Git and deploy the respective environment-specific file. The target infrastructure (Kubernetes or Docker) will then pull the corresponding pre-built image directly from the registry.