Virtualization

Learning outcomes:

  • Able to describe the advantages and disadvantages of virtualization resources for tasks such as snapshots/backups
  • Able to describe what Infrastructure as a Service (IaaS) and Infrastructure as Code (IaC) are used for and the importance of them

Would you like to download my PowerPoint to follow along?

  • Why Virtualize?
    • According to Cisco's 2021 Networking reportResilience is one of the top important trends of 2022, because of the pandemic 7 out of 10 companies have experienced at least 1 severe crisis and 95% think it won't be their last
    • Remote work and Work from Home (WFH) has been a huge trend in the last couple years which means all the infrastructure needs to be scaled and flexible to respond
    • Automation is a trend to help deal with fewer people in the workforce, and higher demands of IT professionals, including server provisioning, configuration and management. This also helps improve compliance which is becoming more regulated.
    • Next trend on the horizon is AI and Machine learning
  • Virtualization Statistics
    • Global server virtualization market is around 7 billion, expected to grow to 10 billion by 2026
    • Server virtualization market was 7billion in 2020
    • Desktop virtualization market predicted to be 12billion by 2026
    • The average hourly cost of critical server outages is between 300,000-400,000USD in 2020
    • AWS is 33% of the cloud market share Q1 2022
    • Global cloud applications market is valued at 133.6 billion, expected to reach 168.6 billion by 2025. Annual compound growth rate expected to be 4.8%
    • About a half of companies' IT budget goes to cloud services, up from 1/3 3 years ago
  • Virtualization Vocab
    • Host - The computer running the VM
    • Guest - The VM (Virtual Machine)
    • Hypervisor - Software that manages multiple OS on a single system
    • Snapshot - An image of a VM that you can go back to, like a save state
    • Hardware Virtualization - Hardware virtualization means you have a VM acting like a real computer
      • Full virtualization means an almost complete mimicry of the hardware, applications don't need to be modified to run
      • Paravirtualization runs applications in isolated domains, hardware isn't mimicked, applications must be modified to run
      • Hardware-assisted virtualization added in 2006-ish also referred to as accelerated virtualization
    • How server Virtualization Works
  • Virtual vs Physical servers
    • Virtual Servers
      • Pros
        • Smaller upfront cost (no hardware purchase or decision needed)
        • Depending on needs can be cheaper over the lifetime of the server
        • Potential for expert assistance or on-call support
        • Reduced in house IT staff
      • Cons
        • Potential for higher monthly costs instead of initial investment
        • Potential application compatibility issues, might have vendor lock-in
        • Not all vendors can work with virtualized servers (Rapidly Changing)
        • Not in control of your physical server or what's running on it
    • Physical Servers
      • Pros
        • Dedicated resources (mission critical systems)
        • Potentially convenient physical location
        • Fully Customizable
      • Cons
        • $$$ for server, Maintenance and hardware replacements
        • IT staff responsible for setup, config and Maintenance
        • Contractor/consultant might be needed with config/repairs depending on your IT staff
        • Hard to scale because you're purchasing your own hardware
        • Needs physical space
  • How to manage VMs in house
    • Most servers sold now are investments ($$$) and have multiple cores. If you're running more than 1 server virtualization makes your life easier
    • You'll need to dedicate hardware resources (but not as much as you might think) to the host machine. Servers tend to be idle a lot and therefore don't need a ton of resources.
    • Caution: This works for small load machines and things that don't need to be getting tons of hits, and are not mission critical, think about what your company/you need and what happens if the law of averages comes back for you. Also, Databases are beasts
    • Software such as VMWare, Hyper-V (MS) or Citrix XenServer will help you manage your virtual servers
  • General Virtualization Management
    • Snapshots capture the state of your Virtual machine at a point in time. Which you can then go back to.
    • Migration means we can move those snapshots to another host
    • Failover allows your VM to continue working if the host fails. Failover goes back to the last working state, which isn't necessarily the point in time at which the failure happened
  • Nested Virtualization
    • At this point in time, seriously, just use containers.
    • Virtualization inside a virtual environment
      • Running a Hypervisor inside a virtual machine
      • Running a hypervisor inside a hypervisor
      • Main level Hypervisor is Level 0 or L0
      • Hypervisor running inside the VM is level 1 or L1
      • Can continue to have levels L2, L3..,
  • Infrastructure as a Service(IaaS)
    • You can rent hardware as needed. Some services also allow software to be rented.
    • Allows you to outsource your computer infrastructure rather than maintain in house
    • Relates to SaaS (Software as a Service) and PaaS (Platform as a Service)
    • Smaller companies might not have the $$ or space to host a whole infrastructure
    • Gives a more reliable billing schedule (monthly rather than needing to buy hardware)
    • Can have reliability guarantees in house infrastructure won't have
  • Cloud
    • On demand availability of resources. Generally rentable through vendors, or sometimes offered free in small amounts.
      • Enterprise Cloud for a single organization
      • Public cloud available to many companies
    • Cloud tries to take advantage of economies of scale, I.e. cheaper to buy in bulk
    • Allows a pay as you go model, monthly pricing, or paying for services as needed which can give reliable bills to surprise bills depending on your company and agreement with your cloud provider
      • Gets further into the as a Service model (PaaS, SaaS, BaaS ans XaaS)
      • BaaS is backend as a service
      • XaaS is everything as a service
  • Infrastructure as Code (IaC)
    • Idea comes from scaling issues
    • Manage and provision computers through (machine readable) files instead of configs.
    • Includes both physical resources and virtual machines and its resources.
    • Can use a version control style system to hold the definitions of the infrastructure
    • Being able to model infrastructure with code, then working with it using software design best practices is popular
    • Shareability is also useful, for example if you need to set up an Apache Server you can find a recipe to do it
    • Pros include reduction of costs (setup and maintenance) speed and reduced risk (automation and programs have less human error) Allows your team to focus on things besides infrastructure maintenance
    • IaC by RedHat
    • IaC by Microsoft
    • IaC by AWS
  • How to use and work with IaC
    • Declarative approach - What is your target configuration?
    • Imperative approach - How do we change to get to the target?
    • Intelligent approach - Why the configuration needs to be a certain way to get to the target while keeping relationships of apps in mind
    • Pull method - Server will pull configuration from controlling server
    • Push method - Controlling server pushes the configuration to the destination
    • Continuous configuration automation tools are frameworks to base off of
    • Also a way to support best practices in DevOps, get the devs involved with the config process and so they know more about the servers being created and maintained
  • Configurations of IaC
    • Setup - List of what you need to do to get the system ready, such as installing packages
      • Some examples of ways you can do this include: Chef, Puppet and Ansible
    • Provisioning - Describing what you need to provision (spin up your VM) in your infrastructure
      • Some examples of ways you can do this include: Terraform and CloudFormation(AWS specific). Other cloud providers may have specific ones they use

Suggested Activities and Discussion Topics:

  • Pick one of the following products. Research the product/Vendor, pros and cons, and make an executive summary of your recommendation for Acme Corp.
    • Chef
    • Puppet
    • Ansible
    • SaltStack
    • CFEngine
  • You've been tasked by your team to decide which IaaS we should use. Break into teams and research the following options. Make a list of pros and cons, and have a 1 page executive summary of if you think your IaaS is a good fit for Acme Corp (You can decide what Acme Corp needs)
    • AWS
    • IBM Cloud
    • Oracle Cloud
    • Google Cloud
    • Azure
    • Digital Ocean
    • Wasabi
  • You've been tasked by your team to decide which VM software we should use. Research the following options. Make a list of pros and cons for each, and have a 1 page executive summary of if you think your software is a good fit for Acme Corp (You can decide what Acme Corp needs)
    • Citrix
    • VMWare (Both ESXI and VSphere)
    • Hyper-V
    • KVM

Would you like to see some more classes? Click here