|Software Defined Networking (SDN) has emerged as a promising solution to revolutionize network deployment, operations and economic growth. This paradigm aims to address management and configuration complexities in legacy networks so as to reduce the total cost associated with deploying and running telecommunication infrastructures. At the heart of SDN is a controller which oversees orchestration of resources. An important problem that must be addressed during the initial design of an SDN-based network deployment is to find the optimal number of controllers and their locations, to achieve desired operational efficiency. This problem constitutes competing objectives such as latency, load balancing, and reliability. We apply Silhouette Analysis, Gap Statistics and the Partition Around Medoids (PAM) algorithms and, unlike previous work, we add a new method for solving the controller placement problem using an emulation orchestration platform. Our approach aims to optimize controller-to-node latency, alleviate control-plane signalling overhead and ensure control-plane resiliency. Our results for South African national research network (SANReN) reveal that deploying two controllers yields the lowest latency, reduces control-plane signalling overhead and guarantees control-plane resiliency. Our approach can be used by network operators as a guideline to start integrating SDN or plan a new SDN deployment, by helping them make quick automatic decisions regarding optimal controller placement.