Desired State Configuration (DSC) is a feature in Windows Powershell that enables deployment and management of configuration data for software services and management of the environment in which these services run.
Description
DSC is a management platform in Windows PowerShell that enables deploying and managing configuration data for software services and managing the environment in which these services run.
DSC provides a set of Windows PowerShell language extensions, new Windows PowerShell cmdlets, and resources that you can use to declaratively specify how you want your software environment to be configured. It also provides a means to maintain and manage existing configurations.
Practical Applications
Following are some example scenarios where you can use built-in DSC resources to configure and manage a set of computers (also known as target nodes) in an automated way: Enabling or disabling server roles and features
Enabling or disabling server roles and features
Managing registry settings
Managing files and directories
Starting, stopping, and managing processes and services
Managing groups and user accounts
Deploying new software
Managing environment variables
Running Windows PowerShell scripts
Fixing a configuration that has drifted away from the desired state
Discovering the actual configuration state on a given node
In addition, you can create custom resources to configure the state of any application or system setting.
* Source: http://technet.microsoft.com/en-us/library/dn249912.aspx
Azure DSC
DSC has become a core configuration technology in Azure, Microsoft's cloud platform. A DSC can be associated with an Azure VM when it is created by setting a DSC configuration provision parameter. This ensures once the VM comes to a ready state, the vm is in the configuration required by the application.
There are three mechanisms by which Azure invokes DSC:
On VM creation if a DSC extension is set with Set-AzureVMDSCExtension cmdlet
On VM reboot: DSC is re-run during every VM reboot to assure the VM is in the "Desired State"
On VM update: if Set-AzureVMDSCExtension is executed on an existing VM, it will execute DSC.
Source: https://msdn.microsoft.com/en-us/library/azure/dn877980.aspx?f=255&MSPPError=-2147217396
AWS (Amazon Web Services) DSC
DSC has been extended to AWS, Amazon's cloud platform. A DSC can can be executed when an AWS VM is created with CloudFormation. This ensures once the VM comes to a ready state, the vm is in the configuration required by the application.
AWS DSC Toolkit
This module allows you to register AWS EC2 instances as DSC Nodes in Azure Automation. You can then control your EC2 instances in Azure Automation using PowerShell DSC configurations.
Source: https://github.com/PowerShell/AwsDscToolkit
Source: https://blogs.msdn.microsoft.com/powershell/2016/04/20/aws-dsc-toolkit/