Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 15

Virtualization

• Virtualization is the process of running a virtual instance of a


computer system in a layer abstracted from the actual
hardware. Most commonly, it refers to running multiple
operating systems on a computer system simultaneously.
• Full-Virtualization
• A hypervisor is a specialized type of software that is necessary for full server
virtualization. There are many different hypervisors available, so make sure
to compare your requirements with available features before finalizing a
purchase. Hypervisors function by communicating with servers to monitor
disk space and CPU usage. The software can then allocate resources as
needed across multiple virtual server deployments. Computing power can
even be shared across various operating systems with ease without
sacrificing efficiency. Hypervisors do require a set amount of dedicated
server resources to operate, limiting overall server power. When utilizing full
virtualization, the separate server instances will not need to be aware of each
other.
• Virtual machines (VMs) are a technology for building virtualized
computing environments. They have been around for quite a while and are
considered the foundation of the first generation of cloud computing.
• Simply put, a virtual machine is an emulation of a physical
computer. VMs enable teams to run what appear to be multiple machines,
with multiple operating systems, on a single computer. VMs interact with
physical computers by using lightweight software layers
called hypervisors. Hypervisors can separate VMs from one another and
allocate processors, memory, and storage among them.
• VMs are also known as virtual servers, virtual server instances and virtual
private servers.
• What are containers?
• Containers are a lighter-weight, more agile way of handling virtualization — since
they don't use a hypervisor, you can enjoy faster resource provisioning and speedier
availability of new applications. 
• Rather than spinning up an entire virtual machine, containerization packages together
everything needed to run a single application or microservice (along
with runtime libraries they need to run). The container includes all the code,
its dependencies and even the operating system itself. This enables applications to run
almost anywhere — a desktop computer, a traditional IT infrastructure or the cloud.
• Containers use a form of operating system (OS) virtualization. Put simply, they
leverage features of the host operating system to isolate processes and control the
processes’ access to CPUs, memory and desk space.
A container is an isolated, lightweight for running an application on the host operating
system. Containers build on top of the host operating system's kernel (which can be thought
of as the buried plumbing of the operating system), and contain only apps and some
lightweight operating system APIs and services that run in user mode, as shown in this
diagram.
• Docker is a set of platform as a service products that use OS-
level virtualization to deliver software in packages called contain

• https://youtu.be/A0g7I4A6GN4
• https://youtu.be/tuyq3H4EXL0
• In contrast to containers, VMs run a complete operating
system–including its own kernel–as shown in this diagram.
Kubernetes vs docker

The conversation around Kubernetes vs. Docker is often framed
as either-or: should I use Kubernetes or Docker? This is like
comparing apples to apple pie, and it’s a common
misconception that you must choose one or the other.
• The difference between Kubernetes and Docker is more easily
understood when framed as a “both-and” question. The fact is,
you don’t have to choose—Kubernetes and Docker are
fundamentally different technologies that work well together for
building, delivering, and scaling containerized apps.
• Docker is open-source technology—and a container file format—for automating the
deployment of applications as portable, self-sufficient containers that can run in the cloud or
on-premises. Docker, Inc., although it shares a similar name, is one of the companies that
cultivates the open-source Docker technology to run on Linux and Windows in collaboration
with cloud providers like Microsoft.
• While the idea of isolating environments is not new and there are other types of
containerization software, Docker has grown to be the default container format in recent years.
Docker features the Docker Engine, which is a runtime environment. It allows you to build and
run containers on any development machine; then store or share container images through a
container registry like Docker Hub or Azure Container Registry.
• As applications grow to span multiple containers deployed across multiple servers, operating
them becomes more complex. While Docker provides an open standard for packaging and
distributing containerized apps, the potential complexities can add up fast. How do you
coordinate and schedule many containers? How do all the different containers in your app talk
to each other? How do you scale many container instances? This is where Kubernetes can help.
• Kubernetes is open-source orchestration software that provides an API
to control how and where those containers will run. It allows you to run
your Docker containers and workloads and helps you to tackle some of
the operating complexities when moving to scale multiple containers,
deployed across multiple servers.
• Kubernetes lets you orchestrate a cluster of virtual machines and
schedule containers to run on those virtual machines based on their
available compute resources and the resource requirements of each
container. Containers are grouped into pods, the basic operational unit
for Kubernetes. These containers and pods can be scaled to your desired
state and you’re able to manage their lifecycle to keep your apps up and
running.
• While the promise of containers is to code once and run
anywhere, Kubernetes provides the potential to orchestrate and
manage all your container resources from a single control plane.
It helps with networking, load-balancing, security, and scaling
across all Kubernetes nodes which runs your containers.

You might also like