Environments
When you create an environment, you are creating a unit that will drive the configuration overrides for any given job. For every Task that exists in a project, it's possible to override the task's variable for that environment.
Default Identities
When a Job is run against an environment, that Job will use the default Identity for the Environment. However, it is possible to create an Environment Link. Links are discussed in depth later
Protected and Monitored Environments
You can make an environment protected. This means it will require an additional confirmation step when you try to run Jobs against that environment.
You can also make an environment monitored. This will make a request to a health check end point. If a status returned doesn't match what you expect, you can initiate a Job to try and rectify the issue (such as restarting a web server)
Configuring a monitor endpoint
The monitored endpoint should be a healthcheck endpoint that returns quickly if the app is working. When an endpoint returns an error, DMT can run a Job against that environment. You can also configure acceptable return codes, but the default is 200.
Variables can be managed on a per environment level. The Variables are the specific Variables which are attached to an Identity. At the Environment level you can specify alternate values for the Identity variables. This is how you can use a base congfiguration for an Identity and expand on it to support any host, port, and credentials for the specific Environment.
You can schedule any number of Jobs to run against the environment. Current options here are limited to once day, once a week, or once a month, but there will be work to expand on these options. Scheduling a job can be useful for scheduling an administrative Task like backing up a database.
Managed Links
An environment link allows you to use any identity for any particular job in an environment. This is useful if you want to define a different environment than the host that is hosting your software. An example is a build server which you build assets on, but are not involved in the deployment of your software application. It can also be used to host a web server on one Identity in an Environment and a DB server on another Identity but within the same Environment.