Guía del ingeniero de DevOps para OCI

Oracle Cloud Infrastructure (OCI) proporciona herramientas de desarrollador para compilar, gestionar y automatizar aplicaciones nativas en la nube. En esta guía se proporciona una visión general de esas herramientas y su aplicación en el ciclo de vida de DevOps.

Ciclo de vida de DevOps

DevOps es una forma de trabajar que fomenta que diversos equipos, principalmente de desarrollo y operaciones, colaboren para lograr una entrega continua en el ciclo de vida de desarrollo de software. Diversas herramientas contribuyen en los diferentes pasos del ciclo de vida.

Imagen que representa el ciclo de vida de DevOps.

En el lado del Desarrollo, necesita herramientas para ayudarle con los siguientes pasos:

  • Planificación: gestione la infraestructura de forma que promueva la velocidad, la flexibilidad y la consistencia
  • Código: diseñe software que permita cambios constantes
  • Compilación: cree un flujo de trabajo que pueda conseguir ciclos de versiones semanales
  • Prueba: automatice todo lo que sea posible

En el lado de las Operaciones, necesita herramientas para ayudarle con los siguientes pasos:

  • Versión: compile y realice entregas en repositorios y registros
  • Despliegue: transfiera la aplicación a entornos de destino
  • Operación: proteja cada paso del ciclo de vida.
  • Supervisión: vea el estado y el rendimiento de la infraestructura, registre cada cambio

Muchas de las herramientas que proporciona OCI para el uso de DevOps están estrechamente conectadas y se ocupan de varios pasos del ciclo de vida. En las secciones de esta guía se agrupan los pasos relacionados y la información correspondiente.

El enfoque DevOps

Gestión de la configuración y la infraestructura como código

La automatización se utiliza a lo largo del ciclo de vida de DevOps. Reduce la necesidad de tareas e intervención manuales y aumenta la frecuencia de las entregas. La gestión de la configuración y la infraestructura como código hacen que gran parte de esta automatización sea posible.

Gestión de la configuración (CM) es el proceso de aplicación de métodos programáticos para garantizar la implantación, el funcionamiento y el rendimiento de una aplicación.

Infrastructure-as-code (IaC) utiliza código legible para definir, aprovisionar y gestionar la infraestructura. La IaC es un componente clave del modelo de entrega continua.

En OCI, Ansible y Terraform son las herramientas más utilizadas para ayudarle con la CM y la IaC. Ansible es principalmente una herramienta de CM que se utiliza para la configuración, la aplicación de parches y el despliegue y el mantenimiento de aplicaciones de la infraestructura. Terraform es una herramienta de IaC que se utiliza para el aprovisionamiento y la retirada de la infraestructura. Con frecuencia se utilizan juntos.

Gestión de la configuración

El servicio OCI DevOps está diseñado para integrarse a la perfección con dos herramientas de CM: Ansible y Chef.

Ansible

La recopilación de Ansible de OCI automatiza el aprovisionamiento de la infraestructura y la configuración de los recursos de OCI, como los servicios informáticos, de equilibrio de carga y de base de datos.

Los módulos de Ansible de OCI son un juego de intérpretes que ayudan a Ansible a realizar llamadas en los puntos finales de la API de OCI. En un nivel básico, Ansible lleva un servidor o una lista de hosts a un estado conocido mediante los siguientes conceptos:

  • Inventario: explica dónde ejecutar; puede ser estático o dinámico
  • Tarea: una llamada a un módulo de Ansible
  • Reproducciones: una serie de tareas o roles de Ansible asignados a un grupo de hosts del inventario; se ejecutan en orden
  • Cuadernos de estrategias: una serie de reproducciones que explican qué ejecutar y utilizar YAML
  • Rol: estructura estándar para especificar tareas y variables; permite la modularidad y la reutilización
Consejo

Pruebe LiveLab como ayuda para comenzar a utilizar Ansible en OCI.

Chef

Chef es una herramienta de automatización para CM que se centra en la entrega y la gestión de pilas de TI completas. Con el servicio OCI DevOps, los usuarios pueden gestionar los recursos de OCI mediante el plugin Chef Knife.

Nota

Puppet es otra herramienta de CM común que se utiliza para diseñar, desplegar, configurar y gestionar servidores. Puede integrar Puppet con OCI, pero necesita scripts manuales, ya que OCI no tiene un plugin directo.

