Use case: Providing self service environments on demand using Kratix
One of Syntasso’s first real-world integrations was with a Fintech company that had an existing micro-services architecture running on public-cloud hosted Kubernetes. Much of this infrastructure was created using Terraform.
One of their biggest challenges was providing environments for the QA teams. Their existing ticket-driven system required a platform team member to create the testing environment on behalf of the QA teams. This cost time on already short testing schedules, while also putting significant load on the platform team for something that is the definition of toil – work that tends to be manual, repetitive, automatable, tactical, devoid of enduring value, and that scales linearly as a service grows.
The goal: Enable QA teams to spin up dedicated environments on demand via a simple API request.
Kratix is a framework for building platforms, part of that vision includes meeting customers where they are through simple integration with existing IaC technologies. In this case, our customer built a TestEnvironment Promise to orchestrate their existing toolchain and to provide a more streamlined platform experience.
The TestEnvironment Promise enabled the platform team to declaratively define a simple API to enable on-demand creation and deletion of environments as required. This API exposed variables that their QA needed to input into their on-demand environment, like the version of the system they needed to test. On request of a new test environment, the Promise pipeline took the variables from the API request and mapped them into the .tfvars file, which was used to imperatively drive the Terraform plan command before applying to create the cloud infrastructure. The Promise pipeline then simply waited until Terraform apply had completed the creation of the cloud infrastructure before continuing the Promise workflow with the deployment of the microservice architecture under test.
As Kratix takes no opinion on what technologies are used within a Promise, our client was quickly able to embed their existing IaC scripts directly into the TestEnvironment Promise to rapidly deliver on their use case: A shift of their manually-run, ticket-driven, IaC scripts into a declarative API, ready to be consumed on-demand driven by Kratix.