An adaptive scaling mechanism for managing performance variations in network functions virtualization: A case study in an NFV-based EPC