Mejoras importantes para tu etiquetador favorito de recursos de Google Cloud, con soporte para PubSub y CloudSQL.
En 2018, DoiT International lanzó Iris, un proyecto open-source para el etiquetado automatizado de recursos en Google Cloud. Hoy me complace anunciar Iris 3, con nuevas funcionalidades y una implementación moderna.

Cómo te ayuda Iris
Iris asigna etiquetas automáticamente a los recursos de Google Cloud para obtener reportes de facturación más detallados y fáciles de analizar.
Cada recurso de Google Cloud dentro de la organización de GCP recibe etiquetas generadas automáticamente que reflejan los campos del recurso. Por ejemplo, una instancia de Google Compute Engine obtiene etiquetas como [iris_name:nginx] e [iris_region:us-central1]. (El prefijo es configurable.)
Quizá te sorprenda, pero sin estas etiquetas la información simplemente no aparece en los datos de facturación.
Con ellas, puedes crear reportes en tu herramienta favorita de análisis de facturación.
Cómo usar Iris
Veamos cómo Iris te ahorra tiempo al crear reportes sobre tus facturas en la nube en dos sistemas:
- El Cloud Management Platform de DoiT International
- La Billing Console de Google Cloud
DoiT Cloud Management Platform
En la GUI de Cloud Reports del Cloud Management Platform, arma un reporte con el período y los campos que necesites, luego haz clic en el chip Labels para seleccionar el nombre o los nombres de tus etiquetas, por ejemplo, iris_instance_type. Haz clic en el nuevo chip de etiqueta (iris_instance_type) para filtrar por valores específicos. En este punto también puedes excluir los recursos sin etiqueta, por ejemplo, los que están en proyectos que se configuraron para que Iris 3 los ignore.
Después arrastra el chip de etiqueta al panel izquierdo para definir la agrupación, y listo.

Reportes por tipo de instancia en el Cloud Management Platform
Reportes de facturación de Google Cloud Platform
Aunque me encantaría tenerte con nosotros en DoiT, sé que no todos están aquí todavía, así que también puedes hacerlo en los reportes nativos de facturación de GCP.
En una vista de la Billing Console, arma un reporte con el período y los campos que necesites, luego haz clic en Labels en el panel inferior derecho e ingresa el nombre de la clave o claves de tu etiqueta, por ejemplo, iris_instance_type. En este punto puedes seleccionar valores específicos para filtrar. (Los recursos sin etiqueta se excluyen automáticamente.) Luego ve a Grouping y vuelve a ingresar tu etiqueta.

Reportes por tipo de instancia en la Billing Console
Productos de Google Cloud compatibles
Por ahora, se admiten los siguientes tipos de recursos:
- Instancias de Compute Engine (incluidas las preemptibles y las creadas por Managed Instance Groups), Disks y Snapshots. (Las etiquetas son name, region, zone e instance type)
- Cloud Storage Buckets (name)
- Instancias de CloudSQL (name y region)
- Datasets y Tables de BigQuery (name y location)
- Instancias de BigTable (name, region y zone)
- Topics y Subscriptions de PubSub (name)
Puedes agregar fácilmente otros tipos de etiquetas y de recursos. Mira las instrucciones aquí.
¿Cuándo se ejecuta?
Iris puede hacerlo de forma programada y al momento de crear el recurso:
- Cada tipo de recurso se etiqueta de forma programada, cada 12 horas (configurable). Algunos tipos —las instancias de Cloud SQL y los discos de arranque creados junto con una instancia— solo se etiquetan de forma programada.
- La mayoría de los recursos también se etiquetan al instante, en cuanto se crean: Iris 3 lo hace escuchando los logs de Google Cloud Operations.
Novedades en Iris 3
Iris trae mejoras importantes, tanto en funcionalidades nuevas como en la plataforma sobre la que corre.
Nuevas funcionalidades
- Etiquetado para Topics y Subscriptions de PubSub, e instancias de Cloud SQL
- Una opción para copiar automáticamente las etiquetas del proyecto a cada recurso del proyecto
- Una opción para elegir qué proyectos se etiquetan (si solo algunos lo necesitan, lo que también reduce costos); o bien, etiquetar recursos en todos los proyectos de toda la organización
- Una opción para reducir costos usando solo etiquetado programado, sin etiquetado bajo demanda
- Desarrollo y configuración de plugins mucho más sencillos. (Detalles aquí.)
- Pruebas automatizadas de calidad
- Correcciones de errores, optimizaciones y mejoras. (Detalles aquí.)
Nueva plataforma
Pero el cambio más grande, y la razón del nuevo nombre y del fork del repo, fue la migración de Python 2 a la versión Python 3 del Google App Engine Standard Environment. El lenguaje Python 2 llegó al final de su ciclo de vida y dejó de tener soporte en enero de 2020, y la versión Python 2 de GAE lleva aún más tiempo descontinuada.
Google se ha comprometido a brindar soporte de largo plazo para el GAE de Python 2, debido a clientes legacy a los que les costaría migrar. Pero desarrollar nuevas funcionalidades sobre esta versión antigua oscila entre lo difícil y lo imposible: las herramientas de desarrollo y despliegue, los runtimes y las APIs ya muestran su edad. Además, Google ya no puede comprometerse a parchar todas las vulnerabilidades de seguridad, lo que es una gran señal de alerta para una aplicación web.
La migración requirió algunas APIs nuevas: entre otros cambios, se eliminó el soporte para Task Queues, así que en su lugar se usó PubSub.
Y mejor aún, fue la oportunidad para una reescritura completa con un estilo de código limpio y estándar, menos duplicación de código y otras mejoras que te facilitarán la vida como developer y contribuidor de pull requests.
¿Por qué "Iris 3"?
Esta versión vive en un repo aparte, con un nuevo nombre.
Esto se debe a que muchos usuarios prefieren quedarse con el GAE de Python 2 el mayor tiempo posible —¡aunque esté obsoleto!— por sus diferencias importantes con el GAE de Python 3.
El "3", por supuesto, no es un número de versión: es un homenaje a la plataforma GAE de Python 3
Prueba Iris
Descarga Iris 3 desde GitHub y sigue las instrucciones para desplegarlo, desarrollarlo o probarlo. Espero con interés tus comentarios y reportes de problemas. Y lo mejor de todo: revisa el archivo TODO.md y mándanos algunos pull requests.
GCP Auto-Tag vs. Iris 3
GCP Auto-Tag es otro proyecto open-source de DoiT para el etiquetado automático de instancias y discos al crearlos.
Las diferencias:
- GCP Auto-Tag, a diferencia de Iris 3, agrega etiquetas con el correo de quien creó el recurso y, en el caso de los discos, el nombre de la instancia a la que están conectados
- GCP Auto-Tag etiqueta los discos de arranque al crearlos junto con la instancia.
- Iris 3, a diferencia de Auto-Tag, agrega etiquetas con name, zone, region e instance type.
- Iris 3 etiqueta más tipos de recursos.
- Iris 3 abarca múltiples proyectos dentro de una organización y copia las etiquetas del proyecto en los recursos.
- Iris 3 etiqueta recursos creados incluso antes de su despliegue.
Más información
Lee más sobre Iris:
- Un artículo sobre cómo rastrear costos por región u otros campos. Ese artículo trata sobre reOptimize, pero lo mismo aplica al nuevo Cloud Management Platform de DoiT
- Mejores prácticas para el etiquetado de recursos.