  The Fog computing paradigm utilises distributed, heterogeneous and
resource-constrained devices at the edge of the network for efficient
deployment of latency-critical and bandwidth-hungry IoT application services.
Moreover, MicroService Architecture (MSA) is increasingly adopted to keep up
with the rapid development and deployment needs of fast-evolving IoT
applications. Due to the fine-grained modularity of the microservices and their
independently deployable and scalable nature, MSA exhibits great potential in
harnessing Fog and Cloud resources, thus giving rise to novel paradigms like
Osmotic computing. The loosely coupled nature of the microservices, aided by
the container orchestrators and service mesh technologies, enables the dynamic
composition of distributed and scalable microservices to achieve diverse
performance requirements of the IoT applications using distributed Fog
resources. To this end, efficient placement of microservice plays a vital role,
and scalable placement algorithms are required to utilise the said
characteristics of the MSA while overcoming novel challenges introduced by the
architecture. Thus, we present a comprehensive taxonomy of recent literature on
microservices-based IoT applications placement within Fog computing
environments. Furthermore, we organise multiple taxonomies to capture the main
aspects of the placement problem, analyse and classify related works, identify
research gaps within each category, and discuss future research directions.
