Épico - Rollback para estado anterior em caso de falha na importação do backup
Descrição
Pai: @jonasc
Definições de negócio
1. Descrição da ideia (O quê)
Permitir que a importação do backup possa ser abortada caso esteja demorando muito ou apresentando algum erro. Após abortar, o produto deve garantir que o servidor continue operando no estado anterior, sem perda de dados.
2. Por que implementar? (O porquê)
Porque é necessário garantir maior segurança para o cliente na importação do backup. No formato atual, a importação do backup obrigatoriamente deve funcionar, porém se falhar, ocorre perda de dados, pode parar algum serviço de infra e o cliente tem que esperar correção para tentar reimportar o backup.
3. Situações contextuais (Em que contexto)
Cliente apagou uma instância do OpenVPN por engano e inicia restore do backup. Algum bug ocorre na importação das regras de firewall. O cliente perde acesso à interface web de gerenciamento, os dados de firewall e outros módulos ficam inconsistentes e o restore do backup cria outro problema / perde mais dados.
4. Problema que resolve (O problema)
Evita que pare algum serviço de infra por conta de alguma falha na importação dos dados.
5. Clientes afetados (Para quem)
Todos: Cliente final, parceiro e suporte iTFLEX.
6. Expectativas dos clientes
- Que todos os dados sejam importados e estejam consistentes.
- Que o restore do backup resolva um problema e não crie outro.
- Que continue funcionando como estava antes caso dê algum problema na importação.
7. Restrições e limitações
Este épico complementa o #33167 de backup de dados. Ambos precisam ser entregues junto para maior segurança.
8. Riscos
Não identificado. Este recurso serve justamente para diminuir riscos de parada de serviços e perda de dados.
9. Critério de sucesso
- Ao importar um backup com falha, irá voltar a funcionar como estava antes.
- Ao abortar um backup demorado, irá voltar a funcionar como estava antes.
- Ao cair energia durante a importação do backup, irá voltar a funcionar como estava antes.
Requisitos e especificações de infra
1. Laboratório
Não se aplica.
2. Caso de uso
- Na tela de importação do backup (loading) irá permitir abortar o backup e voltar estado anterior.
- Se ocorrer algum erro, deverá apresentar na tela de importação o erro e voltar estado anterior.
- A ação de voltar estado anterior inicia automaticamente após abortar ou apresentar erro, visto que não tem outro alternativa.
- Se não ocorrer erros, irá aplicar os serviços e não vai permitir voltar estado anterior, uma vez que o restore ocorreu normalmente.
3. Requisitos e regras de negócio
- Ação de abortar deve interromper o processo imediatamente. Não pode ficar travado.
- O rollback é feito automaticamente após erro ou abortar.
- Os serviços devem estar operacionais no fim do processo.
4. Expectativas de testes
- Simular erros na importação dos dados (insert errado, etc)
- Validar tratativa do erro e apresentação do erro em tela
- Validar rollback
- Validar botão de abortar + rollbackup
5. Referências de outras ferramentas
Alguns sistemas trabalham com essa abordagem. Exemplo do Windows: Não foi possível concluir as atualizações. Desfazendo alterações. Mesmo pode se aplicar para importação do backup.
Arquitetura de software (Como? na visão software)
1. Telas
2. Praticidade para implantação/wizard
3. Banco
4. Conf
5. Prov
6. Motor
7. Serviços (INFRA)
8. Módulos relacionados
9. Definições
Desenvolvimento:
1. Backup
2. Escopo
3. APIs
4. Campos
5. Tabelas
6. Funcionalidade
7. Caso de uso
Lembrar de sempre fazer
- nonono
Mais informações
- Copia de segurança do banco
- Pode ser dump do banco
- Pode ser copia do banco, no caso de rollback apenas renomea o banco
- Apos finalizado a restauração ou rollback apaga a copia de segurança
- Copia de segurança dos arquivos
- Copia todos os conf e arquivos utilizados pelos serviços
- Usuários SSH
- Precisa ter os dados e senha criptografada
- Precisa roda os comandos do linux manualmente
- Essa etapa pode ser feito no final apos o #44281 finalizado
- Caso de erro na restauração
- O wizard tem marca status de erro, informando para usuário que teve erro e única opção e roolback
- Em caso de queda de energia no meio do processo de restauração dos dados
- Wizard teria abri e informa para o usuario que não foi finalizado a restauração, e unica opção e rollback