  Cloud computing has been emerged in the last decade to enable utility-based
computing resource management without purchasing hardware equipment. Cloud
providers run multiple data centers in various locations to manage and
provision the Cloud resources to their customers. More recently, the
introduction of Software-Defined Networking (SDN) and Network Function
Virtualization (NFV) opens more opportunities in Clouds which enables dynamic
and autonomic configuration and provisioning of the resources in Cloud data
centers. This paper proposes architectural framework and principles for
Programmable Network Clouds hosting SDNs and NFVs for geographically
distributed Multi-Cloud computing environments. Cost and SLA-aware resource
provisioning and scheduling that minimizes the operating cost without violating
the negotiated SLAs are investigated and discussed in regards of techniques for
autonomic and timely VNF composition, deployment and management across multiple
Clouds. We also discuss open challenges and directions for creating
auto-scaling solutions for performance optimization of VNFs using analytics and
monitoring techniques, algorithms for SDN controller for scalable traffic and
deployment management. The simulation platform and the proof-of-concept
prototype are presented with initial evaluation results.
