Painel gerenciador do sistema
(→RN09 - Troca de versão) |
(→RN09 - Troca de versão) |
||
| Linha 126: | Linha 126: | ||
== RN09 - Troca de versão == | == RN09 - Troca de versão == | ||
O painel terá uma funcionalidade que de tempos em tempos verificará se há troca de versões agendadas. Caso haja uma troca de versão agendada, esta ocorrerá da seguinte maneira: | O painel terá uma funcionalidade que de tempos em tempos verificará se há troca de versões agendadas. Caso haja uma troca de versão agendada, esta ocorrerá da seguinte maneira: | ||
| − | #Na data e hora do agendamento o sistema acessará cada tomcat de cada servidor | + | #Na data e hora do agendamento o sistema acessará cada tomcat de cada servidor parando seu serviço. |
| + | #Em seguida, o painel acessará as pastas '''work''', '''temp''' e '''logs''' de cada tomcat em cada servidor excluindo permanentemente seu conteúdo. | ||
| + | #O painel acessará a pasta '''webapps''' de cada tomcat em cada servidor excluindo o arquivo '''.war''' e sua respectiva pasta de cada aplicação que foi selecionada no agendamento. | ||
| + | #O painel acessará o diretório onde fica as versões no SNV (informado nas configurações do painel) e copiará o arquivo '''.war''' para o diretório '''webapps''' de cada tomcat em cada servidor. Ao copiar o arquivo '''.war''' para o diretório '''webapps''' ele será renomeado com o nome de cada aplicação selecionada no agendamento. | ||
| + | #Em seguida o painel iniciará novamente o serviço de cada tomcat em cada servidor. | ||
Edição das 08h51min de 20 de maio de 2014
Objetivo
Possibilitar a usuários da implantação ou outros setores pertinentes a gestão das aplicações de clientes no servidor sem a intervenção do departamento de sistemas ou do CPD.
Atores
- Usuários do painel
- Servidores de aplicação
- CPD
Pré-requisitos
- O CPD deverá disponibilizar um usuário com permissão de administrador para que o painel possa realizar suas tarefas através de linha de comando.
- O CPD deverá padronizar o nome dos tomcats de acordo com este documento.
- O responsável pelo banco de dados padrão dos sistemas deverá nomeá-los no subversion de forma padronizada. Bancos cujo nome está fora do padrão não serão reconhecidos pelo painel.
- As versões oficiais do sistema deverão ser colocadas no subversion e nomeadas de forma padronizada. Versões com nome fora do padrão não serão reconhecidas pelo painel.
Resultado esperado
- Utilizando a linguagem de programação python + o framework django, introduzir no departamento de P&D uma nova linguagem que permite um considerável ganho no tempo de desenvolvimento.
- Permitir o acesso e a gestão de aplicações no servidor para usuários sem conhecimento de programação ou gerencia de servidores linux.
- Sistematizar, controlar e programar a troca de versões.
Diagrama de classes
Fluxo de eventos
Fluxos principais
Fluxo 1:
Fluxos alternativos
Fluxo 1:
Fluxos de exceção
Fluxo 1:
Regras de negócio
RN01 - Tela de login
O acesso ao painel será permitido somente para usuários autenticados, fazendo com que seja exibida a tela de login sempre que um novo usuário ou um usuário não autenticado acessa-lo.
A tela de login não permitirá que usuários ainda não cadastrados se registrem no painel. Por medidas de segurança este cadastro será feito manualmente pelo departamento de sistemas ou pelo CPD. Usuários já cadastrados deverão se autenticar na tela de login através dos seguintes dados:
- e-mail: Endereço de e-mail terminado em @atsinformatica.com.br. Qualquer endereço de e-mail fora do domínio da ATS não será permitido.
- Senha: Senha gerada pelo sistema para o usuário em questão no momento de seu cadastro.
RN02 - Cadastro de usuários
RN03 - Configurações
Rotina onde deverão ser inseridas informações sobre como o painel se conectará com os servidores de aplicação. Algumas informações serão inseridas no sistema através de um mestre-detalhe para cada servidor, e outras serão gerais para todos os servidores.
Mestre-detalhe
- Endereço do servidor: Campo onde deverá ser informado o endereço do servidor, exemplo: resulthweb.com.
- Porta (SSH): Campo onde deverá ser informada a porta para conexão via SSH com o servidor.
- Usuário: Campo onde deverá ser informado um usuário já cadastrado no servidor com acessos administrativos.
- Senha: Campo onde deverá ser informada a senha do usuário do servidor.
- Tomcat7 dir: Campo onde deverá ser informado o diretório onde ficam armazenados os tomcats no servidor, exemplo: /etc.
- Backup dir: Campo onde deverá ser informado o diretório onde ficarão armazenados os backups gerados pelo painel.
- Botão [Verificar conexão com o servidor]: Quando acionado este botão verificará se é possível conectar-se ao servidor em questão com o endereço, porta, usuário e senha fornecidos. Também será verificada a existência do diretório de backup e se o usuário/senha possuem permissão de leitura/gravação/exclusão no mesmo. Se a verificação foi bem sucedida uma mensagem com esta informação será exibida ao usuário e o botão [Adicionar] será habilitado. Caso contrário uma mensagem com a não conformidade será exibida e o botão [Adicionar] deverá permanecer desabilitado.
- Botão [Adicionar]: Quando acionado, inclui no grid o novo servidor.
- Grid: Lista os servidores já adicionados nas seguintes colunas:
- SERVIDOR (Endereço do servidor)
- PORTA
- USUÁRIO
- SENHA
- TOMCAT DIR.
- BACKUP DIR.
Gerais
- Nº de clientes por tomcat: Define a quantidade de aplicações a ser armazenada dentro de cada tomcat nos servidores.
- Caminho SVN para o banco padrão: Neste campo deverá ser informado o caminho no subversion do Java onde serão buscados os bancos de dados padrão das aplicações ERP, Telefonia, OS e etc. O nome de cada banco de dados deverá ser padronizado.
- Caminho SVN para versões: Neste campo deverá ser informado o caminho no subversion do Java onde serão buscadas as versões oficiais das aplicações. Os nomes das versões deverão ser padronizados.
Será criado no subversion do Java um usuário específico para o painel, come acesso somente leitura ao banco de dados padrão e as versões oficiais.
Este usuário e senha ficarão dentro do código fonte do painel.
RN04 - Agendamento de troca de versão
Esta rotina permitirá aos usuários do painel agendar troca de versões em uma data e horário programado. Este processo ocorrerá da seguinte maneira:
- Assim que a rotina for renderizada será apresentado ao usuário somente um combobox com as seguintes opções:
- Resulth WEB Start/Business/ERP
- Resulth WEB Telefonia
- Resulth WEB OS
- À direita do combobox haverá o botão [Selecionar] que quando acionado, com base nas configurações do painel, buscará nos servidores aplicações com base na opção selecionada conforme RN06.
- A lista de aplicações existentes nos servidores será exibida em um grid (ordenado por servidor, tomcat e aplicação) com as seguintes colunas:
- SEL.: Coluna que permite marcar/desmarcar um determinado registro do grid. Por padrão todos serão selecionados. Haverá no cabeçalho do grid esta mesma opção que marca/desmarca todos os registros.
- CLIENTE: Nesta coluna serão listados os nomes das aplicações encontradas.
- TOMCAT: Nesta coluna serão listados os tomcats em que se encontram cada aplicação.
- SERVIDOR: Nesta coluna serão listados os servidores em que se encontram cada aplicação.
Uma vez que o usuário fez a filtragem da versão do sistema e teve todas as aplicações existentes listadas no grid, serão habilitados os seguintes campos:
- Data: Campo onde o usuário deverá informar a data para qual deseja agendar a troca de versão. Não será permitido informar uma data menor que a data corrente (do servidor).
- Hora: Campo onde o usuário deverá informar a hora para qual deseja agendar a troca da versão. Não serão permitidos horários entre 06:00 da manhã e 20:00 da noite.
- Salvar: Botão que quando acionado salva a o agendamento.
Quando a rotina em questão for acessada, os agendamentos já existentes serão exibidos em um grid com as seguintes colunas:
- VERSÃO: Coluna que informará se o agendamento refere-se ao Resulth WEB Start/Business/ERP, Resulth WEB Telefonia ou Resulth WEB OS.
- DATA/HORA: Colunas que informa a data e hora dos agendamentos.
- USUÁRIO: Coluna que informa o usuário responsável pelo agendamento.
- STATUS: Informa a situação atual do agendamento com as seguintes opções:
- EXECUTADO: A troca de versão foi realizada com sucesso.
- PENDENTE: A troca de versão ainda não foi executada.
- FALHOU: A troca de versão não pode ser executada por algum motivo.
- CONSULTAR/ALTERAR/EXCLUIR: Coluna que permite ao usuário visualizar, alterar ou excluir um determinado agendamento.
RN05 - Iniciar, parar ou reiniciar Tomcats
deletar luceneindex?
RN06 - Listar versões existentes nos servidores
A listagem de versões existentes nos servidores considerará o tipo de versão selecionada (passada como parâmetro) para fazer a busca. A busca considerará os servidores adicionados nas configurações do painel e será executada nas seguintes etapas:
- O painel acessará cada servidor em seu respectivo Tomcat7 dir.
- O painel buscará os tomcats de acordo com o tipo de versão conforme segue abaixo:
- Resulth WEB Start/Business/ERP: Serão considerados somente tomcats cuja pasta tem o nome tomcat7 ou tomcat7 + identificação do tomcat, exemplo: tomcat7; tomcat7_1; tomcat7_2; tomcat7_3; tomcat7_4; tomcat7_10 e etc.
- Resulth WEB Telefonia: Serão considerados somente tomcats cuja pasta tem o nome tomcat7_telefonia ou tomcat7_telefonia + identificação do tomcat, exemplo: tomcat7_telefonia; tomcat7_telefonia_1; tomcat7_telefonia_12; tomcat7_telefonia_22 e etc.
- Resulth WEB OS: Serão considerados somente tomcats cuja pasta tem o nome tomcat7_os ou tomcat7_os + identificação do tomcat, exemplo: tomcat7_os; tomcat7_os_4; tomcat7_os_6; tomcat7_os_33 e etc.
- Em seguida o painel acessará o diretório /bin/com.ats.config de cada tomcat fazendo uma lista das aplicações existentes em todos os tomcats de todos os servidores. Cada diretório existente dentro de /bin/com.ats.config será considerado como uma aplicação. A lista de aplicações deverá conter o nome da aplicação, o tomcat e o servidor em que se encontram, exemplo:
- sorvete_salada | tomcat7 | resulthweb.com
- dmk | tomcat7 | resulthweb.com
- perdiesel | tomcat7_1 | jresulth.atsinformatica.com.br
RN07 - Consultar status do servidor
aaaaaaaa
RN08 - Validações
- Uma mesma aplicação/tomcat/servidor não poderá existir em dois agendamentos para o mesmo dia.
- Um mesmo servidor não poderá ter agendamentos cujo intervalo entre um e outro é menor que 60 minutos.
RN09 - Troca de versão
O painel terá uma funcionalidade que de tempos em tempos verificará se há troca de versões agendadas. Caso haja uma troca de versão agendada, esta ocorrerá da seguinte maneira:
- Na data e hora do agendamento o sistema acessará cada tomcat de cada servidor parando seu serviço.
- Em seguida, o painel acessará as pastas work, temp e logs de cada tomcat em cada servidor excluindo permanentemente seu conteúdo.
- O painel acessará a pasta webapps de cada tomcat em cada servidor excluindo o arquivo .war e sua respectiva pasta de cada aplicação que foi selecionada no agendamento.
- O painel acessará o diretório onde fica as versões no SNV (informado nas configurações do painel) e copiará o arquivo .war para o diretório webapps de cada tomcat em cada servidor. Ao copiar o arquivo .war para o diretório webapps ele será renomeado com o nome de cada aplicação selecionada no agendamento.
- Em seguida o painel iniciará novamente o serviço de cada tomcat em cada servidor.