  Fog computing is an emerging computing paradigm that uses processing and
storage capabilities located at the edge, in the cloud, and possibly in
between. Testing and benchmarking fog applications, however, is hard since
runtime infrastructure will typically be in use or may not exist, yet. While
approaches for the emulation of infrastructure testbeds do exist, their focus
is typically the emulation of edge devices. Other approaches also emulate
infrastructure within the core network or the cloud, but they miss support for
automated experiment orchestration.
  In this paper, we propose to evaluate fog applications on an emulated
infrastructure testbed created in the cloud which can be manipulated based on a
pre-defined orchestration schedule. Developers can freely design the
infrastructure, configure performance characteristics, manage application
components, and orchestrate their experiments. We also present our
proof-of-concept implementation MockFog 2.0. We use MockFog 2.0 to evaluate a
fog-based smart factory application and showcase how its features can be used
to study the impact of infrastructure changes and workload variations. With
these experiments, we also show that MockFog can achieve good experiment
reproducibility, even in a public cloud environment.