Infraestructura como código

OCI utiliza Terraform para IaC. Terraform tiene un lenguaje declarativo que le permite codificar la infraestructura y un motor que utiliza esas configuraciones para gestionar la infraestructura.

Consejo

Pruebe LiveLab como ayuda para comenzar a utilizar Terraform en OCI. También hay disponibles muchos tutoriales, ejemplos, plantillas y soluciones.

Puede utilizar el proveedor de Terraform de OCI y la CLI de Terraform para crear un borrador y aplicar configuraciones desde su máquina local que gestionen la infraestructura de OCI; sin embargo, ese enfoque tiene dos problemas:

  • Falta de control de versiones: debe realizar un seguimiento de las distintas versiones del código si necesita realizar un rollback o una rama.
  • Colaboración: debe centralizar las configuraciones y los planes para garantizar que todos permanezcan sincronizados.

En lugar de utilizar Terraform directamente, utilice OCI Resource Manager, un host de Terraform basado en la nube para el control de origen, la gestión de estado y la cola de trabajos centralizados. Resource Manager facilita que el personal de DevOps gestione la infraestructura o las pilas ocultando Terraform en las plantillas.

Consejo

Vea una introducción en vídeo al servicio Resource Manager o pruebe LiveLab.

Resource Manager también incluye automatización basada en Terraform, como la detección de recursos y la detección de cambios. Puesto que no siempre es realista redactar primero las configuraciones de Terraform y, a continuación, aprovisionar la infraestructura, puede crear recursos en la consola y, después, utilizar la Detección de recursos del gestor de recursos para generar la pila y la configuración. Los informes de detección de cambios pueden determinar si los recursos aprovisionados tienen estados diferentes a los definidos en la configuración de última ejecución de la pila.

Diseño de aplicaciones

Los microservicios le permiten diseñar una aplicación como una recopilación de servicios ligeramente acoplados que utilizan el modelo "share-nothing" y se ejecutan como procesos sin estado. Este enfoque facilita el escalado y el mantenimiento de la aplicación.

En una arquitectura de microservicios, cada microservicio posee una tarea sencilla y se comunica con clientes u otros microservicios mediante mecanismos de comunicación sencillos como las solicitudes de API de REST. Las aplicaciones diseñadas como microservicios tienen las siguientes características:

  • Su mantenimiento es sencillo y se despliegan de forma independiente
  • Son fácilmente escalables y de alta disponibilidad
  • Se acoplan ligeramente con otros servicios
  • Se han desarrollado utilizando el lenguaje de programación y el marco que mejor se adaptan al problema

La contenedorización es un enfoque común de la arquitectura de microservicios. Los contenedores utilizan la virtualización del sistema operativo y mantienen solo la aplicación y sus binarios relacionados, lo que da como resultado un inicio rápido y una mayor seguridad.

Contenedorización y Docker

Docker es una plataforma de contenedorización y proyectos de código abierto que estandariza el empaquetado de aplicaciones y sus dependencias en contenedores, los cuales comparten el mismo sistema operativo del host. Utilice contenedores de Docker para lograr una entrega rápida y consistente de sus aplicaciones, un despliegue y un escalado con alta capacidad de respuesta y portabilidad.

Una imagen de Docker es una plantilla de solo lectura con instrucciones para crear un contenedor de Docker. Una imagen de Docker contiene la aplicación que desea que Docker ejecute como contenedor, junto con cualquier dependencia. Para crear una imagen de Docker, primero debe crear un archivo Dockerfile para describir esa aplicación y, a continuación, crear la imagen de Docker a partir del archivo Dockerfile.

Las imágenes de Docker se pueden almacenar en un registro como OCI Container Registry. Sin un registro, es difícil para los equipos de desarrollo mantener un juego consistente de imágenes de Docker para sus aplicaciones en contenedores. Sin un registro gestionado, es difícil aplicar los derechos de acceso y las políticas de seguridad para las imágenes.

Consejo

Para ver un tutorial introductorio, consulte Pushing an Image to Oracle Cloud Infrastructure Registry o pruebe un LiveLab.

Kubernetes

