 there are open source communities formed in the network service area. In this chapter, we summarize their activities, relationships, limitations, and future directions. Virtualization and Cloud Computing Cloud Computing Cloud computing has become a widely used computing model to support cost-effective and efficient data processing using commodity servers. Cloud computing makes effective use of distributed environ- ments for tackling large-scale computation problems on vast data set. There are multiple challenges with cloud computing, such as vir- tualization, isolation, performance, scalability, privacy, and security. In this section, we first provide an overview of the architecture of cloud computing. Then, we will go deeper into various virtualization technologies and focus on the network virtualization. 2.1.1 Architecture Public cloud providers use an on-demand, pay-as-you-go model of compute and storage infrastructure as well as platform services. Ama- zon Web Services (AWS) led the early cloud computing revolution, beginning with their S3 service in 2006. Their services have been adopted by companies large and small, from backups and archival storage in S3, to compute in EC2, Virtual Private Clouds, IAM autho- rization and authentication, and RDS managed databases, to name a few. For customers, these services are easy to add, easy to consume, and can lead to a sprawling, poorly documented infrastructure. Cloud computing can be viewed as a layering architecture, as shown in Figure 2.1. Network Function Virtualization: Concepts and Applicability in 5G Networks, First Edition. Ying Zhang. © 2018 John Wiley & Sons, Inc. Published 2018 by John Wiley & Sons, Inc. 2 Virtualization and Cloud Computing Software as a service (SaaS) (applications) Platform as a service (PaaS) (software frameworks, storage) Infrastructure as a service (laaS) Hardware as a service (CPU, memory, disk, network) Figure 2.1 Cloud computing architecture. The hardware layer includes the physical resources in the cloud, that is, the hosting fa