Fog computing aims at extending the cloud towards the Internet of things so to achieve improved quality of service and to empower latency-sensitive and bandwidth-hungry applications. The fog calls for novel models and algorithms to distribute multiservice applications in such a way that data processing occurs wherever it is best placed, based on both functional and non-functional requirements. This survey reviews the existing methodologies to solve the application placement problem in the fog, while pursuing three main objectives. First, it offers a comprehensive overview on the currently employed algorithms, on the availability of open-source prototypes and on the size of test use cases. Second, it classifies the literature based on the application and fog infrastructure characteristics that are captured by available models, with a focus on the considered constraints and the optimized metrics. Finally, it identifies some open challenges in application placement in the fog.