Projetos
A unidade de isolamento na Kisenon — nomenclatura, ciclo de vida e semântica de cascata.
Um projeto é o contêiner de nível superior na Kisenon. Todo branch, endpoint, role e banco de dados vive sob exatamente um projeto.
O que um projeto possui
- Um branch
main, auto-criado no momento da criação do projeto. - Storage copy-on-write com escopo neste projeto. Nenhum outro projeto pode ler suas páginas.
- A versão major do Postgres fixada na criação.
- Uma região. Hoje todo projeto vive na única região de home-cluster (EUA, bare metal); multi-região está no roadmap.
Isolamento de projeto
Storage, WAL e caches são particionados por projeto; não há caminho de escrita compartilhado entre projetos. Endpoints de projetos diferentes não conseguem alcançar o storage uns dos outros mesmo que seus pods de compute estejam agendados no mesmo node — a network policy por projeto e o token de autenticação de storage restringem cada requisição de página.
Este é o limite no qual você pode confiar para conformidade e isolamento de vizinhos barulhentos. Limites de branch dentro de um projeto são mais suaves: branches compartilham storage e herdam as páginas do pai até que divirjam.
Nomenclatura
Nomes de projeto são rótulos visíveis ao usuário. Eles:
- Devem ter 1–63 caracteres.
- Correspondem a
^[a-zA-Z][a-zA-Z0-9_-]*$. Letras, dígitos,_,-; devem começar com uma letra. - Não precisam ser globalmente únicos; ser único dentro da sua organização é suficiente.
O id interno do projeto (prj_<24 hex>) é o que todo outro recurso
referencia. O rótulo é para humanos.
Versão do Postgres
Você escolhe a versão major no momento da criação. O padrão é 17.
Uma vez definida, ela não pode ser alterada no lugar — upgrade de versão major
é uma migração fora de banda que documentaremos quando chegar.
Para o alpha, trate a versão como imutável.
Criar
No console web, clique em New project, digite um nome, escolha a versão major do Postgres e escolha uma região (o dropdown tem como padrão Auto (nearest)). Clique em Create. Pela CLI:
keon projects create --name my-app --pg-version 17O control plane provisiona storage, cria o branch main,
e retorna o id do projeto. De ponta a ponta isso tipicamente leva
menos de dois segundos.
Excluir
Excluir um projeto faz cascata por cada recurso que ele possui:
- Todos os endpoints em todo branch são parados e removidos.
- Todos os branches são desmontados.
- O storage do projeto é descarregado e seus dados são enfileirados para compactação assíncrona e eventual remoção do object storage.
A cascata é irreversível. Não há undelete, e os artefatos de
storage não são recuperáveis pelo console após a cascata
começar. Faça um dump lógico (pg_dump) antes de excluir se os dados
importarem.
keon projects delete <project-id>A CLI pede confirmação; passe --yes para pular ao criar scripts.
Relacionado
- Branches — filhos copy-on-write de um projeto.
- Endpoints — frontends Postgres que anexam a um branch.
- Strings de conexão — formato de fio.