Segueix-nos a:

Blogs

Els enginyers de La Salle-URL comparteixen les últimes novetats i projectes en el camp de les solucions de xarxes en enginyeria telemàtica.

13 maig 2021 | Publicat per userDataCenter

VMs vs Containers

Un tema recurrent quan es parla de màquines virtuals és la virtualització, però hi ha diferents tipus de virtualització amb les seves característiques, els seus avantatges i els seus desavantatges. En aquest post farem una comparació que ens permeti entendre una mica més sobre el tema.

Què són les Màquines Virtuals?

Una màquina virtual (VM) és un entorn que funciona com un sistema informàtic virtual amb la seva pròpia CPU, memòria, interfície de xarxa i emmagatzematge, però el qual es crea en un sistema de maquinari físic.

Les VM es troben aïllades de la resta de el sistema, però pot haver-hi diverses VM en una sola peça de maquinari, com un servidor. A més, poden traslladar-se entre els servidors host en funció de la demanda, o per utilitzar els recursos de forma més eficient.

Les VM permeten que s'executin diversos sistemes operatius diferents alhora en un mateix dispositiu (en aquest cas un mateix servidor).

 

Què són els contenidors?

Un contenidor és una unitat estàndard de programari que empaqueta el codi i totes les seves dependències perquè l'aplicació s'executi de forma ràpida i fiable d'un entorn informàtic a un altre. Una imatge de contenidor de Docker és un paquet de programari lleuger, independent i executable que inclou tot el necessari per executar una aplicació: codi, temps d'execució, eines de sistema, biblioteques de sistema i configuracions.

Es poden executar diversos contenidors a la mateixa màquina i compartir el nucli de sistema operatiu amb altres contenidors, cadascun executant com a processos aïllats en l'espai de l'usuari. Els contenidors ocupen menys espai que les VM (les imatges de contenidor solen tenir una mida de desenes de MB), poden manejar més aplicacions.

La seva limitació principal és que no es pot emular un sistema Windows si el host és Linux, per exemple, usant contenidors. És a dir que els contenidors són dependents de el sistema operatiu de l'amfitrió, a diferència de les màquines virtuals.

 

Comparació

  • Preu: usant contenidors, un sol sistema operatiu pot admetre múltiples contenidors, cadascun dels quals s'executa dins del seu propi entorn d'execució separat. A l'executar múltiples components en un sol sistema operatiu, es redueix els diners invertits en llicències. En canvi, si fem ús de VMs, necessitaríem una llicència per a cada un dels sistemes operatius de les VMs (més el de l'amfitrió).
  • Eficiència: els contenidors són més eficients que les màquines virtuals, ja que els recursos que aquests consumeixen van directament a el procés de l'aplicació que s'està executant. Les màquines virtuals, en canvi, requereixen de més recursos, molts dels quals van destinats a sistema operatiu i no a l'aplicació en si.
  • Mida: un contenidor sol ser tan petit com 10 MB, mentre que una màquina virtual ocupa al menys uns pocs GB d'espai d'emmagatzematge. Així doncs, en un servidor hi caben molts més contenidors que màquines virtuals, convertint a aquests en l'opció preferida en molts casos.
  • Velocitat d'execució: les màquines virtuals són creades per un hipervisor que necessita moltes decisions de configuració a l'inici. D'altra banda, els contenidors es creen més ràpid que les màquines virtuals causa de l'absència d'un hipervisor. Per tant, el temps d'inici per als contenidors Docker varia d'uns pocs mil·lisegons a un parell de segons, el que el fa molt més ràpid que una VM (que pot arribar a trigar minuts).

 

Bonus: una solució per la gestió multi-cloud

Kubernetes és una plataforma de codi obert que automatitza les operacions dels contenidors de Linux. Així doncs, elimina molts dels processos manuals involucrats en la implementació i escalabilitat de les aplicacions en contenidors.

En altres paraules, pot crear un clúster de grups de hosts que executen contenidors de Linux, i Kubernetes ho ajuda a administrar amb facilitat i eficàcia aquests clústers.

Aquests clústers poden abastar hosts en núvols públiques, privades o híbrides. Per aquest motiu, Kubernetes és la plataforma ideal per allotjar aplicacions que requereixen una expansió ràpida.

Kubernetes se sol usar en solucions multi-cloud ja que permet automatitzar i gestionar els contenidors de la forma més senzilla i eficient possible.

 

Autors

Joan Farràs

Ferran Montoliu

Share