A Smart Service Manager is proposed to direct user requests (such as those coming from IoT devices) at the edge
towards appropriate servers where the requested services can be satisfied. Services are housed at different Fog locations, and the system is subject to variations in workload. The approach is based on using a Software Defined Network (SDN) controller as the means to take decisions with 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 with time-varying loads that confirm its ability to adapt to significant changes in system load and preserve the users’ Quality of Service.