Deployment
Learn about our deployment strategy including CD pipelines, containerization, and infrastructure.
CD Pipelines
Our Continuous Deployment (CD) pipelines are based on Azure DevOps, enabling consistent and automated deployment of applications.
The pipeline workflow typically includes:
- Auto-incremented versioning from the main branch.
- Building Docker images and pushing them to Azure Container Registry (ACR).
- Helm-based deployments to Kubernetes.
- Automated updates of deployment templates per environment.
These pipelines are triggered automatically after merging into the main
branch.
Gitea
Private packages and internal libraries are stored within our Gitea-based npm registry.
The npm configuration is dynamically generated in the pipeline:
echo "@eit:registry=https://$PROJECT_NPM_STORE" > .npmrc
echo "//$PROJECT_NPM_STORE:_authToken=$PROJECT_NPM_TOKEN" >> .npmrc
This setup simplifies dependency management during deployments.
ACR
Docker images built in our CD pipeline are pushed to the Azure Container Registry (ACR). Each image is tagged with a specific version as well as a 'latest' tag for easy reference and rollback.
Example of Docker tags:
tags:
- $(Version)
- latest
These images are later pulled by Kubernetes clusters.
CDN
Currently, Hosel frontend applications are containerized and deployed directly to Kubernetes without the use of a CDN. This setup is optimized for controlled environments and internal access scenarios, where latency and geographic distribution are not critical.
However, our platform fully supports deployment scenarios that include a Content Delivery Network (CDN)—such as Azure Front Door or Azure CDN. This allows for global asset distribution, optimized caching, and reduced latency for end users across various regions.
If your product requires global availability and faster asset delivery, a CDN can be seamlessly integrated at the infrastructure level to improve performance, reliability, and scalability.
Docker and K8s
Applications are containerized using Docker and orchestrated in production environments via Kubernetes. Deployments are defined using Helm charts, leveraging config.yaml
and values.yaml
for environment-specific customization.
A custom Bash-based script handles manifest templating and validation:
- It downloads Helm packages from an internal git-based Helm registry.
- Validates deployment configurations before applying them.
- Automatically generates Kubernetes manifests based on environment-specific configuration.
This structured process ensures reliable, repeatable deployments across different environments.
Frameworks
We leverage modern, proven technologies for our web solutions, enabling us to quickly deliver outstanding results. Each chosen framework provides specific advantages, ensuring your projects are perfectly aligned with your business goals.
Code Quality
Learn about our approach to code quality, including CI pipelines, linting, type safety, and best practices for code reviews and pull requests.