This guide will give you an overview of the setup, configuration, and use of the Multiple Environments functionality in Discovery Hub.
For a more detailed guide, you can download the MULTIPLE ENVIRONMENT SETUP GUIDE in PDF format Here.
In order to implement multiple environments, you must first configure a few things:
Create a Repository Database for each Environment
You must create a new project repository database for each Environment. It can be helpful to follow a naming convention to clearly identify each database such as projectRepository_Dev | projectRepository_Test |projectRepository_Prod. These databases should reside on the associated environment server. To create another repository database:
- In Discovery Hub Tools Menu > Options > Project repository Tab
- Indicate the correct server name.
- Type the desired database name for this new repository.
- Click Create.
Create a Service User for Each Environment
Each Environment (except for Development) needs an individual "Log-on As" user. This is typically the same "service" user used to run the Scheduler service. This user will be initiating the deployment and execution operations triggered through other environments, therefore, needs to have DbCreator security permissions on all associated databases for that environment. (e.g. projectRepository, ODX, DSA, and MDW).
Configure the Server Service for each Environment
Each environment (except for Development) needs to have an instance of the Discovery Hub Server Service. You'll need to modify the service to use the "Log-on As" service created in the previous step. (Please note: you will be unable to start the service until you 1. Assign the service user to the associated environment's project repository[step below] and create the associated environment(s) in Discovery Hub. [step covered in the first video below])
One instance of the Discovery Hub Scheduler Service and Discovery Hub Server service are installed when installing the Server version (as opposed to "client") of Discover Hub, so you may not need to create a new service. However, if you are running two (non-dev) environments on the same machine, you will need to create another instance of the server service. To create an additional service:
- Discovery Hub Tools Menu > Windows Service Setup
- Options > Create Service
- Provide the necessary info for the service & click create. (You may need to complete the following step first.)
Assign Each Service User to the Associated Environment's Project Repository
When you start the Server service, the "Log-on As" user opens an instance of the TimeXtender.exe process (Discovery Hub without the UI) in the background. This process needs to know what repository to connect to. This can be done in 2 ways:
- Log onto the server as that service user, open Discovery Hub, and switch to the associated project repository.
- OR Modify the config file for that user to use the associated project repository database.
- In order to get this file to appear, you will need to start the service. It will fail but will create the file referenced below.
- Browse to C:\Users\username[service user for the associated environment]\AppData\Roaming\Discovery Hub Server\Discovery Hub server\[version number]\
- NOTE: If this path does not yet exist, Start the Server Service mentioned above. You will get a message saying "the service started then stopped unexpectedly." This is OK. Now the file path should be created.
- Open Config.xml and note the settings in the ProjectConnectionString element.
- Change the "Data Source" and "Initial Catalog" properties to point to the project repository for that environment.
- Save and Close the file.
Once you have completed the initial setup, you should now be able to create the Environments in Discovery Hub, which we will cover in the following video. Please note, you will be unable to start the service until we create the environments.
Configuring Your Environments
Watch the following video to configure your environments in Discovery Hub.
Create Additional Intermediate Environments
If you wish to create additional intermediate environments, you can do so slightly modifying the previous instructions. For example, if you were to create a Test Environment you would follow these steps.
- Be sure to complete initial setup steps for this Environment.
- Create the Test Environment in the Test Repository (on the test server, if desired).
- Create the Remote Production Environment in the Test Repository
- Start the Test Service (using the Test Service User)
- Create the Remote Test Environment from the Development Repository
- Adjust the Environment Sequence numbers as desired.
Configure Global Databases
When using Multiple environments it's important to identify a separate set of databases (Data Sources, ODX, DSA, MDW etc.) for each environment. Discovery Hub uses Global databases as a way to define dynamic database connections that are configured on a "per-environment" basis.
Watch the following video to learn how to configure global databases.
Multiple Environment Transfer
Now that you have configured multiple environments you may want to promote your project to the next environment. Watch the following video to learn how to transfer a project to the next environment.