






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
...uqzyuqkaxvviaxviwbxueuebxeuxvjwxbkxbaixbsibciwkcbwibciwbxiwbixbisxbibwkxbwkxbebeicbekbceibc
Tipo: Apuntes
1 / 11
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Los contenedores son una forma de virtualización del sistema operativo. Un solo contenedor se puede usar para ejecutar cualquier cosa, desde un microservicio o un proceso de software a una aplicación de mayor tamaño. Dentro de un contenedor se encuentran todos los ejecutables, el código binario, las bibliotecas y los archivos de configuración necesarios. Sin embargo, en comparación con los métodos de virtualización de máquinas o servidores, los contenedores no contienen imágenes del sistema operativo. Esto los hace más ligeros y portátiles, con una sobrecarga significativamente menor. En implementaciones de aplicaciones de mayor tamaño, se pueden poner en marcha varios contenedores como uno o varios clústeres de contenedores. Estos clústeres se pueden gestionar mediante un orquestador de contenedores, como Kubernetes. Ventajas de los contenedores Los contenedores son una forma optimizada de crear, probar, implementar y reimplementar aplicaciones en varios entornos, desde un portátil local de desarrollador hasta un centro de datos local e incluso el cloud. Las ventajas de los contenedores incluyen: Menos gastos generales Los contenedores requieren menos recursos del sistema que los entornos de máquinas virtuales tradicionales o de hardware porque no incluyen imágenes del sistema operativo. Mayor portabilidad Las aplicaciones que se ejecutan en contenedores se pueden implementar fácilmente en varios sistemas operativos y plataformas de hardware diferentes.
Funcionamiento más coherente Los equipos de DevOps saben que las aplicaciones de los contenedores se ejecutarán de la misma forma, independientemente de dónde se implementen. Mayor eficiencia Los contenedores permiten implementar, aplicar parches o escalar aplicaciones con mayor rapidez. Mejor desarrollo de aplicaciones Los contenedores admiten esfuerzos ágiles y de DevOps para acelerar los ciclos de desarrollo, pruebas y producción. Casos de uso de contenedores Entre las formas comunes en que las organizaciones utilizan contenedores se incluyen: "Rehospedar" las aplicaciones existentes a arquitecturas de cloud modernas Algunas organizaciones utilizan contenedores para migrar las aplicaciones existentes a entornos más modernos. Aunque esta práctica ofrece algunas de las ventajas básicas de la virtualización de sistemas operativos, no ofrece todas las ventajas de una arquitectura de aplicaciones modular basada en contenedores. Refactorizar las aplicaciones existentes para contenedores Aunque la refactorización es mucho más intensiva que la migración de elevación y desplazamiento, permite obtener todas las ventajas de un entorno de contenedores.
(snapshots de copia en escritura) para implementar aplicaciones o software en contenedores en varios entornos, desde el desarrollo hasta las pruebas y la producción. Docker se ha basado en estándares abiertos y funciones dentro de los entornos operativos más comunes, como Linux, Microsoft Windows y otras infraestructuras basadas en cloud o en las instalaciones. Sin embargo, las aplicaciones en contenedores pueden complicarse. Cuando se está en producción, muchos podrían requerir entre cientos y miles de contenedores separados en producción. Aquí es donde los entornos de tiempo de ejecución de contenedores, como Docker, se benefician del uso de otras herramientas para orquestar o gestionar todos los contenedores en funcionamiento. Una de las herramientas más populares para este propósito es Kubernetes, un orquestador de contenedores que reconoce varios entornos de tiempo de ejecución de contenedores, incluido Docker. Kubernetes orquesta la operación de múltiples contenedores en armonía. Gestiona áreas como el uso de recursos de infraestructura subyacentes para aplicaciones en contenedores, como la cantidad de recursos informáticos, de red y de almacenamiento necesarios. Las herramientas de orquestación como Kubernetes facilitan la automatización y la escala de cargas de trabajo basadas en contenedores para entornos de producción en directo. Contenedores frente a máquinas virtuales (VM) A veces, las personas confunden la tecnología de contenedores con máquinas virtuales (VM) o la tecnología de virtualización de servidores. Aunque existen algunas similitudes básicas, los contenedores son muy diferentes de los equipos virtuales. Las máquinas virtuales se ejecutan en un entorno de hipervisor en el que cada máquina virtual debe incluir su propio sistema operativo invitado dentro de él, junto
con sus archivos binarios, bibliotecas y aplicaciones relacionados. Esto consume una gran cantidad de recursos del sistema y sobrecarga, especialmente cuando se ejecutan varias máquinas virtuales en el mismo servidor físico, cada una con su propio sistema operativo invitado. Por el contrario, cada contenedor comparte el mismo SO host o kernel del sistema y tiene un tamaño mucho más ligero, a menudo sólo megabytes. Esto a menudo significa que un contenedor puede tardar solo segundos en iniciarse (frente a los gigabytes y minutos necesarios para una máquina virtual típica). NetApp y contenedores En NetApp, creemos en la conveniencia de la tecnología de contenedores y trabajamos en herramientas demostradas e innovaciones que ofrezcan y gestionen el almacenamiento persistente de todo tipo de aplicaciones sea cual sea su ubicación. Un ejemplo clave de este trabajo es el desarrollo de Trident. Gracias a Trident, las aplicaciones en contenedores pueden consumir almacenamiento persistente bajo demanda más fácilmente que nunca antes. Estamos trabajando activamente en formas de acelerar DevOps promoviendo aún más velocidad y agilidad en el desarrollo de software. El consumo de recursos de infraestructura, como el almacenamiento, debería ser fácil. NetApp se dedica a hacerlo así, con soluciones de gestión de contenedores y otras que ayudan a las aplicaciones a escalar y abarcar una gran variedad de plataformas. El concepto de container, aplicado a la informática, consiste en agrupar y aislar entre sí aplicaciones o grupos de aplicaciones que se ejecutan sobre un mismo núcleo de sistema operativo. Para entenderlo mejor, podríamos llegar a hacer el símil con la virtualización de máquinas. En ella, se comparte un mismo hardware entre diversos sistemas operativos. En el caso de los containers, vamos a un paso más allá en este mundo. Imagínese que necesita desplegar una aplicación web como puede ser el
La virtualización se define como la abstracción de algún recurso de computación, como el hardware, el sistema operativo, sistemas de almacenamiento o recursos de red, que podemos dividir mediante software, en entornos de ejecución, para aprovechar al máximo la capacidad del recurso subyacente. La capa de software arbitra los recursos disponibles, repartiendo dinámicamente los recursos reales entre todos los recursos virtuales definidos. Así pues, la virtualización a nivel de sistema operativo o contenerización, es una aproximación a la virtualización en la cual, la capa de virtualización se ejecuta como una aplicación en el sistema operativo. En este enfoque, los contenedores son máquinas virtuales aisladas entre sí, que están instaladas sobre el mismo sistema operativo. Cada contenedor dispone de su software específico, pero comparte el kernel del sistema operativo anfitrión, y usualmente también binarios y librerías. Utilizando estos componentes compartidos como de solo lectura. Un contenedor se compone, principalmente, de 4 elementos:
sistema anfitrión. De este modo abstrae el servidor en el que se va a ejecutar el software, ya sea en instalaciones físicas, en la nube pública, en la nube privada, etc. Por otra parte, con la virtualización basada en contenedores, no existe la sobrecarga que implica tener a cada huésped ejecutando un sistema operativo completo. El servidor requerirá más hardware, pero todos sus recursos serán aprovechados directamente por el software en ejecución. En ningún caso será consumido por necesidades del sistema operativo o sus procesos asociados. Este enfoque también puede mejorar el rendimiento, porque hay un solo sistema operativo encargándose de los avisos de hardware. Debido a esto, los contenedores suelen ser excepcionalmente ligeros, se mueven en torno a los megabytes de tamaño en disco y necesitan pocos segundos para arrancar, contra los gigabytes de ocupación y los minutos de arranque que suelen tomar los servidores en máquinas físicas y virtuales. Además, el uso de contenedores reduce la carga de trabajo en la administración de sistemas. Debido a que los contenedores usan un sistema operativo común, aunando las actualizaciones, la gestión de vulnerabilidades en paquetería y demás tareas administrativas. En general, los contenedores son más rápidos, ágiles y portables que el software instalado en máquinas físicas o virtuales. Docker es uno de los proyectos más conocidos y utilizados en este tipo de virtualización. Lejos de ser un sistema operativo como tal, esta plataforma de código abierto hace uso de las funciones de aislamiento de recursos del kernel de Linux para dar lugar a contenedores independientes. Este, también cuenta con una serie de repositorios, similares a los de Linux, en los cuales, los fabricantes de software y usuarios publican sus propios contenedores de manera que cualquiera que los necesite los pueda bajar rápidamente desde allí. Así como también, la tecnología SD-WAN de Teldat usa la virtualización a nivel de sistema operativo en su infraestructura core; pero va incluso un poco más allá. Al tener un ecosistema con multitud de servicios contenerizados, hemos
pueden ver la información y dispositivos habilitados para el mismo: la restricción permite un mayor control de recursos por parte de los administradores de Sistemas, un entorno más seguro para arreglos con usuarios múltiples y la posibilidad e escalar los mismos con rapidez. Pero no todo es de ensueño en el mundo de los contenedores: la flexibilidad es su punto débil, dado que no pueden alojar un SO diferente del que les sirve de host o un kernel distinto. Si el host es Linux, por ejemplo, sus diversas distribuciones funcionan sin ningún problema, pero no un sistema operativo como Windows. Una de los desafíos más mencionados por las compañías respecto a los contenedores es que no cuentan con almacenamiento persistente, a esto se suma la falta de herramientas de administración de almacenamiento confiables. Ambos elementos sumados se han constituído como una de las principales barreras para la adopción, según una encuesta realizada en 2017. Por otro lado, la facilidad de despliegue puede resultar en un número demasiado elevado y crecientemente complejo de aplicaciones en contenedores múltiples. La mantención de un buen funcionamiento y administración en ese punto se transforma en un trabajo demasiado arduo para las capacidades humanas. Afortunadamente existe software de gestión de contenedores, que maneja tareas asociadas con la administración de aplicaciones contenerizadas y componentes de aplicación, de esta forma se facilita la operación básica y se asegura la interoperabilidad. Estas características pueden potenciarse si se complementan con una orquestación automatizada de contenedores, apoyada en una estrategia de contenedores completa. La adopción de contenedores está creciendo a un ritmo muy acelerado en los últimos años. Una encuesta global de 2017 realizada por Portworx.com indicó que 32% de las compañías están gastando $500,000 dólares o más en licencias y tarifas de uso de tecnología de contenedores. La cifra en 2016 era apenas 5%.
Por otro lado, 69% de los encuestados dijeron que su compañía estaba realizando una inversión en contenedores. De esas compañías, el 10% lo está haciendo en cifras tan altas como el millón de dólares. ¿Quiénes son los reyes del mercado? Actualmente Docker se lleva el cetro sin discusión. La herramienta, diseñada para operar sobre Linux pero que ha tenido una fuerte inversión hacia Windows en el último año, nació el 2013 y ha contado con el apoyo de grandes de la industria, como Cisco, Google, Huawei, IBM, Microsoft, y Red Hat. Según una reciente encuesta recopilada por Statista, Docker se lleva una tajada del pastel que alcanza a más del 70%, aunque Mesos Containerizer, rkt y Kubernetes han visto un crecimiento importante desde el 2017.