Seu agent deveria ler sua conta de cloud das 3 da manhã
O gasto que arruína um mês aparece às 3 da manhã, não num dashboard que você confere.
Apollo Space Research
Apollo Space
Às 2h14 da manhã um retry loop travou. Um job que deveria rodar uma vez começou a rodar a cada noventa segundos, cada execução subindo um pouco de compute, cada uma custando alguns centavos que ninguém jamais notaria. Na hora do café da manhã já tinha rodado algumas centenas de vezes. No fim da semana era a maior linha da conta. O dashboard mostrava tudo isso, em tempo real, a noite toda. O dashboard estava perfeito. O problema é que um dashboard é uma sala na qual você tem que entrar, e às 2h14 da manhã a sala estava vazia.
É assim que o gasto que arruína um mês quase sempre chega. Não como um alarme. Como uma inclinação, subindo no escuro, num gráfico que ninguém abriu.
Este post é sobre fechar esse gap, e o gap não é “construa um gráfico melhor”. É sobre quem, ou o quê, está na sala quando a inclinação começa a subir.
O dashboard é uma sala na qual você tem que entrar
Aqui está o acordo que todos nós silenciosamente aceitamos: visibilidade é igual a um dashboard. Você quer saber o que está gastando, então liga um console de custos, configura os painéis, talvez o prega numa parede. É software genuinamente bom. O número é preciso, o gráfico atualiza, a quebra é honesta. E parece controle, que é exatamente por que é fácil perder o que ele silenciosamente exige de você.
Ele exige que você olhe.
Um dashboard é pull, não push. Ele fica ali sendo correto, e converte toda a sua correção em valor só no momento em que um humano vira a cabeça em direção a ele. Isso funciona bem para a coisa que você já suspeita, você teve um palpite de que o data pipeline ficou caro, então você vai checar, e lá está. Ele desmorona para a coisa que você ainda não suspeita, que é, claro, todo problema que de fato machuca. O gasto que arruína um mês aparece às 3 da manhã, não num dashboard que você confere. Ninguém confere um dashboard às 3 da manhã. Ninguém o confere num sábado. Ninguém confere o único painel que por acaso era o que importava.
Então você lança o dashboard, e você automatizou o display do número. Você não automatizou o notar do número. E notar era o trabalho inteiro.
A correção ingênua é um threshold, e ela mente duas vezes
A jogada óbvia seguinte, a que quase todo time busca, é o alerta de budget. Defina um número. “Me mande email se o gasto diário passar de X.” Agora o gráfico consegue gritar. Problema resolvido, com certeza.
Não está, e vale a pena ser preciso sobre o porquê, porque o threshold falha em duas direções opostas ao mesmo tempo.
Defina o threshold baixo e ele cria pânico falso. O último push de marketing, o batch job trimestral, o dia em que você fez backfill de um ano de dados, todos eles estouram a linha por razões perfeitamente boas, e depois do terceiro alarme falso você silencia o canal. Agora o alerta está off precisamente para não te incomodar. Defina o threshold alto e ele fica em silêncio exatamente através da falha que importa: o job em loop que adiciona alguns centavos de cada vez nunca cruza uma linha desenhada para catástrofes, então ele sobe até o fechamento do mês sob o radar. Um número fixo ou é nervoso demais para manter ou anestesiado demais para ajudar. Ele não faz ideia de como o normal parece para você, então não consegue distinguir um spike de uma estação.
Um threshold conhece o seu limite. Ele não faz ideia de quanto a sua terça-feira deveria custar.
Esse é o sinal. O alerta de budget ainda é um dashboard, um dashboard com um pixel e um fio de gatilho. Ele reage a um nível. O que você de fato precisava era algo que entendesse o formato: que esta curva está se dobrando de um jeito que a do mês passado nunca se dobrou, numa hora em que nada deveria estar se movendo, de um jeito que rastreia de volta para um deploy de quarenta minutos atrás.
Os mesmos dados, a noite toda, nas duas lanes. A diferença não é o número. É que uma lane esperou para ser olhada, e a outra já estava olhando.
O formato, não o total, e a causa, não o gráfico
Vamos encenar a versão burra de “entender o formato”, porque a versão burra é onde a maioria das tentativas para. Você pega o threshold e o torna mais sofisticado: uma média móvel, uma banda de desvio-padrão, uma flag de “anomalia”. Melhor que uma linha chapada, genuinamente. Mas ele ainda te entrega o mesmo artefato que o dashboard entregou, um blip num gráfico, e deixa o trabalho de fato para você. O agent diz “o gasto está anômalo”. Ótimo. Por quê? O que mudou? É a coisa que você lançou ou a coisa que um fornecedor mudou? Você se importa? Você está de volta no console às 3 da manhã, reconstruindo uma história a partir de painéis.
A razão de esse ser o ponto de parada errado é a mesma razão de que um ranking sem motivo é um palpite que você é pedido para confiar. Uma flag sem causa é só um dashboard mais ansioso.
Aqui está a versão que vale a pena construir. O watcher não reporta o total; ele reporta a inclinação, e reporta a inclinação cedo, enquanto a curva ainda está suave e a correção ainda está barata. Depois ele faz a parte que um gráfico nunca consegue: ele cruza os fluxos. Ele já sabe que um job foi deployado à 1h38. Ele já sabe o custo normal daquele job. Ele vê o gasto se dobrar às 2h14 e conecta a dobra ao deploy, o deploy ao loop, o loop a um config que dá retry numa falha que não é de fato transiente. Então o que cai na sua frente não é “o gasto subiu 40%, digamos, suponha, ilustrativamente”. É uma frase: o job que você lançou ontem à noite está travado num retry loop e já custou mais que suas últimas trinta execuções juntas; aqui está a linha para mudar.
Note o movimento naquele diagrama. Todo presente que um dashboard te dá é condicional à sua atenção. Todo presente que um watcher te dá chega quer você estivesse prestando atenção ou não. Essa conversão, de pull para push, de nível para inclinação, de blip para causa, é o produto inteiro. Não é um gráfico mais esperto. É a ausência de um gráfico que você tinha que ler.
Isso não é sobre contas de cloud
A conta de cloud é só o exemplo mais limpo, porque o custo é um número literal e a falha é tão legivelmente noturna. Mas quando você enxerga o formato, você o encontra em todo canto de uma empresa onde o dano se acumula quietamente e o dashboard ficou sem ser observado.
A taxa de erro que rastejou de rara para constante ao longo de uma semana, nunca ruim o suficiente num único dia para acionar alguém, até o suporte estar se afogando. A dependência que escorregou para fora de data uma versão minor de cada vez até um aviso de segurança torná-la urgente da noite para o dia. O sinal de churn escondido em logs de uso que ninguém consulta até a call de renovação, quando ele é um postmortem em vez de uma salvação. A nota fiscal do contratado que renova automaticamente a uma taxa maior enterrada num item de linha. Nenhuma dessas é uma falha de inteligência. Cada uma é uma falha de quem-estava-na-sala, uma inclinação que subiu no escuro enquanto o único instrumento disponível era um dashboard esperando para ser aberto.
Esse é o trabalho que não cabe numa parede de gráficos, porque não é um número para exibir. É uma vigília para manter. E uma vigília é exatamente aquilo em que uma pessoa é pior, nós dormimos, piscamos, olhamos o painel errado, e aquilo para o qual um sistema always-on é construído. O gasto que arruína um mês aparece às 3 da manhã, não num dashboard que você confere. A correção nunca foi um gráfico mais brilhante. Era algo acordado quando o gráfico não estava.
Por que “acordado” é uma escolha de arquitetura, não uma escolha de modelo
Aqui está a parte que surpreende as pessoas. Tornar o watcher real não tem quase nada a ver com quão esperto o modelo é. Você não precisa de um frontier model para notar uma curva se dobrando numa hora incomum. O que você precisa são três coisas chatas e estruturais que o dashboard nunca teve.
Ele tem que estar rodando quando você não está, no próprio relógio, observando numa terça às 3 da manhã sem um humano no loop para acioná-lo. Ele tem que ver o seu mundo num só lugar, o gasto e o log de deploy e o histórico de jobs e as mudanças de fornecedor, lado a lado, para que ele possa conectar a dobra à causa em vez de só anunciar a dobra. E ele tem que ter permissão de falar, de te alcançar sem ser pedido, com uma frase, no momento em que a curva começa a se dobrar em vez do momento em que você finalmente confere.
Nenhuma dessas é uma questão de inteligência. As três são questões de se a coisa é um sistema operacional para a sua empresa, on, observando, segurando contexto, autorizado a interromper, ou só mais uma caixa que você abre e consulta. O gasto que arruína um mês aparece às 3 da manhã, não num dashboard que você confere. Uma caixa mais esperta que você abre ainda espera você abri-la. O jogo inteiro é já estar on.
A virada
Passamos anos sendo o watcher nós mesmos. Todo líder de engenharia que respeitamos também. Você aprende, do jeito difícil, a manter um pequeno processo de fundo rodando na sua própria cabeça, uma cutucada aquele batch job chegou a terminar, a conta está estranha este mês, o config de retry foi lançado do jeito que você quis?, e você o carrega para o jantar, para o fim de semana, para o despertar das 3 da manhã em que você estende a mão para o telefone para checar um gráfico que você não consegue parar de pensar.
Nós contamos a nós mesmos que vigilância é o que nos torna bons no trabalho. É o oposto. É o imposto que pagamos por não ter um sistema que mantém a vigília por nós. Cada watt de atenção gasto observando a inclinação é um watt não gasto na única coisa que um líder não consegue delegar, decidir o que construir, o que vale o gasto em primeiro lugar, para onde o time deveria apontar. Você se tornou o watcher porque nada mais o faria. Isso nunca foi o melhor uso de você, e você sabia disso às 3 da manhã com o telefone na mão.
A promessa não é um console de custos mais bonito. É que na próxima vez que um job entrar em loop no escuro, a mensagem já vai estar escrita quando você acordar, e a pessoa mais capaz do time deixa de ser a que fica acordada observando o gráfico, e passa a ser a que decide quais gráficos sequer valem a atenção de uma empresa.
Estamos construindo isso na Apollo Space, não uma parede de dashboards que você precisa lembrar de ler, mas algo acordado às 3 da manhã que lê a conta para que você não precise, rastreia a inclinação até sua causa, e te conta numa frase enquanto ainda há tempo de consertar. Se a parte mais cansativa de liderar um time é o processo de fundo que você nunca consegue desligar de verdade, isso nunca foi uma falha em você. Era um coworker faltante, e esse, finalmente, não dorme.
A Apollo cuida da operação repetitiva da sua empresa pro seu time não precisar.
Entre na lista de espera: acesso antecipado, preço de usuário fundador e um lugar na primeira fila enquanto a gente constrói.
Entrar na lista de esperaA morte lenta da voz de um marketeiro
Você publica uma peça real por semana e silenciosamente a traduz em dez, e cada tradução é uma pequena chance de soar um pouco menos como você mesmo. Construímos o OS porque nada no mercado estava guardando isso.
Pensamento de ProdutoNo dia em que alguém pede demissão, sua empresa esquece como ela funciona
Onboarding não está quebrado porque o treinamento é ruim. Está quebrado porque sua empresa não consegue lembrar, e cansamos de ver a resposta sair pela porta.
Pensamento de ProdutoA primeira coisa que um novo contratado deveria fazer é ler a empresa
Um ótimo onboarding não te entrega docs, ele já sabe quem você é quando você faz login.