A A partir do cenário proposto, foi realizado uma POC, validando o cenário proposto, e implementado no código fonte do projeto:
- Criação dos Artefatos de Tipo Lote e Tipo Dado no ambiente de desenvolvimento.
- Check-in desses objetos direto no código-fonte do micro serviço de Controle e pull-request desses arquivos para o branch de desenvolvimento (develop).
- Merge de Develop para Release (QA) e demais ambientes (Staging e Produção).
- Execução automática ou chamada via API (simular a aplicação dos migrations em outros ambientes) da criação desses novos objetos nos demais ambientes (QA, Staging e Produção).
Criação do Tipo Lote e Tipo Dado


Após a criação do Tipo Lote, o arquivo é gerado no fonte de desenvolvimento, conforme o print abaixo:
Image Removed
Formato do Artefato gerado na criação do Tipo Lote:
Image Removed



Após a criação do Tipo Dado, o arquivo é gerado no fonte de desenvolvimento, conforme o print abaixo:
Image Removed
Formato do Artefato gerado na criação do Tipo Dado:
Image Removed
IMPORTANTE: Para a criação desses artefatos no Frontend para o código-fonte, é necessário rodar a aplicação do mesmo no ambiente local, apontando para o micro serviço de Controle da máquina local:
Image Removed
2. Check-in dos artefatos gerados diretos no fonte
O check-in dos arquivos gerados ocorre da mesma maneira, como ocorre hoje quando desenvolvemos alguma demanda nova.
Image Removed
Image Removed
A promoção dos dados podem ocorrer das seguintes maneiras:
- Execução automática ao iniciar o micro serviços nos ambiente release, staging e production.
- Executar uma API (seguindo o exemplo abaixo) que fica responsável pela promoção desses artefatos no ambiente, da mesma forma como ocorre hoje com a execução das migrations de banco de dados.
Image Removed
Ao realizar a migração, os arquivos são gerados em uma tabela para controle chamada ArtefatosSistema onde exibe o histórico dos arquivos já migrados, evitando que os mesmos sejam executados novamente no ambiente, seja ele QA, Staging ou Produção.
Image Removed
Estrutura da Tabela ArtefatosSistema:
Tabela ArtefatosSistema
CREATE TABLE IF NOT EXISTS public."ArtefatosSistema"
(
id bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 9223372036854775807 CACHE 1 ),
nome_arquivo text COLLATE pg_catalog."default",
nome_tabela text COLLATE pg_catalog."default",
data_cadastro timestamp without time zone NOT NULL,
data_atualizacao timestamp without time zone NOT NULL,
CONSTRAINT "PK_ArtefatosSistema" PRIMARY KEY (id)
)
TABLESPACE pg_default;
|
O registro migrado da tabela TipoLote:
Image Removed
O registro migrado da tabela TipoDado:
Image Removed