Prácticas recomendadas para las familias de imágenes

En este documento, se explican las prácticas recomendadas para usar familias de imágenes en Compute Engine.

Antes de comenzar

Familias de imágenes públicas

Compute Engine proporciona familias de imágenes para ayudarte a garantizar que tus sistemas de automatización puedan hacer referencia a las imágenes más recientes. Como administrador, puedes agrupar un conjunto de imágenes como una familia de imágenes. Luego, los usuarios de las imágenes solo tendrán que hacer un seguimiento del nombre de la familia de imágenes, en lugar de un nombre de imagen exacto. Debido a que los nombres de imágenes deben ser únicos, las canalizaciones de compilación de imágenes suelen crear nombres de imágenes con información codificada, como el nombre de la aplicación, la fecha y la versión, por ejemplo, my-application-v3-20161011. En las herramientas de automatización, puedes hacer referencia al nombre de la familia de imágenes en lugar de tener que actualizar el nombre de la imagen a intervalos. El uso de familias de imágenes garantiza que siempre se muestre la última imagen de la familia, por ejemplo, my-application.

Familias de imágenes

Una familia de imágenes públicas siempre apunta a la última versión de una imagen que no está obsoleta. Las imágenes públicas se agrupan en una familia de imágenes. Por ejemplo, la familia de imágenes debian-9 en el proyecto debian-cloud siempre apunta a la imagen de Debian 9 más reciente.

Familias de imágenes personalizadas

Puedes crear tus propias imágenes con una familia de imágenes personalizada. La familia de imágenes apunta a la imagen más reciente que usaste para crear la familia de imágenes. Para revertir una familia de imágenes a una versión anterior, puedes hacer que la imagen más reciente de esa familia quede obsoleta (siempre que la imagen anterior no esté obsoleta). Para obtener más información, consulta Configura las versiones de imágenes en una familia de imágenes.

Para crear una imagen con una familia de imágenes, o crear una familia de imágenes si no existe ninguna, debes agregar una marca --family adicional al paso de la creación de la imagen, por ejemplo:

gcloud compute images create my-application-v3-20161011 \
    --source-disk my-application-disk-1 \
    --source-disk-zone us-central1-f \
    --family my-application

Después de ejecutar este comando, cualquier llamada para ejecutar una instancia basada en la imagen my-application apunta a la imagen recién creada, my-application-v3-20161011.

Cómo usar familias de imágenes

Si bien las familias de imágenes te permiten hacer referencia a la imagen más reciente, puede que la última imagen presente una incompatibilidad con tu aplicación, lo que puede causar problemas en un entorno de producción si no está validado. Si deseas aprovechar los beneficios de las familias de imágenes y reducir los riesgos, te recomendamos que pruebes la última imagen de la familia de imágenes a la que se hace referencia antes de usarla en el entorno de producción.

En resumen, puedes considerar el siguiente enfoque:

  • Configura un entorno de pruebas independiente de tu entorno de producción.
  • En el entorno de pruebas, completa los siguientes pasos:
    • Crea una familia de imágenes personalizada a partir de la familia de imágenes de origen.
    • Verifica la estabilidad de la imagen nueva en la familia de imágenes personalizada en comparación con tus cargas de trabajo.
  • Una vez verificada, mueve esta familia de imágenes personalizada a un entorno de producción.

Por ejemplo, el proceso podría parecerse al siguiente procedimiento.

  1. En tu proyecto de prueba, crea una imagen de la familia de imágenes de origen. Esta nueva familia de imágenes también debe tener su propia familia de imágenes personalizada para hacer referencia en el entorno de pruebas. Para crear la imagen con una familia de imágenes personalizada, ejecuta el siguiente comando:

    gcloud compute images create test-image-name \
    --source-image-project source-project \
    --source-image-family source-image-family \
    --project test-project \
    --family test-image-family
    

    Reemplaza lo siguiente:

    • test-image-name: El nombre de tu imagen de prueba
    • source-project: El proyecto al que pertenece la familia de imágenes de origen
    • source-image-family: El nombre de la familia de imágenes de origen
    • test-project: El nombre del proyecto de prueba al que deseas agregar la familia de imágenes
    • test-image-family: El nombre de tu familia de imágenes de prueba
  2. Mediante tu familia de imágenes personalizada test-image-family, crea una VM para probar tu carga de trabajo. Para crear la VM, ejecuta el siguiente comando:

    gcloud compute instances create test-instance-name \
    --image-family your-test-image-family \
    --project test-project
    

    Reemplaza lo siguiente:

    • test-instance-name: El nombre de tu instancia de prueba
    • test-image-family: El nombre de tu familia de imágenes de prueba
    • test-project: El nombre de tu proyecto de prueba
  3. Cuando hayas validado que esta imagen funciona bien para tu carga de trabajo, cópiala en tu entorno de producción.

    gcloud compute images create prod-image-name \
    --source-image-family test-image-family \
    --source-image-project test-project \
    --project prod-project \
    --family prod-image-family
    

    Reemplaza lo siguiente:

    • prod-image-name: El nombre de tu imagen de producción
    • test-image-family: El nombre de tu familia de imágenes de prueba
    • test-project: El proyecto al que pertenece la familia de imágenes de prueba
    • prod-project: El nombre de tu proyecto que se encuentra en el entorno de producción
    • prod-image-family: El nombre de la familia de imágenes que deseas usar en tu entorno de producción