Setting up your environment in GCP can entail many steps: setting up compute network and storage resources, and keeping track of their configurations. You can do it all by hand if you want to, taking an imperative approach. In other words, you figure out the commands you need to set up your environment the way you want. If you want to change your environment, you figure out the commands to change it from the old state to the new. If you want to clone your environment, you do all those commands again. This is a lot of work. It's more efficient to use a template. That means a specification of what the environment should look like. It's declarative rather than imperative. GCP provides Deployment Manager to let you do just that. It's an Infrastructure Management Service that automates the creation and management of your Google Cloud Platform resources for you. To use it, you create a template file using either the YAML markup language or Python that describes what you want the components of your environment to look like. Then, you give the template to Deployment Manager, which figures out and does the actions needed to create the environment your template describes. If you need to change your environment, edit your template and then tell Deployment Manager to update the environment to match the change. Here's a tip: you can store and version control your Deployment Manager templates in Cloud Source repositories.