El despliegue de aplicaciones en contenedores crea un nuevo problema: la gestión de miles de contenedores. Kubernetes es una herramienta de código abierto que organiza automáticamente el ciclo de vida del contenedor y distribuye los contenedores en la infraestructura de alojamiento. Kubernetes amplía o reduce los recursos en función de la demanda. Aprovisiona, programa, suprime y supervisa el estado de los contenedores.

Nota

What is Kubernetes? abarca algunos conceptos e historial clave de Kubernetes.

Motor de OCI Kubernetes

OCI Kubernetes Engine (OKE) (a veces denominado OKE) es un servicio totalmente gestionado, escalable y de alta disponibilidad que puede utilizar para desplegar las aplicaciones en contenedores en la nube.

Aunque no es necesario que utilice un servicio de Kubernetes gestionado, OCI Kubernetes Engine es una forma fácil de ejecutar clusters altamente disponibles con el control, la seguridad y el rendimiento predecible de OCI que proporciona a los equipos de DevOps una mayor visibilidad y control.

Funciones

Functions aloja aplicaciones al tiempo que se abstrae de los servidores reales. La arquitectura flexible y sin servidor de Functions significa que no tiene que realizar la administración de la infraestructura ni del software. No aprovisiona ni mantiene instancias informáticas, y los parches y actualizaciones de software del sistema operativo se aplican automáticamente. Functions garantiza que la aplicación tenga una alta disponibilidad y que sea escalable, segura y esté supervisada. Puede escribir código en Java, Python, Node, Go, Ruby y C# (y para casos de uso avanzados, puede traer tu propia su propio archivo Dockerfile y VM de Graal). A continuación, puede desplegar el código, llamarlo directamente o dispararlo en respuesta a eventos.

Nota

Pruebe Functions en este LiveLab.
Integración y despliegue continuos

La integración continua y la entrega o el despliegue continuos (CI/CD) son las mejores prácticas de DevOps.

La integración continua es una práctica de los desarrolladores que consiste en integrar todo su trabajo lo antes posible en el ciclo de vida. Los cambios incrementales y frecuentes en el código se crean, prueban y revisan según sea necesario basándose en comentarios constantes. Un cambio en el código debe disparar automáticamente los pasos estandarizados de compilación y prueba que garantizan que los cambios en el código que se fusionen en el repositorio no contengan errores y funcionen con el código existente.

La entrega o el despliegue continuos es la práctica de pasar rápidamente los cambios en el código de los desarrolladores a los usuarios. Una vez que el código supera las pruebas de unidad, integración, aceptación, entre otras, se libera en producción tanto en un despliegue continuo automatizado como en un proceso de entrega continua manual.

OCI DevOps

Los pipelines de compilación y despliegue son el núcleo del flujo de trabajo de integración y despliegue continuos de DevOps.

El servicio OCI DevOps le permite crear visualmente scripts de pipelines de compilación y despliegue que automatizan las llamadas a herramientas más enfocadas. DevOps tiene la flexibilidad de integrarse con los flujos de trabajo de integración y despliegue continuos existentes.

Consejo

Para explorar la integración y el despliegue continuos en OCI, puede crear un pipeline de CD mediante DevOps o desarrollo, depuración y despliegue de aplicaciones en Kubernetes Engine.

DevOps Proyectos

El primer paso para crear y desplegar aplicaciones mediante el servicio DevOps de OCI es crear un proyecto DevOps. Un proyecto de DevOps es una agrupación lógica de recursos de DevOps necesarios para implantar un flujo de trabajo de integración y despliegue continuos. Como parte de la creación del proyecto en la consola o mediante una API o la CLI, puede crear los siguientes recursos:

  • Un repositorio de código externo o de OCI para alojar el código
  • Pipelines de compilación o un juego definido de etapas para crear, probar y compilar artefactos de software, entregar artefactos a repositorios y, opcionalmente, disparar un despliegue
  • Artefactos que se van a utilizar en despliegues, y repositorios de artefactos y registros de contenedor para alojarlos
  • Pipelines de despliegue o secuencias de pasos para desplegar un juego de artefactos o imágenes creadas desde un registro en un entorno de destino
  • Entornos o recursos en los que se despliegan artefactos
Imagen de los componentes del proyecto de DevOps.

Los proyectos de DevOps le permiten gestionar los recursos del ciclo de vida de entrega de software en un solo lugar y compartirlos fácilmente. Al utilizar OCI DevOps y repositorios de artefactos juntos, puede estar seguro de que la versión de software destinada a su publicación es la que se despliega, y que puede realizar un rollback a una versión anterior conocida.

