Configuration management with Chef
Building large scale applications is a very rewarding thing. However, the maintenance and scaling process/part of such apps can be quite challenging sometimes. The applications and the operating system can each have different, possible configurations to fit the environment they are deployed in. Moreover, they have to be consistent across the development, the QA and the production stages, and point out to the information relevant at each stage. For example, the information contained in a database URL will be different than that of a URL used in the development stage, which is obviously different than the one used in production. Some of this information is not available for all the people involved in the development process, because they should not care about it either.