Ops, espere!

A resolução da sua tela parece ser muito pequena, como a de um celular, logo imagens, componentes e alguns textos podem ficar bem estranhos, recomendo fortemente ver pelo computador.

Voltar

Possibilitando o teste online de expressões CEL, nova linguagem da Google.

Possibilitando o teste online de expressões CEL, nova linguagem da Google.

Contexto.

O CEL Playground surge em um contexto em que as Expressões CEL passaram a ganhar maior relevância no ecossistema cloud-native, especialmente a partir de 2023, com sua adoção em cenários de validação, segurança e políticas dentro de ambientes Kubernetes.

Meta de alto nível.

Desenvolver um dos primeiros playgrounds do mundo que permitissem a escrita e avaliação de expressões da linguagem CEL diretamente no navegador.

Desafios.

→ Criar um playground visualmente simples e intuitivo para DevOps juniores, sem limitar a flexibilidade necessária para DevOps mais experientes.

→ Priorizar um conjunto enxuto de funcionalidades realmente essenciais, para viabilizar a entrega do projeto dentro de um prazo curto de 4 a 5 semanas.

Resumo da processo.

01

Descoberta

Definição do escopo, objetivos e entendimento do problema.

Roadmap / Benchmarking

02

Ideação

Geração de ideais, esboços de layouts, definição de fluxos.

Wireframe

03

Prototipação

Exploração refinada de layout, color system, imagens, ícones.

Visual / Protótipo Navegável

04

Hand off

Reuniões com o time de engenharia, criação de documentos de apoio.

Documentação / Style Guide

Empresa.

Getup

Período.

3 semanas

Tipo do projeto.

Code Editor

Setor.

Cloud Native (Kubernetes)

Colaborações de destaque.

UI UX Design

Visual code editor

Objetivos do CEL Playground

Experimentação de expressões CEL em ambiente controlado.

Compartilhamento rápido de expressões.

Durante as primeiras reuniões para definirmos a proposta de valor da solução, ficou muito claro que o ponto central era ser um editor de código que contemplasse as particularidades do CEL.


Por conta dos prazos, a ideia era atacar, de maneira direta, o problema de não haver playgrounds para testar CEL, exigindo experimentações nos próprios ambientes de desenvolvimento, se tornando algo arriscado e demorado.


Baseado nisso, o projeto deveria consistir, basicamente, na soma de um editor de expressões, um editor de inputs e um campo para resultados do teste.

Layout base

PRIMARY COLOR

Playground modes

CEL Expression

Active

Validating Admission Policy

Web Hooks

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

Validating Admission Policy

Examples

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

Validating Admission Policy

Examples

ICON LIBRARY

Phosphor icons

Output

Total cost:

40

validations[0]

Cost:

12

validations[1]

Cost:

-

variables.replicas

Cost:

28

Além da estrutura que possibilita-se diversos tipos de testes, um dos nossos desafios era criar um ambiente propício para DevOps juniores ou para profissionais que não tivessem familiaridade com esse tipo específico de expressão, por ser algo muito novo. Baseado nisso, tomei algumas decisões, como:


-> No área de expressões: Adicionar em um dropdown vários exemplos em que o usuário pudesse apenas adicionar e rodar.


-> Na área de resultados (Outputs): Adicionar redflags e mensagens de erro caso as expressões estivessem incorretas. Além de informar os custos para realizar cada expressão.


-> No rodapé: Adicionar a versão utilizada, além de ter um botão de documentação que leva diretamente para a documentação oficial da Google no Github.

Examples

Kubernetes

Check image registry

Disallow HostPorts

Require non-root containers

Drop ALL capabilities

Semantic version check for image tags

General

URLs

Regex

Check JWT custom claims

Duration and timestamp

Blank

Output

Total cost:

40

validations[0]

Cost:

12

validations[1]

Cost:

-

failed to compile the Validate Admissin Policy expression: ERROR: :1:1: undeclared reference to 'accoun' (in container '')

variables.replicas

Cost:

28

Para finalizar atendendo todos os objetivos definidos para o CEL Playground, adicionamos um botão de Share, para permitir que os usuários pudessem compartilhar suas expressões de maneira rápida e fácil, sem precisar de login ou credenciais.

https://playcel.undistro.io/?content=H4sIAAA…

Share

Desenvolver o CEL Playground em um curto espaço de tempo foi a todo instante um exercício de priorização. Precisei estruturar ideias rapidamente, definir limites claros de escopo e focar no que realmente faria diferença para o usuário.


Esse projeto reforçou um aprendizado importante: nem sempre a melhor solução é a mais completa. Em muitos casos, atacar diretamente a dor do usuário com uma abordagem simples e objetiva gera mais impacto do que construir uma solução robusta, cheia de recursos e exceções.

© 2026 Arley Gomes. Todos os direitos reservados.

Nota: Todo mundo do time de engenharia curtiu isso, até quem não era junior 😀

Nem toda solução precisa ser o cinturão do batman 🦇

Create a free website with Framer, the website builder loved by startups, designers and agencies.