For Drupal 7, see https://www.drupal.org/node/1861064
Drupal 8 has a whole new configuration system to store configuration data in a consistent manner. All of your site configuration from enabled modules through fields, contact categories to views, are stored with this system. The system is designed to make it much easier than prior Drupal versions to make changes, export site configuration to files, and import those changes back into the site.
The Configuration Manager module in Drupal 8 provides a user interface for importing and exporting configuration changes between a Drupal installation in different environments, such as Development, Staging and Production, so you can make and verify your changes with a comfortable distance from your live environment.
This allows you to deploy a configuration from one environment to another, provided they are the same site. The site is identified using a Universally Unique Identifier (UUID). The site UUID must match the target site to allow any importing of configuration files on that site.
Default configuration shipped with modules, distributions, and themes is imported into the active configuration store when the respective projects are enabled. So the active configuration store is the complete set of live configuration at any given time.
The active configuration is stored in the database by default.
Importing, exporting, and synchronizing configuration
Making configuration changes on the live site is often not the best idea. The goal of the configuration system in Drupal 8 is to make taking a copy of the site configuration easy to set up a development site where you make changes. Then importing those changes on the live site is also made simple.
You can import, export, and synchronize configuration in your site via Manage > Configuration > Development > Configuration management (
It is possible to export a single configuration file and paste it into another environment. The single import option lets you specify the type of the configuration file and import it from your copy-pasted value.
The full export feature is a lot more powerful. You can download an archive of all the active configuration files with this feature. This can be used to import on a development site (given the two sites are copies of each other) to import, synchronize, make changes, package up again and import and synchronize back on the live site as well.
Assume you have identical dev and prod sites. Any changes made on the dev site will be saved into the active storage on the dev site. This can be exported and imported on the live site.
Once you ran the import, you should synchronize your changes which will let you review all the changes between the prod active and staging directories.
From this list you can view the differences between the configuration to ensure that the changes are as expected, before setting the changes active.
The Synchronize page will also show new or removed config files. It is important to check that there are no removals of any core configuration (such as system.*, entity.*) as this will result in a site error.
Once the synchronization is run, new modules are enabled, new fields, content types, etc. are added. In short all changes are live.
If you're looking for more in-depth information about the Configuration Management system in Drupal 8, you can check the handbook pages for Configuration API.