We present a smart Service Manager whose role is
to direct user requests (such as those coming from IoT devices)
at the edge towards appropriate servers where the services they
request can be satisfied, when services can be housed at different
Fog locations, and the system is subject to variations in workload.
The approach we propose is based on using an SDN controller as
a decision element, and to incorporate measurement data based
machine learning that uses Reinforcement Learning to make the
best choices. The system we have developed is illustrated with
experimental results on a test-bed in the presence of time-varying
loads at the servers. The experiments confirm the ability of the
system to adapt to significant changes in system load so as to
preserve the QoS perceived by end users.