Nota

Los proyectos facilitan la observación de todos sus recursos DevOps.

Código

En el servicio DevOps, puede crear sus propios repositorios de código privado en un repositorio de código OCI, que es como Git. Las confirmaciones, las actualizaciones, las bifurcaciones y el uso de almacenamiento se pueden ver en la consola, y se asigna un identificador de Oracle Cloud (OCID) al repositorio cuando lo crea. También puede editar, clonar y suprimir repositorios.

Como alternativa, puede utilizar repositorios de código externos como GitHub y GitLab, o crear un reflejo de repositorio de código externo de GitHub, GitLab o Bitbucket Cloud en un repositorio de código de OCI. Si utiliza repositorios autoalojados (servidor de GitLab y servidor de Bitbucket) con direcciones IP privadas, podrá seguir accediendo a ellos desde los pipelines.

Consejo

Para obtener más información, consulte Gestión de repositorios de código y Adición de una etapa Compilación gestionada.

Artefactos

Un artefacto es una referencia a cualquier binario, paquete, manifiesto de Kubernetes, imagen de contenedor u otro archivo que conforme su aplicación y se entregará a un entorno de despliegue de destino. Los artefactos generados por la compilación y utilizados en el despliegue se almacenan en registros. OCI tiene dos tipos de registros para almacenar, compartir y gestionar artefactos:

  • Container Registry es un servicio gestionado basado en estándares abiertos que almacena varias versiones de Docker u otras imágenes de contenedor, además de archivos relacionados, como manifiestos y gráficos de Helm. Estas imágenes se pueden transferir a un cluster de Kubernetes para su despliegue mediante Kubernetes Engine (OKE).
  • Artifact Registry almacena paquetes de software, bibliotecas, archivos .zip y otros tipos de archivos que se utilizan para desplegar aplicaciones. Estos archivos se pueden llamar cuando se dispara el pipeline de despliegue.
Nota

También puede utilizar registros de artefactos externos como Sonatype o Artifactory y crear un reflejo de estos en Artifact Registry de OCI. Esto significa que podrá continuar utilizando la configuración actual con OCI DevOps.

Pipelines de compilación y despliegue

Los pipelines de compilación y despliegue de OCI DevOps reducen los errores causados por cambios y reducen el tiempo que dedica a las compilaciones y los despliegues. Los desarrolladores confirman el código fuente en un repositorio de código, crean y prueban artefactos de software con un programa de ejecución de compilación, entregan artefactos a repositorios de OCI y, a continuación, ejecutan un despliegue en plataformas de OCI.

Puede utilizar DevOps para implantar diversas estrategias de pipeline de despliegue, incluida una estrategia verde azul (que consta de dos entornos de producción idénticos), una estrategia de canario y una estrategia sucesiva.

Consejo

Para obtener instrucciones detalladas sobre el pipeline, consulte Gestión de pipelines de compilación y Gestión de pipelines de despliegue.

Los logs de las ejecuciones y despliegues de la compilación se almacenan en el servicio OCI Logging para su auditoría y gobernanza. Su equipo también puede recibir notificaciones de eventos en los pipelines de DevOps a través del servicio OCI Notifications.

Nota

También puede utilizar el plugin Compute Jenkins para centralizar la automatización de compilación y los despliegues a escala, entregar sus artefactos a OCI Artifact Registry y disparar los pipelines de despliegue de DevOps.
Entornos

Un entorno es una recopilación de los recursos informáticos en los que se despliegan los artefactos y es la plataforma de destino de su aplicación. Los tipos de entorno de tiempo de ejecución de destino soportados en OCI incluyen instancias informáticas con hardware dedicado o de VM en Oracle Linux y CentOS, Kubernetes Engine y Functions. El entorno que elija para el despliegue dependerá de sus necesidades en cuanto a flexibilidad, seguridad, velocidad y otros requisitos:

  • Los hosts con hardware dedicado ofrecen el mayor nivel de control, seguridad y costos. Una buena opción para proyectos que requieren un espacio más constante, más grande, o independiente y seguro. Consulte Descripción general de Compute.
  • Las máquinas virtuales permiten una mayor versatilidad, escalado y uso compartido de recursos. Las aplicaciones compartidas y el hardware físico proporcionan ahorros de costos, velocidad de recuperación ante desastres y un aprovisionamiento más rápido. Consulte Descripción general de Compute.
  • Kubernetes Engine es ideal para entornos de alta densidad y implementaciones pequeñas y medianas en las que necesite hacer más con menos recursos. Consulte Diseño de aplicaciones.
  • Functions es ideal con cargas de trabajo dinámicas en las que el uso cambia con frecuencia, ya que solo paga por los servicios cuando los utiliza.

