Como Atualizar o OpenTrials em Produção
Atualização de v1.0.24 para v1.1.x
Situação inicial
Em 11/11/2011 a instância de produção do projeto REBEC se encontra instalada no seguinte local:
/home/aplicacoes-bvs/ensaiosclinicos
dentro deste nível encontramos, entre outros, os seguintes diretórios:
opentrials/ - é o diretório que contém a aplicação Django OpenTrials
djago-env/ - diretório que contém o environment do projeto (Python, Django e demais bibliotecas externas usadas no projeto)
Procedimento de atualização
1. Instalação de uma nova instância
Para instalar a versão nova (1.1.0) que seria a primeira versão usando git, criaríamos uma nova instância do OpenTrials em um terceiro diretório no mesmo local:
/home/aplicacoes-bvs/ensaiosclinicos/opentrials1.1
O diretório opentrials1.1 seria criado a partir de um git clone do repositório principal do OpenTrials, e uma vez clonado o repositório seria ativado o branch 1.1.
2. Suspensão dos acessos para alteração de dados
Neste momento todas as entradas de dados no ambiente REBEC devem ser suspensas (leitura ainda seria possível)
3. Cópia e atualização da base de dados
O próximo passo é criar uma cópia da base de dados da produção para ser usado pela nova instância. Essa base duplicada é a que sofreria o processo de migração de esquema, preservando a base atual (original) para o caso de haver algum insucesso na operação.
4. Instalação do SOLR (search engine)
Assim que a base estiver corretamente funcionando na versão nova, o próximo passo a ser feito é a criação de uma instalação de solr para o projeto e sua configuração.
5. Reconfigurar o servidor Web
Assim que estas condições se satisfizerem, o passo final é reapontar o Apache (ou simplesmente transformar o caminho /home/aplicacoes-bvs/ensaiosclinicos/opentrials em um link simbólico para a nova aplicação) para apontar a nova instancia criada.
6. Liberar sistema para atualização
Uma vez no ar o novo sistema para consulta, ele deverá ser reconfigurado para passar a receber alterações.
Estimativas de tempo
Tempo estimado por passo:
1. 30' 2. 5' 3. 30' 4. 30' 5. 5' 6. 5'
O tempo em que o site ficará sem receber atualizações é a soma dos tempos dos passos 2 a 6: 1h15'. Por margem de segurança, vamos anunciar que o sistema ficará sem receber atualizações por 2h. Estes tempos poderão ser ajustados após a realização do ensaio geral (ver abaixo).
Ensaio Geral
A fim de minimizar o tempo de suspensão de alterações no site, propomos realizar os passos 1, 3, 4 e 5 uma vez em um ambiente de homologação, para praticar e eventualmente aperfeiçoar o procedimento. Feito isso, realizamos os passos de 1 a 6 no ambiente de produção.