Urchin SCM

The Urchin Software Configuration Management system is the result of a free and open source project started by Martin Halliday in 2015. The aim of the project is to provide a free enterprise scale solution to managing the configuration of many software applications running on many servers across an enterprise. The solution comprises two parts; the Urchin Client is embedded into software components that need to be configured, and the Urchin Server evaluates rules to construct configuration data for specific instances of applications running on particular machines.
The Urchin Client
Urchin Client software retrieves configuration data from the Urchin Server, compares this with the previous configuration it received, finds and the changes, and notifies components within the software of the changes. Unlike many other SCM solutions this allows changes to be effective immediately without restarting the application.
The Urchin Client retrieves configuration data from the Urchin Server via an HTTP GET. The server responds with a document in JSON format. Any software development tool that that supports HTTP and JSON can use the Urchin Server to get its configuration.
For applications written for the .Net Framework an Urchin Client is available as a NuGet package.
The Urchin Server
The Urchin Server software is written for the .Net Framework and was originally tested hosted on Microsoft Internet Information Server, but it is built on the Open Web Interface for .NET and can easily be adapted to other hosting environments. The Urchin source code contains documentation on how to install and configure the Urchin Server.
The Urchin server is a rule based system. This allows complex scenarios with many permutations of configuration to be easily managed. For example you can create a rule that says all computers in the test environment should log errors to a specific folder path. When an Urchin Client makes an http request to the server for configuration data, the server evaluates all rules that apply starting with most general and ending with the most specific rules so that configuration settings that are more specific will override the ones that are more general.
The Urchin Server has a REST API that can be used to manage the rules. Rules can be versioned and different versions can be live in each environment. You can also specify which servers are in which environments so that the software to be configured only has to know the name of the server it is running on and the name of the application.
The Urchin server also has an optional user interface for managing the rules. This user interface is written in the , and works on all modern browsers.
Further reading
*"Urchin source code"
*"Urchin client NuGet package"
*"Other software that depends on Urchin"
*"Urchin listing on the NuGet Must Have web site"
 
< Prev   Next >