1. At a computer system, the computer system including one or more processors and system memory, a method for configuring an application, the method comprising: receiving context for the application at application runtime, the context defining an operating environment where the application is to run; accessing previously stored metadata for the application, the previous stored metadata identifying a plurality of variables that are to be used to configure the application at runtime; selecting one or more pluggable configuration providers based at least in part on the context; routing the context to the selected one or more pluggable configuration providers, each of the selected one or more pluggable configuration providers configured to deduce one or more potential values for one or more of the plurality of variables based at least in part on the context; for each variable in the plurality of variables: receiving the one or more potential values for the variable from at least one of the selected one or more pluggable configuration providers; and selecting a value of the one or more potential values to assign to the variable based at least in part on priorities associated with the selected one or more pluggable configuration providers; and returning a configuration to the application, the configuration based at least in part on the selected value of the one or more potential values for each of the plurality of variables, the configuration for configuring the application to execute in the operating environment.