Abstract-Fog computing aims at extending the Cloud by bringing computational power, storage and communication capabilities to the edge of the network, in support of the IoT. Segmentation, distribution and adaptive deployment of functionalities over the continuum from Things to Cloud are challenging tasks, due to the intrinsic heterogeneity, hierarchical structure and very large scale infrastructure they will have to exploit.In this paper we propose a simple, yet general, model to support the QoS-aware deployment of multi-component IoT applications over Fog infrastructures. The model describes operational systemic qualities of the available infrastructure (latency and bandwidth), interactions among software components and Things, and business policies. Algorithms to determine eligible deployment plans for an application over a Fog infrastructure are presented. A Java tool, FogTorch, based on the proposed model has been prototyped.