You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.9 KiB
2.9 KiB
Estrategia De Deploy Independente Para Product E Admin
Este documento define a estrategia de deploy para manter orquestrador-product
e orquestrador-admin como servicos distintos, porem ligados.
Objetivo
Permitir que:
- o atendimento continue estavel mesmo se o admin estiver fora do ar
- o admin evolua com login, painel, relatorios e geracao de tools sem impactar o hot path
- os dois servicos possam ser versionados e publicados com cadencias diferentes
Servico de produto
Nome operacional sugerido:
orquestrador-product
Responsabilidades:
- Telegram
- orquestracao
- execucao de tools publicadas
- regras operacionais do atendimento
Unit systemd sugerida:
deploy/systemd/orquestrador-product.service.example
Servico administrativo
Nome operacional sugerido:
orquestrador-admin
Responsabilidades:
- autenticacao interna
- painel administrativo
- relatorios
- configuracao do sistema
- geracao, validacao, aprovacao e publicacao de tools
Unit systemd sugerida:
deploy/systemd/orquestrador-admin.service.example
Principios
- Deploy do
adminnao deve exigir restart doproduct. - Deploy do
productnao deve depender doadminestar online. - Mudancas em
shared/contractsdevem ser compativeis para frente e para tras durante a janela de rollout. - O
productconsome somente estado publicado e aprovado. - O
adminnao entra no hot path do atendimento.
Configuracao de ambiente
Sugestao de arquivos distintos:
.env.product.env.admin
product
Mantem:
- Vertex do atendimento
- Redis do estado conversacional
- Telegram
- bancos do runtime operacional
admin
Mantem:
- credenciais do painel interno
- banco administrativo
- modelo de geracao de codigo
- configuracoes de relatorios e publicacao
Estrategia de rollout
Mudancas so no admin
- publicar codigo do
admin - atualizar dependencias do
admin - reiniciar apenas
orquestrador-admin
Mudancas so no product
- publicar codigo do
product - atualizar dependencias do
product - reiniciar apenas
orquestrador-product
Mudancas em contratos compartilhados
- publicar contrato novo de forma aditiva
- subir primeiro o servico consumidor mais tolerante
- subir o outro servico depois
- so remover campos antigos numa fase posterior
Banco e publicacao de estado
Nesta fase, a estrategia recomendada e:
admingrava seus proprios metadados e artefatosproductconsome somente dados publicados e estaveis- nenhuma dependencia sincrona do
productpara consultaradminem tempo de atendimento
Observabilidade
Cada servico deve ter:
- logs proprios
- unit
systemdpropria - variaveis de ambiente proprias
- healthcheck proprio
Situacao atual
Hoje o runtime real em producao ainda e o de product.
Esta estrategia ja prepara o caminho para:
- manter o deploy atual do produto
- introduzir o
admincomo segundo servico - fazer a transicao sem mover
app/agora