Accelerating Delivery for AI-Powered Data Privacy Platform

Country

Netherlands


Description

The client provides an AI-powered data privacy platform that automatically identifies and removes sensitive information from legal documents. The solution is delivered as a turnkey deployment that runs entirely within each customer's on-premises environment, ensuring compliance with strict data residency and security requirements.

The platform's backend consists of more than twenty tightly coupled microservices that communicate with one another and multiple databases. As the product evolved and the customer base expanded, the client required a more reliable, scalable, and repeatable deployment process that could support both development and production environments while simplifying deployments for every new customer installation.


Challenges

The deployment process was fragmented and difficult to maintain. Development environments relied on Docker and Kubernetes, while production deployments used Nomad, creating inconsistencies between testing and live environments. As a result, deployments validated during development did not accurately reflect production behavior, increasing operational complexity and deployment risk.

Provisioning new customer environments and performing upgrades required significant manual effort. There was no standardized method for distributing the platform or provisioning the underlying infrastructure, making deployments time-consuming and difficult to reproduce consistently. Managing infrastructure, runtime dependencies, and application releases as separate processes also complicated maintenance and slowed delivery.

The client needed a unified deployment model that would standardize infrastructure provisioning, automate application deployment, and enable reliable, repeatable installations regardless of the target environment.


Solution

We designed and implemented a fully automated deployment platform using Infrastructure as Code, creating a consistent workflow for both development and production environments.

Using Packer, we built reusable virtual machine images with Nomad components inside. Terraform was then used to provision virtual machines in Hetzner directly from these images, ensuring that every environment started from the same immutable baseline. VMs at launch automatically assemble into a Nomad cluster effectively working the same way a managed service would.

After infrastructure provisioning, the platform automatically deploys the foundational services required by the application (including databases and storage components) into the cluster. CI/CD pipelines then build and deploy the application services into the cluster, completing the environment with minimal manual intervention. The only required manual steps are validating cloud credentials and adding the cluster API token to the CI/CD pipeline variables.

The same deployment architecture is used across development, staging, and production environments, ensuring consistency between non-production and production systems. Every end customer receives an isolated production deployment, which can be provisioned within their own cloud account while following the identical automated deployment process.

Every layer of the platform (infrastructure, virtual machines, and application runtimes) is fully reproducible in any environment thanks to immutable infrastructure and Infrastructure as Code practices. This significantly improved deployment reliability and reduced operational risk. Routine upgrades were simplified as well.

The new deployment platform reduced the time required to provision a new environment from approximately 4 hours to just 28 minutes. Product upgrades and deployments now complete in an average of 6 minutes, including container image builds. Release frequency is increased by 200% - while the deployment process is consistent and reliable across all customer environments.

CONTACT US