Debe crear su cluster de Kubernetes Engine, función o instancia informática antes de crear un entorno DevOps. A continuación, puede crear referencias a diferentes entornos de destino para el despliegue de DevOps.

Seguridad

DevSecOps es un enfoque de cultura, automatización y diseño de plataformas que integra la seguridad como una responsabilidad compartida en todo el ciclo de vida de DevOps.

La seguridad continua tiene tres elementos principales:

  • A medida que se agregan nuevas funciones, es necesario ajustar y actualizar estrategia de seguridad de forma continua. Es posible que se agreguen controles de seguridad nuevos o modificados (o que algunos se eliminen). Estos controles se deben probar continuamente durante los ciclos de desarrollo y despliegue mediante conjuntos de pruebas de seguridad automatizados.
  • Las aplicaciones nativas en la nube se deben crear para la resiliencia. Debido a que incluso el software diseñado y probado cuidadosamente puede contener vulnerabilidades de seguridad, un sólido sistema de supervisión de seguridad debe identificar las intrusiones y las infecciones en tiempo real. Las respuestas automatizadas a los incidentes deben proteger los servicios.
  • A medida que se publican nuevas funciones en producción mediante el pipeline de integración y despliegue continuos, los comprobadores de cumplimiento de la seguridad y los sistemas de evaluación de vulnerabilidad de las aplicaciones deben medir y registrar cualquier nueva exposición a riesgos. Los riesgos identificados durante la integración de nuevas funciones requieren la revisión del marco de controles de seguridad, que debe modificarse para mitigar esos riesgos.

IAM

Cree políticas de Oracle Cloud Infrastructure Identity and Access Management (IAM) para controlar quién tiene acceso a los recursos de DevOps y para controlar el tipo de acceso de cada grupo de usuarios. Consulte los siguientes temas para ver algunos conceptos básicos y ejemplos de políticas relacionados:

Vault

Como mejor práctica, los ingenieros de DevOps utilizan el servicio Vault de OCI para ayudar a mejorar la estrategia de seguridad general para sus despliegues de aplicaciones y servicios.

Puede utilizar el servicio Vault para gestionar claves de cifrado y secretos de forma centralizada. Los secretos son credenciales, como las contraseñas, los tokens o cualquier otro dato confidencial que necesite utilizar con otros servicios de OCI y aplicaciones o sistemas externos. El almacenamiento de secretos en un almacén proporciona una mayor seguridad que la que podría conseguir almacenándolos en otro lugar, como en archivos de código o de configuración.

Vault se integra directamente con los servicios de OCI, los SDK y los clientes de API, y gestiona el cifrado de las credenciales de contraseña que se utilizan con cualquier aplicación externa.

Mejores Prácticas de Seguridad para Kubernetes Engine

Al utilizar OCI Kubernetes Engine, siga estas mejores prácticas de seguridad:

Mejores prácticas de seguridad para Functions

Al utilizar OCI Functions, siga estas mejores prácticas de seguridad:

Observación

Las herramientas de DevOps deben ayudarle a alcanzar una comprensión completa del funcionamiento del sistema y a elegir las métricas adecuadas para supervisar de forma proactiva. Debe poder detectar las incidencias al principio del proceso y supervisar el estado de forma continua.

Las herramientas de DevOps también deben ayudarle a mantener una seguridad integral de los sistemas de información, ya sea el centro de datos físico, las redes o las aplicaciones.

Con el enfoque adecuado de observación, puede reducir el tiempo de inactividad, acelerar el tiempo medio de detección (MTTD) y el tiempo medio de resolución (MTTR), y aumentar la satisfacción del cliente y la prestación del servicio.

Servicios clave de observación de OCI

