OpenKeel: la solución Cloud soberana, francesa y de alcance europeo, del grupo inherent Descubrir inherent

Arquitectura

FinOps / GreenOps y CloudKitty

Lo que costó un proyecto, lo que costaría y lo que emite: CloudKitty tarifica el uso a posteriori, openkeel-pricing presupuesta coste y carbono al momento, y Skyline muestra ambos.

De las métricas al panel

  1. 01

    Prometheus

    Series de openstack-exporter (instancias, volúmenes, imágenes) en el Prometheus de la pila de observabilidad

  2. 02

    Processor de CloudKitty

    Recoge cada hora el uso de cada proyecto y lo tarifica con reglas hashmap y scripts CEL

  3. 03

    InfluxDB

    Conserva el historial tarificado por proyecto, periodo y servicio

  4. 04

    Skyline

    La página FinOps / GreenOps lee los resúmenes; los formularios y la ventana de cuotas leen openkeel-pricing

Dos servicios que se complementan

rating

CloudKitty: ¿cuánto ha costado?

  • Tarifica el uso recogido, periodo a periodo
  • Conserva el historial; resúmenes, dataframes, retarificación
  • La API de OpenStack, sin cambios para sus clientes
Más información
pricing

openkeel-pricing: ¿cuánto costaría ahora y qué emite?

  • Coste unitario y huella de carbono de cada recurso, por proyecto
  • Presupuestos de recursos en construcción (VM según su flavor, volúmenes, S3, DNS, VPN)
  • Un añadido de OpenKeel, sin equivalente en OpenStack, instalado por defecto

CloudKitty en OpenKeel

El servicio de tarificación reescrito en Go a partir de la reverse-spec de stable/2026.2: las mismas 66 operaciones de API (v1, hashmap, pyscripts, v2), códigos de estado, cuerpos de error y políticas.

ParteOpenKeel
API (cloudkitty-api)Reglas, módulos, resúmenes, dataframes y presupuestos instantáneos; presupuestos calculados en la API con el mismo código de tarificación
Processor (cloudkitty-processor)Lista los proyectos (fetcher de Keystone: cada proyecto habilitado), recoge su uso de Prometheus en cada periodo (1 hora), lo tarifica y lo almacena; un único processor activo tiene un Lease de Kubernetes
TarificaciónReglas hashmap (servicios, campos, correspondencias, umbrales) y scripts escritos como expresiones CEL en lugar de Python: sin instrucciones ni E/S, con límites de coste y de tiempo
AlmacenamientoInfluxDB 1.x o 2.x (InfluxQL con literales escapados); MariaDB Galera para las reglas y el estado de los scopes
Series recogidasEl fichero de métricas upstream sobre openstack-exporter: instancias (openstack_nova_server_status), capacidad de volúmenes (openstack_cinder_limits_volume_used_gb), tamaño de imágenes (openstack_glance_image_bytes), proyectos etiquetados tenant_id
DespliegueComponente opcional: okadm install --components …,cloudkitty --grafana; okadm activa openstack-exporter y dirige el colector al Prometheus de la pila; lab: un processor, InfluxDB 2 GiB
Defectos upstream corregidosBorrados limitados al scope, política de GET /v2/rating/modules, presupuestos con un desc plano, ninguna llamada a Keystone sin verificar, ventanas de retarificación y de reinicio

Las pruebas, las funciones omitidas y el inventario de la API están en la página del componente CloudKitty.

openkeel-pricing y las tarifas OpenKeelTenant

Las tarifas son recursos de Kubernetes, OpenKeelTenant (CRD instalado por okadm en ambos modos): el llamado default se aplica a todo proyecto sin el suyo propio. openkeel-pricing los vigila en memoria, sin base de datos ni bus.

RecursoUnitariasTarifa
cpuvCPUcoste y carbono al mes
ramGiBcoste y carbono al mes
gpuGPUcoste y carbono al mes
diskGiBcoste y carbono al mes
s3GiBcoste y carbono al mes
dnsdominiocoste y carbono al mes
vpnVPNcoste y carbono al mes

API: GET /v1/rates (tarifas efectivas y el OpenKeelTenant del que viene cada una) y POST /v1/quotes (un flavor, un número y recursos: líneas y totales de coste y de carbono). Costes en € al mes, carbono en kg CO₂e al mes (× 12 para el año).

Datos de ejemplo con okadm --demo

Con CloudKitty, okadm install --demo envía un frame tarificado por día para el proyecto demo, desde el primer día del mes pasado hasta ayer (su VM, su volumen, su balanceador, su contenedor y sus IP flotantes con sus identificadores reales, una VM borrada el mes pasado, la imagen base), y crea el estado del scope del proyecto para que el processor lo tarifique desde hoy. La página FinOps / GreenOps muestra los dos meses a la vez.