This document discusses application deployment as system state using configuration management tools like Chef. It describes how tools like Chef allow you to declaratively define system resources like users, packages, and applications. Chef recipes and cookbooks can be used to provision, configure, and integrate application code and dependencies. Roles in Chef describe nodes and contain recipes. Tools like Fabric, Capistrano, and chef-deploy can be used to deploy application code changes to servers defined through roles in Chef.