Managing distributed systems with Chef allows creating complex system topologies through the use of roles, attributes, environments, and databags. Roles define types of nodes, attributes define relationships, environments logically partition infrastructure, and databags store global data. These Chef concepts can be combined to distribute workloads, storage, and traffic across nodes in client-server, master-slave, and cluster configurations that are as complex as needed.