This review article describes the design of static controllers that achieve an optimal tradeoff between closed-loop performance and controller structure. Our methodology consists of two steps. First, we identify controller structure by incorporating regularization functions into the optimal control problem and, second, we optimize the controller over the identified structure. For large-scale networks of dynamical systems, the desired structural property is captured by limited information exchange between physical and controller layers and the regularization term penalizes the number of communication links. Although structured optimal control problems are, in general, nonconvex, we identify classes of convex problems that arise in the design of symmetric systems, undirected consensus and synchronization networks, optimal selection of sensors and actuators, and decentralized control of positive systems. Examples of consensus networks, drug therapy design, sensor selection in flexible wing aircrafts, and optimal wide-area control of power systems are provided to demonstrate the effectiveness of the framework.