Monitoring puede ayudarle a obtener estadísticas sobre las cargas de trabajo de OCI con métricas DevOps para el estado y el rendimiento. Puede configurar alarmas con umbrales para detectar y dar respuesta a anomalías en la infraestructura y la aplicación.

Consejo

Aunque las métricas de OCI se muestran en gráficos a través de la consola, puede utilizar el plugin Grafana para ver métricas de recursos de distintos proveedores en un único panel de control de Grafana.

Logging puede ingerir datos de log de cientos de orígenes. Puede generar logs, como logs de auditoría y logs de flujo de red, y utilizarlos para diagnosticar incidencias de seguridad. Los logs de DevOps emiten todos los logs de recursos del proyecto de DevOps.

Logging Analytics es una solución en la nube basada en aprendizaje automático que supervisa, agrega, indexa y analiza todos los datos de log de entornos locales y multinube. Le permite buscar, explorar y correlacionar estos datos para solucionar problemas de forma más rápida, derivar estadísticas operativas y tomar mejores decisiones.

Notifications es un servicio de publicación/suscripción de baja latencia y alta disponibilidad que envía alertas y mensajes a funciones, correo electrónico y partners de entrega de mensajes, incluidos Slack y PagerDuty.

Eventos realiza un seguimiento de los cambios en los recursos mediante eventos que cumplen con el estándar CloudEvents de Cloud Native Computing Foundation (CNCF). Elimina la complejidad que supone realizar un seguimiento manual de los cambios en los recursos en la nube. Los eventos de DevOps son archivos JSON que se emiten con algunas operaciones del servicio y transportan información sobre esa operación. Puede definir reglas que disparen una acción concreta cuando se produzca un evento.

Servicios y herramientas de DevOps

Servicios
  • Application Dependency Management detecta vulnerabilidades de seguridad en dependencias de aplicación.
  • Application Performance Monitoring proporciona un completo juego de funciones para supervisar las aplicaciones y diagnosticar problemas de rendimiento.
  • El Artifact Registry proporciona repositorios para almacenar, compartir y gestionar paquetes de desarrollo de software.
  • Kubernetes Engine (OKE) ayuda a definir y crear clusters de Kubernetes para permitir el despliegue, la ampliación y la gestión de aplicaciones en contenedores.
  • Container Registry le permite almacenar, compartir y gestionar imágenes de contenedor (como las imágenes de Docker) en un registro gestionado por Oracle.
  • Los paneles de control de la consola le permiten crear paneles de control personalizados en la consola para supervisar recursos, diagnósticos y métricas clave de su arrendamiento.
  • DevOps es un servicio (CI/CD) que automatiza la entrega y el despliegue del software.
  • Eventos le ayuda a crear una automatización basada en los cambios de estado de los recursos en su arrendamiento.
  • Functions es una plataforma sin servidor que le permite crear, ejecutar y escalar la lógica de negocio sin gestionar ninguna infraestructura.
  • IAM utiliza dominios de identidad para proporcionar funciones de gestión de identidad y acceso como la autenticación, la conexión única (SSO) y la gestión del ciclo de vida de identidad.
  • Logging proporciona una interfaz única altamente escalable y totalmente gestionada para todos los logs de su arrendamiento.
  • Logging Analytics permite indexar, enriquecer, agregar, explorar, buscar, analizar, correlacionar, visualizar y supervisar todos los datos de log de las aplicaciones y la infraestructura del sistema.
  • Monitoring permite consultar métricas y gestionar alarmas. Las métricas y las alarmas ayudan a supervisar el estado, la capacidad y el rendimiento de los recursos en la nube.
  • Notifications difunde mensajes a componentes distribuidos mediante un patrón de publicación-suscripción, lo que proporciona mensajes seguros, altamente fiables, de baja latencia y duraderos.
  • Resource Manager automatiza el despliegue y las operaciones de todos los recursos de OCI mediante el modelo de IaC.
  • Streaming proporciona una solución duradera, escalable y totalmente gestionada para la ingesta y el consumo de flujos de datos de gran volumen en tiempo real.
  • Vault Service (Servicio de almacén) es un servicio de gestión de cifrado que almacena y gestiona claves de cifrado y secretos para acceder de forma segura a los recursos.
  • Vulnerability Scanning ayuda a mejorar la estrategia de seguridad mediante la comprobación rutinaria de hosts e imágenes de contenedores para detectar posibles vulnerabilidades.