# Introduction to environments and deployments >**Note:** Introduced in GitLab 8.9. ## Environments Environments are places where code gets deployed, such as staging or production. CI/CD [Pipelines] usually have one or more [jobs] that deploy to an environment. Defining environments in a project's `.gitlab-ci.yml` lets developers track [deployments] to these environments. ## Deployments Deployments are created when [jobs] deploy versions of code to [environments]. ## Defining environments You can create and delete environments manually in the web interface, but we recommend that you define your environments in `.gitlab-ci.yml` first, which will automatically create environments for you after the first deploy. The `environment` is just a hint for GitLab that this job actually deploys to this environment. Each time the job succeeds, a deployment is recorded, remembering the git SHA and environment. Add something like this to your `.gitlab-ci.yml`: ``` production: stage: deploy script: dpl... environment: production ``` See full [documentation](yaml/README.md#environment). ## Seeing environment status You can find the environment list under **Pipelines > Environments** for your project. You'll see the git SHA and date of the last deployment to each environment defined. >**Note:** Only deploys that happen after your `.gitlab-ci.yml` is properly configured will show up in the environments and deployments lists. ## Seeing deployment history Clicking on an environment will show the history of deployments. >**Note:** Only deploys that happen after your `.gitlab-ci.yml` is properly configured will show up in the environments and deployments lists. [Pipelines]: quick_start/README.md [jobs]: yaml/README.md#jobs [environments]: #environments [deployments]: #deployments