Virtualizacion

CLOUD COMPUTING

CLOUD COMPUTING

Virtual es algo que no existe.

 

Virtualización es un entorno virtual de recursos informáticos.

 

Es una tecnología fundamental del cloud computing.

Virtualización

CLOUD COMPUTING

"Virtualización es la creación a través de software de una versión virtual de algún recurso tecnológico.

Dicho de otra manera, se refiere a la abstracción de los recursos de una computadora, llamada HIPERVISOR, que crea una capa de abstracción entre el hardware de la máquina física (host) y el sistema operativo de la máquina virtual"

Wikipedia

Virtualización

Linux puede funcionar como un hipervisor de virtualización a través de tecnologías como KVM (Kernel-based Virtual Machine). KVM permite que el kernel de Linux actúe como un hipervisor de tipo 1, lo que significa que puede gestionar múltiples máquinas virtuales (VM) directamente sobre el hardware del sistema.

Virtualización

La gestión de VM se realiza mediante herramientas como libvirt o proxmox

Emulación:  QEMU (Quick Emulator) es un emulador y virtualizador de código abierto que permite ejecutar sistemas operativos y aplicaciones en diferentes arquitecturas de hardware [x86, ARM, PowerPC, MIPS, etc.]

 

QEMU + KVM proporciona gestión de VM para virtualización completa.

Virtualización

Virtualización

Virtualización

Sistema Operativo

Virtualización

Sistema Operativo

Hipervisor

Virtualización

Sistema Operativo

Hipervisor

HW

Virtualización

Sistema Operativo

Hipervisor

HW

SO

Virtualización

Sistema Operativo

Hipervisor

App

HW

SO

Virtualización

Sistema Operativo

Hipervisor

App

HW

SO

App

App

Virtualización

Sistema Operativo

Hipervisor

App

HW

SO

App

App

App

HW

SO

App

App

App

HW

SO

App

App

App

HW

SO

App

App

CLOUD COMPUTING

Virtualización Cloud Computing
Multiples copias de HW y SW en mismo equipo Acceso a demanda a recursos de HW y SW
Facil de desplegar el software de virtualización Un entorno de cloud es complicado de desplegar
Una autenticación antes de acceder a recursos virtualizados in situ. Cada recurso (API) verifica permisos del usuario que puede acceder desde cualquier lugar
Virtualización es más efectiva en costos. Cloud computing puede ser más costosa que virtualización.

Virtualizacion de sistema operativo

CLOUD COMPUTING

VPS

Los contenedores es un método de encapsular o aislar, a nivel de kernel, procesos y recursos en el sistema operativo de forma que no tengan contacto o posibilidad de conocer otros contenedores que están corriendo sobre el mismo sistema operativo.

Contenedores

Linux Containers (LXC) es una tecnología de virtualización que permite ejecutar múltiples sistemas Linux aislados (contenedores) en un solo host.

LXC proporciona un entorno semejante a VM, permite entornos Linux completos dentro del contenedor.

Contenedores

Sistema Operativo

Sistema Operativo

App

Sistema Operativo

App

App

App

App

Sistema Operativo

App

App

App

App

App

App

App

App

Sistema Operativo

App

App

App

App

App

App

App

App

App

App

Sistema Operativo

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

Sistema Operativo

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

IP

Sistema Operativo

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

IP

IP

IP

IP

Sistema Operativo

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

IP

IP

IP

IP

Contenedores

Sistema Operativo

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

IP

IP

IP

IP

Contenedores

Sistema Operativo

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

IP

IP

IP

IP

a

b

c

d

Virtualizacion vs. Contenedores

Virtualizacion vs. Contenedores

  • Distinto sistema operativo
  • VM corriendo en VM es difícil
  • Recursos reales fijos asignados
  • Sobreventa de HW virtual
  • Distinta versión de Linux
  • Máxima performance
  • Máxima densidad
  • Corre en VM
  • Recursos compartidos
  • Limitacion de HW por cuotas

Virtualizacion de sistema operativo

Ofrecidos en Internet como VPC (Virtual Private Server)
SON CONTENEDORES

  • LXC
  • OpenVZ
  • FreeBSD Jail
  • Solaris Zones

Término que necesita clarificación:

  • No es una VM
  • No es cualquier servidor en la nube

EJEMPLO USO CORRECTO:
https://vpsdime.com/linux-vps

CLOUD COMPUTING

Contenedores

Virtualizacion de sistema operativo

Contenedores

Unidad estándar de software que empaqueta el código y todas sus dependencias para que la aplicación se ejecute rápida y confiablemente en diferentes entornos de computación.

Open Containers Initiative (OCI)

Contenedores

Solomon Hykes en la conferencia PyCon Santa Clara de 2013

Contenedores

Sistema Operativo

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

App

IP

IP

IP

IP

a

b

c

d

Contenedores

Sistema Operativo

App

App

App

App

App

IP

IP

IP

IP

a

b

c

d

Contenedores

Sistema Operativo

App

App

App

App

IP

IP

IP

IP

a

b

c

d

IP

Virtual Bridge

Contenedores

Sistema Operativo

App

App

App

App

IP

IP

IP

IP

a

b

c

d

IP

Virtual Bridge

App

image

tools

Contenedores

Sistema Operativo

App

App

App

App

IP

IP

IP

IP

a

b

c

d

IP

Virtual Bridge

App

image

tools

runtime

OCS

OCS

Docker

docker command

docker daemon (API)

docker registry

cgroups

namespaces

filesystem

networking

Resource allocation:

  • dispositivos
  • scheduller
  • memoria
  • CPU

Resource issolation:

  • Tiempo compartido UTS
  • Comunicación procesos IPC
  • ID de procesos PID
  • Usuarios
  • Redes

Aislación

Capas + CoW 

Caching 

Snapshotting

Software Defined Network SDN

  • Host container
  • Bridge container
  • No network

Docker para desarrolladores:

  • asegura que las apps corren sin modificación en cualquier plataforma Docker
  • portabilidad entre plataformas: physical, virtual, cloud
  • despliegue consistente Development to Production
  • focalizar en escribir código en lugar de micro-administrar setup
  • acceso a un ecosistema de apps de fácil integración
  • libertad de usar, rehacer y redesplegar en lugar de actualizar y gestionar versiones

Docker para operaciones:

  • flexibilidad de elegir un sistema de despliegue para gestión de cargas de trabajo
  • reducción de número de sistemas a gestionar
  • herramientas built-in de administración, cluster y orquestación

Build

    Ship

       Run

Sobre esta presentación

CLOUD COMPUTING

Atribución 4.0 Internacional (CC BY 4.0)

https://creativecommons.org/licenses/by/4.0/deed.es