Azure DevOps pipelines and databases
DevOps leaders prefer Docker SQL Server containers with database clones for Azure DevOps pipelines.
- Fresh databases for pipeline runs - Scale your pipeline runs easily with a separate database environment with a writeable database for each pipeline run. No need to restore databases.
- Reduced VM and instance sprawl - Avoid costly VMs and instances for DevOps pipelines. Instead, spin up a container with data for a pipeline run and delete it after the run completes.
- REST API, kubectl or docker - Use a REST API, kubectl or docker command in your pipeline to spin up the database environments.
Windocks delivers databases in containers for Azure DevOps pipelines
Windocks SQL Server containers, cloning and masking let you easily deploy databases to test and staging. Windocks orchestration allows you to combine all these into a single pipeline step without the need for you to write custom code. Simply provide a spec (in the form of a dockerfile) and Windocks will orchestrate the cloning, masking, containerization, production refresh services and abstract the deployment into a single pipeline step.
Steps to get started on DevOps pipelines and databases
1. Install Windocks
Provision a Windows Server VM (Server 2016, 2019, or 2022), install SQL Server (for SQL database delivery) and then install Windocks as described here.
For Oracle database delivery, also install the Windocks service for Linux as described here.
2. Provide the spec to the Windocks orchestrator to build the image
- the path to one or more SQL backup or database files or Azure SQL BACPAC files, which database cloning to use Windocks database cloning or volume cloning from other companies)
- where to deliver the database clones (Windocks SQL Server Windows containers or SQL Server instances)
- how often to refresh from production, customizations such as database scripts to be applied
- which masking software to use (Windocks masking, other masking solutions or scripts)
- authorization controls
The spec is provided in the form of a dockerfile. Build the image via a web application, command line or REST API.
3. Create the Yaml for the DevOps pipeline
Use the sample to create a Yaml file with steps for the DevOps pipeline. Substitute the content in the steps to make REST API calls to the Windocks server to create clones with containers. Email firstname.lastname@example.org for sample Azure Pipeline Yaml. Put in variable values in the Yaml for the IP / DNS for the server running Windocks, the as user name and password you want for the containers, the credentials for the Windocks server, and the image name from step 1.
4. Create the pipeline in Azure DevOps
In Azure DevOps UI, create a repository and push the pipeline Yaml to the repo. Then, create a pipeline pointing to the Yaml
5. Run the pipeline in Azure DevOps
Either manually run the pipeline in the UI or push to the repo to trigger a pipeline run. See the pipeline logs. The database clones are available in containers created by the pipeline running on the Windocks machine on different ports as specified in the Yaml.