Maksim Samasiuk - Fotolia

Evaluar Conozca los pros y contras de las tecnologías, productos y proyectos que está considerando.

Qué deben saber los administradores para dominar la tecnología de contenedores

Ejecutar aplicaciones en contenedores tiene sentido cuando se trata de uso de recursos, pero, ¿cómo manejará su equipo de operaciones las tareas de administración relacionadas?

Los contenedores se han insertado en la conversación de TI, y su utilidad se discute en círculos cada vez más amplios. Aunque la adopción ha sido limitada hasta ahora, parece claro que 2017 va a ver mucho más el despliegue de producción de aplicaciones en contenedores. Al implementar cualquier cosa en producción, por supuesto, es cuando el equipo de operaciones se involucra, y van a tener preguntas.

Hay un montón de cuestiones a considerar cuando se trata de la gestión de la tecnología de contenedores. Éstos incluyen cómo manejar las dependencias en archivos y el papel que pueden desempeñar o no los microservicios en su estrategia de la nube. Para estar seguros, hay una curva de aprendizaje.

DevOps trajo la idea de que los desarrolladores deben apoyar la producción. La realidad es que los desarrolladores necesitan su sueño, y es el equipo de operaciones el que se ocupa de la producción a todas horas del día y la noche. Los equipos de operaciones necesitarán entender el impacto de estas nuevas aplicaciones en contenedor, y ellos son quienes se espera que resuelvan problemas de disponibilidad o rendimiento.

Además, una organización de TI puede necesitar nuevas herramientas para monitorear y administrar los contenedores. Los contenedores, basados ​​en cómo se usan, pueden tener impactos operativos importantes en una organización de TI. Para administrar adecuadamente la tecnología de contenedores, los administradores deben tener en cuenta estos factores y diseñar un plan para hacer que todo funcione.

Administrar aplicaciones y dependencias

A veces, los contenedores son solo una forma de empaquetar y distribuir una aplicación. Cuando una aplicación existente se distribuye como un contenedor Docker, por ejemplo, ese envase es esencialmente el valor especial que Docker proporciona, aunque no es la única razón para usar Docker o contenedores. Los contenedores existían antes de Docker, que se utiliza para crear contenedores de forma estructurada y controlada.

En algunos casos, el contenedor simplemente envuelve la aplicación y sus dependencias. A continuación, el contenedor se ejecuta en un servidor. La magia de Docker es envolver todas las dependencias de la aplicación en una imagen Docker y tener un único archivo de texto (archivo Docker) que describe cómo crear la imagen. Con este modelo de aplicación existente, cada servidor puede ejecutar solo una instancia del contenedor, justo como el servidor solía ejecutar una instancia de la aplicación.

Es bastante sencillo monitorear y administrar este uso de contenedores: continúe supervisando y administrando el servidor. El administrador todavía puede ver los procesos de aplicación en el servidor, junto con el uso de recursos.

Este es un entorno mucho más dinámico que las aplicaciones monolíticas que los administradores utilizan para administrar.

De alguna manera, esto es aún más simple ya que no hay necesidad de comprobar que el servidor tiene todos los requisitos previos de la aplicación. Estos requisitos previos incluyen la versión correcta de Java o las bibliotecas Python adecuadas. Todas estas dependencias están en la imagen Docker y controladas por el archivo Docker.

Puede que no sea necesario instalar y mantener Java en el servidor. Pero debe tener algún control de estos archivos Docker y asegurarse de que las imágenes de Docker contienen componentes que están actualizados. En lugar de actualizar o modificar Java en el servidor, debe actualizar el archivo Docker y crear una nueva imagen de Docker.

Una nueva tarea operativa puede ser escanear los archivos de Docker en busca de vulnerabilidades. Un archivo Docker puede dirigir la instalación de componentes vulnerables o no compatibles en la imagen. También puede ser necesario implementar políticas sobre la edad máxima permitida de una imagen construida de Docker. Las versiones de las dependencias están fijas dentro de la imagen y solo se pueden actualizar construyendo una nueva imagen.

La tecnología de contenedores es dinámica

A veces, los contenedores permiten la arquitectura de microservicios. Esto los convierte en una nueva forma de ensamblar aplicaciones.

Los contenedores se pueden iniciar y detener mucho más rápido que las máquinas virtuales. Iniciar otro contenedor típicamente toma una fracción de segundo. Un solo servidor puede ejecutar varios contenedores a la vez, con un cierto aislamiento entre los contenedores. En aplicaciones construidas en la modalidad de microservicios, los contenedores serán mucho más numerosos y a menudo de corta duración. La aplicación se divide en pequeñas partes –microservicios– y tendrá una imagen Docker para cada una de las docenas de piezas pequeñas. Cada microservicio puede escalar hacia arriba y hacia afuera creando o destruyendo contenedores.

Este es un entorno mucho más dinámico que las aplicaciones monolíticas que los administradores utilizan para administrar. Los servidores subyacentes todavía se pueden supervisar con sus herramientas normales, pero los contenedores mismos son demasiado volátiles para estas herramientas.

Un solo contenedor solo puede vivir unos segundos. Se requerirán nuevas herramientas para administrar y monitorear estas aplicaciones de microservicios en producción. Los proveedores de hiperescala como AWS han construido sus propias herramientas para manejar sus flotas de contenedores. Las grandes organizaciones son más propensas a usar herramientas de proveedores como New Relic y Datadog para monitorear sus flotas de contenedores.

Programadores y herramientas hacen la diferencia

Una parte esencial de DevOps es tener la automatización en todas las partes de la aplicación, que incluye los muchos contenedores. Aquí es donde los planificadores juegan su parte: para asegurarse de que el número correcto de cada contenedor está funcionando y saludable. El programador puede ser algo específico del contenedor, como Kubernetes, o un programador de propósito más general, como Apache Mesos. Podría ser Kubernetes y Mesos juntos.

La automatización reduce la cantidad de intervención manual necesaria para supervisar y administrar la aplicación. La administración debe basarse en establecer políticas para la aplicación. El programador simplemente implementa las políticas.

Implementar aplicaciones monolíticas en producción con tecnología de contenedor puede ser un pequeño cambio en la gestión y el seguimiento de esas aplicaciones. Si las aplicaciones se dividen en microservicios y requieren un planificador, entonces habrá cambios operativos mucho más significativos.

Si bien todavía es temprano en el desarrollo de las herramientas operacionales para las flotas de contenedores, hay un montón de herramientas que se están construyendo para la gestión de contenedores. Las operaciones exitosas de aplicaciones de microservicios necesitarán nuevas herramientas y métodos para los equipos de operaciones.

Este artículo se actualizó por última vez en mayo 2017

Profundice más

PRO+

Contenido

Encuentre más contenido PRO+ y otras ofertas exclusivas para miembros, aquí.

Inicie la conversación

Envíenme notificaciones cuando otros miembros comenten sobre este artículo.

Enviando esta solicitud usted acepta recibir correos electrónicos de TechTarget y sus socios. Si usted reside afuera de Estados Unidos, esta dando autorización para que transfiramos y procesemos su información personal en Estados Unidos.Privacidad

Por favor cree un Nombre de usuario para poder comentar.

- ANUNCIOS POR GOOGLE

Close