PA200 - Cloud Computing Concepts
Petr Blaho, Ilya Etingof
Created: 2018-03-05 Mon 22:44
Warm-up
- What is cloud computing?
- Cloud traits?
- Cloud deployment models?
What is cloud computing?
- Usage model of computer resources
- Networked computers
- Distributed computing technology
- A collection of heterogeneous computers
Cloud traits?
- High availability
- On-demand self-service
- High performance
- Broad network access
- Resource pooling
- Rapid elasticity
- Measured Service
Cloud service models?
- Software as a Service
- Application as a Service
- Platform as a Service
- Infrastructure as a Service
- Data as a Service
Cloud deployment models
- Public Cloud
- Private Cloud
- Hybrid Cloud
- Personal Cloud
- Community Cloud
- 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…
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
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
- FreeBSD bhyve
XEN
- founded in 2003 by XenSource, bought in 2007 by Citrix
- 2013 under Linux Foundation as Xen Project
- native hypervisor
KVM
- Modular kernel virtualization
- provides user space access to hw virtualization
- started by Qumranet
- 2007 merged into linux kernel
QEMU
- hosted hypervisor
- provides CPU and/or hardware emulation
- can be used with KVM (hardware-only emulation)
QEMU
- Other practical QEMU use-cases?
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
Why is it called Hypervisor?
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
- Instance backup/snapshot/migration
- Centralized user authentication
- Centralized storage
- User interface
Examples of virtualization software
Libvirt
- Common API for hypervisor type abstraction supports
- LXC
- KVM/QEMU, Xen, VirtualBox
- VMware ESXi and Workstation
- MS Hyper-V, IBM PowerVM
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
Hypervisors vs Containers
- Hypervisors spawn VMs
- Containers isolates apps to namespaces
Example container software
Cloud features
- Easy provisioning and configuration
- Movable resource: snapshot/backup/live migration
- 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?
- IBM 700/7000, since 1952
- CP-40 research project, early sixties
- IBM S/370-67, 1966
- Gameframes, since 2007
- Intel VT-x, AMD-V, since 2005
Recap: virtualization technologies?
- Multi-tasking
- Multi-threading processes
- Containers
- Hyper-threading CPU
- Multi-core CPU
- Intel VT-x, AMD-V
- Multi-programming
Recap: hypervisor types?
- Hybryd
- Bare-metal
- Native
- Hosted
- Para-hypervisor
Recap: what makes up a cloud?
- One hypervisor
- One or more hypervisors
- Baremetal computers
- Baremetal switches and routers
- Networking service
Recap: virtualization vs containers?
- We can run OS in a container
- We can run different OS'es in containers
- We can run VM in a container
- Containers are more secure than VM
- Containers consume less resources than VM
- We can run Windows app in Linux container
Bonus question: matreshka cloud?
- Can you run a cloud in a cloud?