You are on page 1of 16

CONTINGUTS EXTRA UF1.

E1 VIRTUALITZACIÓ
− E.1A Virtualització. Definicions i tipus.
■ Maquines Virtuals de procés
■ Maquines Virtuals de sistema
■ Maquines Virtuals de procés en el sistema operatiu (contenidors).
− E.1B Virtualització per contenidors i docker.

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 1


2022-2023 E1 Virtualització
E.1 Virtualització.

E.1 Virtualització.

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 2


2022-2023 E1 Virtualització
E.1A Virtualització. Definicions i tipus.
La virtualització consisteix en l’abstracció dels recursos de la màquina
per poder-ne utilitzar els que sobren i crear màquines virtuals que
utilitzen aquest maquinari (hardware) com si estigués perfectament
lliure.

A partir de la virtualització es pot compartir una màquina física per


executar diverses màquines virtuals, de manera que aquestes
comparteixen els recursos lliures de la màquina com la CPU, la
memòria, el disc i la connexió de xarxa que d’altra manera estarien
lliures esperant un pic de feina. A més a més, la virtualització permet
utilitzar aquestes màquines virtuals amb independència del maquinari.
Això s’aconsegueix ocultant els detalls tècnics mitjançant el mètode de
l’encapsulació.

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 3


2022-2023 E1 Virtualització
E.1A Virtualització. Definicions i tipus.
Màquina virtual (MV): és un programari que emula una computadora i
pot executar programes com si fos una computadora real.

MV de procés: es virtualitzen només determinats processos. Permet


simular com executaria un altre S.O. un determinat procés.

MV de sistema: permeten allotjar tot un sistema operatiu hoste gràcies


al programari amfitrió de la màquina virtual.

MV en el sistema operatiu (contenidors): virtualitzen el kernel d’un


sistema operatiu permetent crear diverses instàncies d’espais d’usuari,
conegudes com a contenidors totalment aïllades i que permeten que
algunes parts del S.O. i aplicacions es comparteixin altres no.

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 4


2022-2023 E1 Virtualització
E.1A Virtualització. Definicions i tipus.
MV de procés, exemple 1
MAQUINARI Aplicació
simulant
un altre

SO INSTAL·LAT (Linux)
S.O.
(exemple Aplicació
Wine) en binari
compilada
per
CPU Windows
Ut control
Ut Lògica

(RAM)

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 5


2022-2023 E1 Virtualització
E.1A Virtualització. Definicions i tipus.
MV de procés, exemple 2
MAQUINARI Codi del Compilador Aplicació
programa per MV. de en binari

SO INSTAL·LAT (Windows)
Java per MV
Java

Aplicació
MV. de
Java per
Windows
CPU
Ut control
Aplicació MV. de
Ut Lògica
Java per Linux
MAQ 3 SO
(RAM) MAQ 2 SO Linux Windows
@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 6
2022-2023 E1 Virtualització
E.1A Virtualització. Definicions i tipus.
MV de sistema, clàssiques
MAQUINARI L’hipervisor corre directament
sobre el maquinari
APLICACIONS

S.O. 1
V.M. 1
S.O. 1

HIPERVISOR TIPUS I
(ESX, VmWare, etc.) APLICACIONS

S.O. 2
V.M. 2
S.O. 2
CPU
Ut control
APLICACIONS
S.O. 3
V.M. 3
Ut Lògica
S.O. 3
(RAM)

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 7


2022-2023 E1 Virtualització
E.1A Virtualització. Definicions i tipus.
MV de sistema, indirectes
MAQUINARI APLICACIONS NORMALS
INSTAL·LADES AL S.O. HOSTE

(VirtualBox, VmWare, KVM,


APPS

S.O. 1
V.M. 1
Microsoft Virtual PC, etc.)

Guest
HIPERVISOR TIPUS II
S.O. 1
SO HOST

CPU APPS

S.O. 2
V.M. 2

Guest
Ut control S.O. 2

Ut Lògica

(RAM)

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 8


2022-2023 E1 Virtualització
E.1A Virtualització. Definicions i tipus.
MV en el sistema operatiu (contenidors)

Conten.1
MAQUINARI
APP 1

GESTOR DE CONTENIDORS
(Docker, Solaris, KVM, etc.)
+configuració 1

Conten.2
SO HOST APP 2
+configuració 2

CPU

Conten.3
Ut control APP 1
Ut Lògica +configuració 3

(RAM)

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 9


2022-2023 E1 Virtualització
E.1B Virtualització per contenidors i docker.

E.1B Virtualització per contenidors i docker.

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 10


