Virtualization in the cloud: techniques and technologies

Lecture illustration

Mathieu Bacou

Télécom SudParis, IMT, IP Paris, Inria

2024–2025 CSC5004 — Cloud Computing Infrastructures

Notions

  • Technologies that run the cloud
    • Virtualization, virtual machines (QEMU/KVM)…
    • Containers (Docker), orchestrators (Kubernetes), micro-services…
    • Serverless, Function-as-a-Service (Apache OpenWhisk)…
  • Techniques to run on the cloud
    • Application architecture
    • Availability, scalability, security…
  • Systems point of view

Outline

  1. Hardware virtualization
    1. What is virtualization?
    2. VMs and hypervisors
    3. Demo: QEMU/KVM
    4. VM management with libvirt
    5. Virtualization for the cloud
    6. Internals of an hypervisor
  • Lab: VM management with libvirt
  1. Operating System-level Virtualization
    1. VMs are hard
    2. Containers and container engines
    3. Demo: Docker
    4. Dockerfile
    5. Internals of Docker Engine
    6. Demo: namespaces & cgroups
    7. Containers for the cloud: micro-services
    8. Containers for the cloud: orchestration
    9. Demo: Kubernetes
    10. deployment.yaml
  • Lab: Simple Container Engine
  1. Serverless Computing
    1. Containers are hard
    2. Backend-as-a-Service
    3. Function-as-a-Service
    4. Demo: Apache OpenWhisk
    5. Application architecture
    6. Internals of Apache OpenWhisk
    7. Limits
  • Lab: Initiation to Apache OpenWhisk
  • Lab: Scaling Horizontally a Web Service, Revisited

Resources

  • Class website: https://www-inf.telecom-sudparis.eu/COURS/CSC5004/
    • Sources of demos
    • Labs
    • Lectures
  • References:
    • Hardware virtualization: Mastering KVM Virtualization, 2nd edition. Dakic et al., 2020.
    • Operating system-level virtualization: Docker: Pratique des architectures à base de conteneurs. Cloux et al., 2016. [Fr.]
    • General: Linux Containers and Virtualization: A Kernel Perspective. Jain, 2020.

Further readings

Hardware virtualization

  • Memory resource management in VMware ESX server. Waldspurger. In OSDI 2002.
  • Xen and the Art of Virtualization. Barham, Dragovic, Fraser, Hand, Harris, Ho, Neugebauer, Pratt, Warfield. In SOSP 2003.
  • kvm: the Linux Virtual Machine Monitor. Kivity, Kamay, Laor, Lublin, Liguori. In Linux Symposium 2007.
  • Unikernels: library operating systems for the cloud. Madhavapeddy, Mortier, Rotsos, Scott, Singh, Gazagnaire, Smith, Hand, Crowcroft. In SIGARCH 2013.
  • My VM is Lighter (and Safer) than your Container. Manco, Lupu, Schmidt, Mendes, Kuenzer, Sati, Yasukata, Raiciu, Huici. In SOSP 2017.
  • GiantVM: a type-II hypervisor implementing many-to-one virtualization. Zhang, Ding, Chen, Jia, Yu, Qi, Guan. In VEE 2020.
  • Firecracker: Lightweight Virtualization for Serverless Applications. Agache, Brooker, Florescu, Iordache, Liguori, Neugebauer, Piwonka, Popa. In NSDI 2020.

Serverless

  • SAND: Towards High-Performance Serverless Computing. Akkus, Chen, Rimac, Stein, Satzke, Beck, Aditya, Hilt. In USENIX ATC 2018.
  • From Laptop to Lambda: Outsourcing Everyday Jobs to Thousands of Transient Functional Containers. Fouladi, Romero, Iter, Li, Chatterjee, Kozyrakis, Zaharia, Winstein. In USENIX ATC 2019.
  • Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing. Shillaker, Pietzuch. In USENIX ATC 2020.
  • SONIC: Application-aware Data Passing for Chained Serverless Applications. Mahgoub, University; Shankar, Mitra, Klimovic, Chaterji Saurabh Bagchi. In USENIX ATC 2021.
  • Nightcore: efficient and scalable serverless computing for latency-sensitive, interactive microservices. Jia, Witchel. In ASPLOS 2021.
  • BeeHive: Sub-second Elasticity for Web Services with Semi-FaaS Execution. Zhao, Wu, Tang, Zang, Wang, Chen. In ASPLOS 2023.

Other topics

  • Memory management, storage, networking, power management…
  • Operating systems, distributed systems…
  • Security, reliability, availability…
  • Programming models, orchestration…