A Devops pipeline is a sequence of code and configuration that builds applications, deploys them to test, staging environments, runs tests and deploys to production.
Typically a pipeline will build images for applications and then deploy the same image to different test and staging environments in containers.
Continuous integration / deployment (CI/CD) orchestration solutions such as Jenkins, Bamboo, or Azure Devops provide a syntax and convention for specifying pipelines. Once a pipeline is specified, the CICD orchestrator runs the steps in the pipeline.
Test and staging environments typically need production data copies for their test or staging environments. However making copies of large databases is not practical during a devops pipeline run. Once a production data copy is available, a fresh database service has to be deployed (typically a container) and the databases have to be attached to that container.
To deploy databases to test and staging environments, the following are needed:
|1. Install Windocks||Download the Windocks Community Edition or email firstname.lastname@example.org for a full featured evaluation edition. 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||
Specify the path to one or more SQL backup or database files, Azure SQL BACPAC files, or Oracle RMAN backup, or Oracle oradata files. Specify 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 or docker Oracle containers), 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), and authorization controls.Provide the spec in the form of a dockerfile and build the image via a web application, command line or REST API.
|3. Create the pipeline||Use the documentation for your devops orchestrator (Jenkins, Bamboo, AzureDevops, etc) to create the pipeline. Use the REST API to add the Windocks steps to create the container and clone from the image.|
|4. Run the pipeline in you rdevops orchestrator||Either manually run the pipeline in the UI or push to the repo to trigger a pipeline run and 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 pipeline|