Estrutura como código
Hyper Reality Semantic as Code
Hoje, o Orvienm opera sobre estrutura definida de forma declarativa e executa mudanças de forma determinística. Declare a estrutura que um sistema deve ter, veja exatamente o que vai mudar antes que mude, aplique e então confira a realidade contra a declaração.
- Define
- Validate
- Plan
- Apply
- Verify
Representação
A mesma estrutura. Duas representações. Um sistema.
Uma hierarquia de diretórios e uma especificação declarativa descrevem a mesma coisa. O Orvienm trata a especificação como o contrato e o sistema de arquivos como o estado que esse contrato governa — assim a estrutura deixa de ser algo que você reconstrói lendo uma árvore.
Estrutura em disco
- platform/
- core/
- data/
- docs/
structure.yaml
version: 1
structure:
name: platform
directories:
- core
- data
- docsCiclo de execução
Toda mudança passa por cinco etapas.
Nada chega ao sistema de arquivos antes de ser declarado, verificado e exibido. A mesma especificação sobre o mesmo estado produz o mesmo plano.
- 01
Define
Declare a estrutura que o sistema deve ter.
- 02
Validate
Confira a especificação antes que qualquer coisa seja executada.
- 03
Plan
Mostre as mudanças estruturais que um apply faria.
- 04
Apply
Execute o plano, criando o que está faltando.
- 05
Verify
Compare o workspace com a estrutura esperada.
Governança
A mudança é governada, não presumida.
Aplicar uma estrutura uma vez é fácil. Manter um sistema honesto quanto à estrutura que deveria ter é o problema difícil, e é onde o Orvienm faz a maior parte do trabalho.
- Verify
- Compara o workspace com a estrutura que a especificação declara e aponta onde os dois divergem.
- Desvio
- O que a verificação encontra quando a realidade se afastou da declaração. A detecção é relatada; não é corrigida silenciosamente.
- Reparo conservador
- Cria o que está faltando e preserva o que não lhe pertence. Caminhos ausentes da especificação permanecem no lugar e nunca são removidos automaticamente.
- Proveniência
- Identidade determinística para estrutura e conteúdo, de modo que um resultado possa ser rastreado até a especificação e o estado que o produziram.
Linguagem
Uma especificação, não um script.
Você descreve a estrutura que um sistema deve ter, não os passos para construí-la. O aninhamento expressa contenção, e a especificação é lida como um grafo — nós e as relações entre eles — o que é justamente o que torna possível validar, planejar e verificar sobre ela.
A mesma definição pode ser validada antes de qualquer execução, comparada com um workspace e analisada como um todo, em vez de arquivo por arquivo.
O modelo declarativoOnde se aplica
Onde a estrutura deixa de ser implícita.
O Orvienm é útil sempre que o mesmo formato precisa valer entre repositórios, ambientes e equipes — e quando descobrir que ele deixou de valer faz diferença.
Estrutura de projeto
Dê a cada repositório, serviço e workspace o mesmo formato, declarado uma vez e aplicado onde for preciso.
Infraestrutura e DevOps
Mantenha os layouts de ambiente, pipeline e serviço consistentes, em vez de reconstruí-los à mão em cada ambiente.
Entradas para automação
Dê aos processos automatizados uma estrutura confiável, definida explicitamente em vez de inferida do que existir.
Comece por uma especificação.
O Orvienm está em Alpha. A CLI é instalada a partir do código-fonte por quem tem acesso a ele — ainda não há entrada em índice de pacotes nem release binário.