STCLOUD_hypervisors 1 and 2, containers review, virtualization vs cloud comp table
This note has not been edited yet.
Hypervisors Review
- traditional computing → physical computer, dedicated system
- hypervisors do the translation and abstraction that we use and enables virtualization to happen/occur
- virtualization → the technology
- hypervisor → the one that performs the translation/abstraction, "translate or convert the hardware into a software" (something physical to virtual)
- cloud computing → usage of virtualization
Benefits
- Speed - VMs can be created instantly, can provision resources needed for dynamic workloads
- Efficiency - easier time in terms of management, run several VMs on a physical machine is more efficient than multiple underutilized physical machines
- Flexibility - separates OS from the underlying hardware
- Portability
Type 1 and 2
- type 1 → bare metal (OS being installed on hardware) or native hypervisors
- VM is the guest OS
- better performance
- lightweight OS (host OS/hypervisor OS) directly running on top of the host machine
- type 2 → hosted or client hypervisor
- runs as an application/software ON an OS
- can run the same or different guest OS
- VM <→ hypervisor <→ host OS <→ hardware (more layers of abstraction)
- bc of that there's more latency
- bare-metal server is a traditional, PHYSICAL computer
Containers Review
- compute-based resources
- containers are OS virtualization while VMs are more HW virtualization
- containers virtualize the OS so you can focus on the applications
- use a part of the kernel portion from the host operating system (SHARES a bit of the host kernel)
- the OS Sy/app is created from the container engine (parang hinati lang ung OS)
- this is why containers will be the same OS as the host computer
- VMs virtualize the computer themselves → for the OS and above (kasama din ung apps)
- you might want a separate OS for better isolation
- may be more resource-heavy
- if you're focused on the application only → use containers
- if the solution needs OS changes and other configurations not available in containers → go for VMs
- containers will be more lightweight
Summary for VM vs Containers
- in containers, you don't have to boot up the kernel every time because it's sharing the host's kernel → it's already running
- in VMs, it will take longer to boot it up because it has to configure the kernel, the RAM, etc.
- containers are used more for applications (running, developing, deploying)
- more configurability over the system requires more of a VM → focused more on anything you can do with the OS and above (applications, patching, etc.)
Container vs Hypervisor
- containers are focused on packaging an application and services → app development and deployment
- containers can virtualize servers or desktops but the goal and the level of abstraction will be different. VMs will have a desktop interface. containers will have a command interface (double check this lang in case)
- containers you can only mess with the apps and the binaries
Different layers of virtualization or abstraction
- app virtualization → App (literally just the app installation, not even dependencies) → no installation even
- container → OS (operating system) ⇉ install the app ⇉ has OS (shared with host OS)
- virtual machines → hardware ⇉ has OS
VM and CT can deploy servers and desktop
it all depends on "what level of configurability do you need?"
Virtualization vs Cloud Computing
Virtualization | ← Cloud | |
---|---|---|
Definition | Technology | Methodology (the usage of virtualization) |
Purpose | Create multiple simulated environments from 1 physical hardware system (physical as virtual resources) | Pool and automate virtual resources for on-demand use ("use" hints that cloud is a methodology) |
Use | Deliver packaged resources to specific users for a specific purpose (bc it's managed by a single entity/organization) | Deliver variable resources to groups of users for a variety of purposes |
Configuration | Image-based (individual) | Template-based (pre-built, pre-configured devices → makes it easier for people) |
Lifespan | years (long-term) | hours to months (short-term) → subscription + scaling |
Cost | High capital expenditures (CAPEX), low operating expenses (OPEX) | private cloud: high CAPEX low OPEX while public cloud: low CAPEX, high OPEX |
Scalability | Scale up/Vertical (increase the amount of resources, same computer with more resources) | Scale out/horizontal scaling (add more physical servers) |
Workload | Stateful (fixed and predictable, single owner, you know the purpose) | Stateless (resource utilization is unpredictable use, cloud is not owned by a single person) |
Tenancy | Single tenant | Multiple tenant |
- cloud lifespan: if the baseline is 2 servers, you can temporarily add x new servers just for certain months to accommodate the amount of customers → because it's subscription
Costs
-
you buy a server then your monthly expenses will be cheaper
-
CAPEX: upfront costs → laptop is a CAPEX, a car is a CAPEX, renovation is CAPEX; one big chunk of money you pay at the start
- the cloud is costing in
-
OPEX: the monthly/daily expenses like salary, rent, utilities, and other monthly payments (the monthly payment for cloud is higher than virtualization because in virtualization, you already invested a lot of money at the start)
-
private cloud → usage of virtualization in a private setting lang
-
public cloud → rental and subscription, you pay at the end of the month
Cloud Computing (AWS Module 1: Cloud Concepts Overview)