Está en la página 1de 2

Maquinas virtuales

Es un entorno que se virtualiza un sistema operativo y un Hardware y del hardware


físico de la computadora se extrae un pedazo del procesador, memoria RAM, el disco
duro, y se instala un sistema operativo. Al sistema operativo le hacemos creer que se
encuentra en un sistema de hardware real pero la realidad esta virtualizado y esa es la
base de las nubes. Todo el cloud computing funciona sobre máquinas virtuales.
Pero a nivel de desarrollo de los programadores echando códigos, las máquinas virtuales
son bastante pesadas consumen bastantes recursos, nosotros no necesitamos todo el
sistema operativos Linux, Windows, todo MAC OS, para una simple aplicación.
Lo que necesitamos para esto son los llamados contenedores
Los contenedores Como su nombre lo dice contienen todo lo que necesita una
aplicación para funcionar y nada mas que eso.
Entremos en detalle en que son los contenedores son sencillo un entorno de ejecución
para un software que contiene todas las dependencias que necesita el software lo
interesante es que es un paquete asilado del sistema, es decir, que un contenedor
podíamos tener una versión de Python y en otro contenedor otra versión de Python y de
tal esto no hacen conflicto es lo espectacular no tienes que estar cambiando de versión
que los contendores pueden convivir con el mismo sistema operativo sin hacer conflicto
porque todo lo que esta dentro esta completamente aislado a esto se le llama
contenedores porque son una metáfora de los contenedores en los que se transportan
mercadería en los barcos donde hay una enorme caja de metal y todo lo que esta dentro
está completamente aislado, entonces, los contendores son así, si todo está aislado estos
pueden convivir con varios en el mismo sistema operativo con lo cual se resuelve el
problema de que en mi maquina funciona porque ese contenedor es el que se replica en
los diferentes entornos entonces el programador A tiene una réplica del contenedor así
sucesivamente. En el servidor de integración hay una replica del servidor, en el servidor
de pruebas, replica del servidor, entonces ya nos evitamos el lio porque todo esta aislado
del sistema, la diferencia principal frente a una máquina virtual como ya dijimos carga
todo el sistema operativo, en cambio un contendor solo necesita el kernel del sistema
operativo, es decir, el núcleo y de ahí no necesita ningún otro componente así que es
muy liviano y consume pocos recursos y es rápido para trabajar con él.
Lo contendores comenzaron en Linux a partir de un concepto llamado Namespace.
Los namespace los espacios de nombre lo que hacen es que un conjunto de aplicaciones
tenga acceso a un conjunto especifico de recursos del sistema de tal manera cada
conjunto de procesos no interfieran con los recursos que usando otro proceso luego de
los namespace otro concepto se crea los c groups o grupos de control lo que hacen es
permitir administrar el uso de recursos de determinados procesos y también el acceso a
lo permisos así ellos. Utilizando estos conceptos de namespace y c grups lo que hacen
es aislar los procesos del sistema operativo.
En el año 2008 se crea el LXC el motor de contenedores de Linux es decir ya estamos
en el concepto de contendores y ya no de procesos del sistema operativo para su propio
funcionamiento si no de un entorno para desarrollar para crear nuevas aplicaciones, pero
utilizando estas ventajas del aislamiento, entonces que es Docker es un gestor de
contenedore es el mas utilizado en el mundo y empezó en el año 2013 utilizando este
motor del que hablamos LXC y Linux.
En el año 2014 ellos crean su propio motor de contendores llamado LIBCONTAINER
que está escrito en go. Lo que hace Docker es simplificar la gestión de los contenedores
porque el concepto contenedor existía mucho antes que apareciera Docker
Pero con Docker todo se simplifica poque todo comienza por un Docker file entonces el
trabajo con Docker se divide en tres etapas Docker file, Docker image, Docker
container.
Docker file, es un documento de texto donde contine todo los comandos e instrucciones
para instalar todas las dependencias de una aplicación es como si fuera un manual.
Docker image, con el Docker file se crea una imagen de Docker es donde contiene un
ejecutable que ya contiene todos las dependencias y el software que vamos a correr ahí,
a partir de ahí de esa imagen es que se puede crear los contendores si entiendes el
concepto de programación orientada a objetos podemos decir que la imagen es la clase y
los contenedores son los objetos, es decir, la instanciación de la imagen, es decir que el
contendor es la imagen la parte donde esta corriendo donde ya puedo programar dentro
de ese contenedor puesto que las imágenes se crean por un Docker file donde es un
documento de texto en donde nosotros podemos llevar el registro de versiones en git, se
llama registro de Docker con esto garantizamos que estamos en la versión correcta
Docker container.

También podría gustarte