
Sessenta contêineres em um servidor
Uma caixa bare-metal executa dezenas a centenas de contêineres Hoody. KSM e BTRFS dedup fazem o custo marginal próximo a zero.
Anúncio de embarque. O job do relatório diário está marcado para 7h UTC, mas o destinatário está em Tóquio e o horário está errado. Você abre a URL do crontab no celular, toca na linha, muda dois campos, aperta Salvar. O PATCH passa. O job dispara hoje à noite no novo horário. Sem sessão SSH, sem jump box, sem laptop.
O serviço de cron fala JSON sobre HTTPS. O navegador do celular envia um PATCH no UUID da entrada com o novo campo schedule. O crontab do sistema é re-injetado pelo serviço. O próximo disparo está no body da resposta.
O PATCH só carrega o campo que mudou. O serviço o mescla na entrada existente, recomputa next_run e re-injeta a linha no crontab do sistema. Não há sessão SSH, sem jump host, sem laptop.
A edição inteira cabe entre a chamada de embarque e a fila prioritária. Abra a URL. Mude o campo. Caminhe até o avião.
O serviço de cron tem sua própria URL — cron.containers.hoody.com/users/me/crontab. A mesma página abre em qualquer navegador, incluindo o do seu celular. A auth é a URL. Sem bastion, sem prompt do AnyConnect, sem ritual de chave-no-laptop.
Cada entrada gerenciada é um objeto JSON com schedule, command, comment, enabled. Você toca na linha, o campo schedule fica editável, você troca 0 7 * * * por 30 4 * * 1-5. Os outros campos não são tocados.
Salvar dispara um PATCH em /users/me/entries/[id]. A resposta diz 200 OK e devolve o novo next_run. O crontab do sistema é atualizado em menos de um segundo. Você fecha a aba e caminha.
Hoody Cron expõe um pequeno CRUD sobre o crontab. Cada entrada gerenciada tem um UUID; cada entrada pode ser patched em isolamento. Abaixo estão os quatro endpoints que o celular usa para editar, mutar, listar ou deletar um job.
Endpoints pelo serviço Hoody Cron. Caminhos relativos a https://PROJECT-CONTAINER-cron-1.SERVER.containers.hoody.com.
Os números que importam para uma pessoa em pé no portão com uma tela de 6 polegadas.
schedule, command, comment, enabled, expires_at. Cada um pode ser enviado sozinho. Os outros campos ficam intocados, então o comment que você escreveu às 9h de ontem sobrevive à edição no aeroporto.
Um PATCH do celular. Uma resposta 200 com o novo next_run. O crontab do sistema é re-injetado pelo serviço na mesma chamada — sem segunda requisição, sem polling.
Sem SSH, sem bastion, sem AnyConnect. O crontab é uma URL e a auth é a URL. A chave de hardware no seu laptop fica na mochila.
Seu crontab é uma URL, então editá-lo é uma URL.
Quando o agendamento é alcançável a partir de um navegador, o lugar onde você está parado deixa de importar. O portão de embarque é um escritório fino. O celular é um terminal fino. O PATCH é a mudança.
A maioria desses só existe porque o crontab não era alcançável de um celular. Quando o agendamento é uma URL, os rituais para chegar até ele somem junto.
Você ficou em pé no portão e mudou quando o job dispara hoje à noite.