# Multi-tenancy & Configuration Management

### Introduction <a href="#multi-tenancy-configurationsplit-introduction" id="multi-tenancy-configurationsplit-introduction"></a>

In our development process, a crucial question arises: Should developers create packages tailored specifically for the testing phase, or should they produce the latest version of the application with changes in implementation for the QA team to test? Opting for the latter approach necessitates manual configuration of all parameters each time, which proves to be time-consuming and tedious for the QA team, hindering their ability to effectively test, reproduce, and report any issues.

Therefore, the former solution, where we build a version of the application tailored for the specific environment, emerges as the optimal choice. It's important to note that achieving this can be facilitated through various methods and integration with tools like Jenkins. For instance, configuration management can be handled using tools such as Ansible, Terraform, or Attune. While building packages individually for each environment version may require more storage space and slightly longer build times, it ultimately ensures thorough testing and deployment across all desired versions of the software.

### Custom solution <a href="#multi-tenancy-configurationsplit-customsolution" id="multi-tenancy-configurationsplit-customsolution"></a>

To address this challenge, we've implemented a project-level solution focused on defining the packaging of various software versions. Much like crafting different editions of a product to suit diverse markets, we've customized our software to precisely match the requirements of each deployment environment.

Within this project-level setup, we've developed a streamlined methodology for packaging our software versions. This approach ensures that our deployment process is not only smooth but also maximizes performance and reliability across different environments.

With our tailored packaging strategy firmly in place, we've established a robust framework for deploying our software efficiently and effectively, regardless of the target environment.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.leapwise.co/backend-handbook/development-tools-and-environment/multi-tenancy-and-configuration-management.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
