PA200 - Cloud Computing Concepts Petr Blaho, Ilya Etingof March 5, 2018 Virtualization Warm-up • What is cloud computing? • Cloud traits? • Cloud deployment models? What is cloud computing? 1. Usage model of computer resources 2. Networked computers 3. Distributed computing technology 4. A collection of heterogeneous computers Cloud traits? 1. High availability 2. On-demand self-service 3. High performance 4. Broad network access 5. Resource pooling 1 6. Rapid elasticity 7. Measured Service Cloud service models? 1. Software as a Service 2. Application as a Service 3. Platform as a Service 4. Infrastructure as a Service 5. Data as a Service Cloud deployment models 1. Public Cloud 2. Private Cloud 3. Hybrid Cloud 4. Personal Cloud 5. Community Cloud 6. Enterprise Cloud History of virtualization • How old is virtualization? History of virtualization • Early 1960: batch processing • 1967: first time-sharing system - IBM S/370-67 • 2005: Intel VT-x, AMD-V - new instruction set • 2005-: VMware, VirtualBox, KVM. . . 2 What exactly is virtualization? • Multi-programming vs multi-tasking • Multi-threading vs multi-tasking vs virtualization? • Containers vs OS virtualization • CPUs: Multi-core vs Hyper-threading How did virtualization work before 2005? • Well, sloooowly. . . • Basing on 80386 CPU features Is it cloud already? • What is virtualization? • What is cloud? Is it cloud already? • Hypervisors • Virtualization management and services Hypervisors • Native or bare-metal • Hosted 3 Hypervisors Full or para-virtualization • Full: unmodified OS on top of hypervisor • Para: modified OS calls hypervisor API Examples of native hypervisors • XEN • MS Hyper-V • VMware ESXi Examples of hosted hypervisors • QEMU • KVM • VirtualBox • VMware Workstation 4 • FreeBSD bhyve XEN • founded in 2003 by XenSource, bought in 2007 by Citrix • 2013 under Linux Foundation as Xen Project • native hypervisor ZEN KVM • Modular kernel virtualization • provides user space access to hw virtualization • started by Qumranet • 2007 merged into linux kernel 5 KVM QEMU • hosted hypervisor • provides CPU and/or hardware emulation • can be used with KVM (hardware-only emulation) QEMU • Other practical QEMU use-cases? 6 Type 1 vs type 2 confusion • Linux with KVM • FreeBSD with bhyve VM vs BM hypervisor • Hypervisor manages VMs • . . . as well as BMs Full vs para-virtualization • Full: run unmodified OS image • Para: OS explicitly calls hypervisor Para-virtualization • Why? Why is it called Hypervisor? • What’s behind the name? Virtualization management • Common API to different hypervisors • High-level VM lifecycle abstraction • Cloud services: networks, storage. . . Cloud services • OS image deployment • Centralized OS configuration • Automated network configuration 7 • Instance backup/snapshot/migration • Centralized user authentication • Centralized storage • User interface Examples of virtualization software • libvirt • oVirt • OpenStack Libvirt • Common API for hypervisor type abstraction supports • LXC • KVM/QEMU, Xen, VirtualBox • VMware ESXi and Workstation • MS Hyper-V, IBM PowerVM Libvirt 8 oVirt • Virtualization management platform • On top of KVM • Upstream for RHV • Engine • Node • VDSM - virtual desktop and server manager OpenStack • Software platform for cloud computing • Started in 2010 by Rackspace and NASA • In 2012 founded OpenStack Foundation OpenStack 9 OpenStack Hypervisors vs Containers • Hypervisors spawn VMs • Containers isolates apps to namespaces Example container software • Docker • LXC • OpenVZ • chroot Cloud features • Easy provisioning and configuration • Movable resource: snapshot/backup/live migration 10 • Consolidation of resources: scale up/down Cloud features • Isolation from host HW and OS • Virtual vs Physical machine monitoring • Easier testing and evaluation • Duplication of environments Recap: the age of virtualization? 1. IBM 700/7000, since 1952 2. CP-40 research project, early sixties 3. IBM S/370-67, 1966 4. Gameframes, since 2007 5. Intel VT-x, AMD-V, since 2005 Recap: virtualization technologies? 1. Multi-tasking 2. Multi-threading processes 3. Containers 4. Hyper-threading CPU 5. Multi-core CPU 6. Intel VT-x, AMD-V 7. Multi-programming 11 Recap: hypervisor types? 1. Hybryd 2. Bare-metal 3. Native 4. Hosted 5. Para-hypervisor Recap: what makes up a cloud? 1. One hypervisor 2. One or more hypervisors 3. Baremetal computers 4. Baremetal switches and routers 5. Networking service Recap: virtualization vs containers? 1. We can run OS in a container 2. We can run different OS’es in containers 3. We can run VM in a container 4. Containers are more secure than VM 5. Containers consume less resources than VM 6. We can run Windows app in Linux container Bonus question: matreshka cloud? • Can you run a cloud in a cloud? 12