Frases Comunes Para Políticas Portátiles y Más Allá

Publicado el 20 julio 2024 por Lauratuero @incubaweb

En un importante avance en el campo de las expresiones lógicas y la tecnología de código abierto, se ha anunciado el lanzamiento del Common Expression Language (CEL). Esta herramienta se destaca por su capacidad para escribir pequeños fragmentos de lógica que pueden ejecutarse en cualquier lugar con la misma semántica y una velocidad de evaluación que va desde nanosegundos hasta microsegundos. El lanzamiento de cel.dev simboliza un hito significativo en el crecimiento y estabilidad de este lenguaje.

CEL ya es utilizado en varios productos muy conocidos, como Kubernetes, donde ayuda a evitar configuraciones costosas y erróneas en producción. Por ejemplo, se puede usar para definir que el número de réplicas de un objeto no debe exceder de cinco líneas de código. Además, Cloud IAM incorpora CEL para habilitar autorizaciones específicas y detalladas.

Una de las características más destacadas de CEL es su versatilidad. Este lenguaje es de código abierto y está gobernado de manera abierta, lo cual ha facilitado su adopción tanto dentro como fuera de Google. Diversas compañías tecnológicas emplean CEL en sus productos públicos o internamente, y el nuevo sitio cel.dev busca fomentar la comunidad y compartir más sobre este lenguaje.

Uno de los aspectos que hace a CEL único frente a otros lenguajes como Cedar Policy de Amazon o Rego de Open Policy Agent es su alta optimización de evaluación, su portabilidad en lenguajes como C++, Java y Go, y la existencia de miles de pruebas de conformidad que aseguran un comportamiento consistente. Además, CEL permite la extensión y el subsetting, aspectos cruciales para mantener un impacto predecible en el cómputo y la memoria.

CEL soporta la evaluación parcial utilizando lógica de cuatro valores (verdadero, falso, error y desconocido), lo que permite determinar si una política es definitivamente permitida, denegada o condicionada a entradas adicionales. Esta capacidad es de gran utilidad para realizar análisis de escenarios hipotéticos con datos históricos o con nuevos casos propuestos.

Por su parte, el lenguaje de políticas Cedar de Amazon se enfoca en la validación formal de políticas para asegurar su corrección en el momento de la creación. Aunque esta técnica es confiable, tiene dificultades para escalar con grandes volúmenes de datos. CEL, en cambio, adopta un enfoque pragmático, evaluando sobre datos parciales a alta velocidad y con recursos mínimos.

En comparación, Rego de Open Policy Agent es un lenguaje mucho más poderoso que ofrece verificaciones similares a las de Cedar, pero su complejidad lo hace idóneo para soluciones no críticas en términos de latencia y de un solo inquilino, siendo difícil integrarlo en aplicaciones existentes.

La lógica de cuatro valores empleada por CEL proporciona una alternativa escalable a la verificación formal y a la expresividad de Datalog, permitiendo una evaluación eficiente incluso con entradas parciales. CEL está diseñado para traducirse de manera efectiva a SQL, lo cual permite realizar evaluaciones de políticas sobre grandes conjuntos de datos con alto rendimiento.

El lanzamiento de cel.dev marca un paso crucial en la madurez y adopción de CEL, abriendo nuevas oportunidades para escribir lógica portátil y crítica en términos de latencia. La comunidad de CEL está emocionada por colaborar en el desarrollo de este robusto motor de lógica, y se invita a los interesados a unirse a la discusión y contribuir a la evolución de esta tecnología.
vía: Google Blog Open Source