2022-2023 E1 Virtualització
E.1B Virtualització per contenidors i docker.
Els contenidors són una tecnologia de virtualització, que al contrari que un
hipervisor (que tracta d'emular un sistema complet), utilitza el sistema base de la
màquina amfitrió i actua realment com un "entorn privat" que comparteix recursos
amb el sistema amfitrió, sense virtualitzar el maquinari complet. En concret, els
contenidors solen tenir entorns privats aïllats en l’àmbit de processos,
memòria, sistema de fitxers i xarxa.

Tècnicament, els contenidors són un tipus de virtualització englobada en el que es


diu "US Level virtualization". Per saber-ne més:

https://en.wikipedia.org/wiki/OS-level_virtualization

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 11


2022-2023 E1 Virtualització
E.1B Virtualització per contenidors i docker.
Per facilitar la comprensió del funcionament dels contenidors, farem una analogia
amb els contenidors de transport marítim:
● Els contenidors de transport marítim, han de complir uns estàndards (mida, pes
i forma) per ser transportats.
○ El mateix passa amb els contenidors en virtualització. Mentre Complan un
estàndard, poden ser virtualitzats en qualsevol màquina que ho suporti
(local, servidor, etc.).
● Un cop complert l'estàndard, el tipus de càrrega del contenidor marítim és
independent.
○ El mateix passa amb els contenidors en virtualització. Si es compleix
l'estàndard, el programari que contingui podrà ser executat sense
problemes

Font imatge:
https://www.flickr.com/photos/6835
9921@N08/50125348052/

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 12


2022-2023 E1 Virtualització
E.1B Virtualització per contenidors i docker.
Un altre dels principals usos dels contenidors és el desplegament de servidors
de diferent tipus (web, correu, bases de dades, DNS, etc.).
A més dels avantatges anteriorment citats de mantenir versions de programari,
els contenidors ens permeten unificar configuracions de servidors en local, fins i
tot involucrant diferents serveis en diferents contenidors, de manera que en
desplegar en el núvol, funcionen exactament igual que en les proves realitzades
localment.

A més, els contenidors faciliten l’"escalat horitzontal" de serveis, especialment si


es donen suport d'eines trucades orquestadors.

Per saber-ne més


https://es.wikipedia.org/wiki/Escalabilidad#Escalabilidad_horizontal

L’objectiu se evitar situacions com ara: "A la meva màquina funciona ... falla només
en pujar-lo al servidor...".

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 13


2022-2023 E1 Virtualització
E.1B Virtualització per contenidors i docker.
Alguns dels avantatges de l'ús de contenidors són:
● Els contenidors ocupen menys espai, perquè no ha de replicar en cadascun el sistema
operatiu que estan Virtualitzant, ja que utilitzen el sistema de la màquina amfitrió.
● Com que no hem de fer una virtualització de maquinari, l'execució del programari dels
contenidors és molt més ràpida, amb velocitats properes a les natives.
● Multitud d'empreses de programari (Microsoft, Apache, Nginx, MySQL, Oracle, Wordpress,
Moodle, i un llarg etc.) donen suport a aquestes tecnologies tan incorporants sistemes de
contenidors als seus sistemes operatius, com oferint imatges oficials dels seus productes per
a què amb una senzilla ordre, es pugui posar en marxa algun dels seus serveis o aplicacions.

Alguns dels principals desavantatges dels contenidors són:


● Malgrat que milloren enormement la velocitat respecte a una virtualització per hipervisor,
segueixen tenint un rendiment pitjor que una execució "barem metall" (sobre un sistema
real), ja que l'aïllament consumeix recursos.
● La persistència i l'accés/modificació de dades persistents entre contenidors és més tediós
que realitzat sobre una màquina real.
● Els contenidors estan pensats generalment per a l'ús via línia d’ordres. Encara que
tècnicament és possible configurar els contenidors per tenir el seu propi entorn gràfic, aquest
procés és tediós.

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 14


2022-2023 E1 Virtualització
E.1B Virtualització per contenidors i docker.
L'ús de contenidors, sol ser adequat en els contextos:
● Com a usuaris: volem provar alguna cosa ràpida i sense complicar-nos molt en la
configuració (per exemple, muntar un servei en local per aprendre).
○ Per a això, podem utilitzar serveis de distribució d'imatges de contenidors públiques
com Docker Hub https://hub.docker.com/

● Com a desenvolupadors: volem desenvolupar una aplicació que es puga distribuir en


local o desplegar al núvol sense problemes de configuració
○ Podem usar contenidors, tant per a tenir l'entorn de desenvolupament llest, com per
distribuir l'aplicació en si.

● Volem testejar la nostra aplicació amb diferents configuracions, límits de recursos, jocs
de prova, etc.
○ Útil per generar entorns de prova i desplegament utilitzant CI/CD (Continuous
Integration/Continuous Delivery) https://es.wikipedia.org/wiki/CI/CD

● Volem fer "escalat horitzontal" de serveis, és a dir executar múltiples còpies d'una
mateixa aplicació/conjunt d'aplicacions que funcionen com un clúster.
○ https://es.wikipedia.org/wiki/Escalabilidad#Escalabilidad_horizontal

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 15


2022-2023 E1 Virtualització
E.1B Virtualització per contenidors i docker.
Consulta al moodle el document per la instal·lació de Docker

La instal·lació de Docker i d’un contenidor senzill serà part de l’examen de la UF1.

Per manca de temps (degut a la meva incorporació tardana) no podrem veure’l amb més
profunditat a la UF1.

@PBonilla DAM1 UF1 SISTEMES INFORMÀTICS 16


2022-2023 E1 Virtualització

You might also like