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.