Ir para conteúdo
  • Cadastre-se

dev botao

Atualização de Sistemas em Massa


  • Este tópico foi criado há 581 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Ola pessoal...

Como fazem em suas empresas para atualização de sistemas em massa?

Desenvolveram algo próprio? Usam uma ferramenta de terceiros? Ainda é manual?

Como fazemos hoje: precisamos atualizar manualmente apenas o Servidor do cliente e em seguida as estações detectam a nova versão e a baixam do nosso servidor, colocamos todos os arquivos dentro do zip e tudo o que estiver lá será descompactado.

Entretanto para o parque de PDV's ainda não temos nenhum processo e nosso parque de pdv é muito maior que o de retaguardas.

Como controlar todas as versões de dlls existentes em todos os clientes, por exemplo, como mandar atualizar todas de uma vez, sem ter que reinventar a roda...

Bom final de semana a todos...

Anderson Rogerio Bejatto

Bacharel em Sistemas de Informação, Londrina - Paraná, www.saac.com.br

Colaborador e Assinante ACBrPro do Projeto ACBr - Automação Comercial Brasil

Link para o comentário
Compartilhar em outros sites

1 hora atrás, ArbSis disse:

Como fazem em suas empresas para atualização de sistemas em massa?

  1. Aqui temos um verificador de updates rodando com o Windows em todas as máquinas e notificando caso encontre uma nova atualização. (não é necessário estar em todos os PC's. Mas como isso é instalado junto com o sistema e na prática não muda muita coisa. Deixamos assim)
  2. Quando o usuário clica para instalar a atualização em uma máquina qualquer, exibe uma janela com as melhorias, novidades, correções...
  3. Após o término do download do update, é gravado em um banco de dados especifico e temporário as informações do update, como: Nome, versão/build, data, novidades, MD5. Também gravamos o executável do InstallShield nesse banco (sim, gravamos um arquivo de mais de 700MB). Conforme print abaixo.
  4. Quando termina a instalação do update e o usuário inicia o sistema, os scripts necessários para o funcionamento da nova versão/build são rodados no SQL Server. (não precisa ser o servidor)
  5. Depois do banco de dados também estar atualizado, as demais máquinas "acusam" diferentes versões entre o executável e o banco de dados, possibilitando a atualização do sistema nesses outros computadores.
  6. Nesse momento ao invés de baixar o update novamente, acessamos o banco de dados temporário onde tem o arquivo já baixado e apenas instalamos.
  7. Quando o usuário abrir o sistema, os scripts não serão rodados pois já foram.
  • Observação 01: Não importa se mais de um computador baixar a atualização ao mesmo tempo, antes de gravar o arquivo do InstallShield no banco, é verificado se ele já não existe.
  • Observação 02: Os updates são controlados por CNPJ, UF... Já que as vezes é necessário uma correção imediata apenas no estado X. E ainda verificamos se o cliente está apto a receber o update já que o mesmo pode ter problemas financeiros, contrato de manutenção cancelado (não dando direitos a updates de versão, apenas build dentro da versão que o cliente adquiriu). 
  • Observação 03: Depois de todos os PC's atualizados, os dados da versão nova e o arquivo da versão são apagado desse banco de dados temporário.
  • Observação 04: Existem atualizações criticas, nesse caso não fica a critério do usuário a instalação. O próprio atualizador, se encarrega de baixar e executar a instalação.
  • Observação 05: Após o término da atualização no PC, solicitamos o registro da licença novamente para controlarmos qual é a versão que o cliente está utilizando. (de forma online e transparente já que as licenças são controladas por um HWID e não por um serial previamente cadastrado).
1 hora atrás, ArbSis disse:

Como controlar todas as versões de dlls existentes em todos os clientes,

Aqui controlamos por MD5. Ou seja, ao executar o sistema e algum arquivo (bpl, exe, dll..) não bater com o MD5 do executável. Não será possível executar o sistema.

 

Arquivo.thumb.png.dcaff498478c04cf4ad4cde2ae0a65bb.png

Arquivo_Parcial.png.618282617fa3bf7afd3bda3c23ba685f.png

  • Curtir 5
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 4 meses depois ...
Em 10/05/2019 at 21:37, Gabriel Franciscon disse:
  1. Aqui temos um verificador de updates rodando com o Windows em todas as máquinas e notificando caso encontre uma nova atualização. (não é necessário estar em todos os PC's. Mas como isso é instalado junto com o sistema e na prática não muda muita coisa. Deixamos assim)
  2. Quando o usuário clica para instalar a atualização em uma máquina qualquer, exibe uma janela com as melhorias, novidades, correções...
  3. Após o término do download do update, é gravado em um banco de dados especifico e temporário as informações do update, como: Nome, versão/build, data, novidades, MD5. Também gravamos o executável do InstallShield nesse banco (sim, gravamos um arquivo de mais de 700MB). Conforme print abaixo.
  4. Quando termina a instalação do update e o usuário inicia o sistema, os scripts necessários para o funcionamento da nova versão/build são rodados no SQL Server. (não precisa ser o servidor)
  5. Depois do banco de dados também estar atualizado, as demais máquinas "acusam" diferentes versões entre o executável e o banco de dados, possibilitando a atualização do sistema nesses outros computadores.
  6. Nesse momento ao invés de baixar o update novamente, acessamos o banco de dados temporário onde tem o arquivo já baixado e apenas instalamos.
  7. Quando o usuário abrir o sistema, os scripts não serão rodados pois já foram.
  • Observação 01: Não importa se mais de um computador baixar a atualização ao mesmo tempo, antes de gravar o arquivo do InstallShield no banco, é verificado se ele já não existe.
  • Observação 02: Os updates são controlados por CNPJ, UF... Já que as vezes é necessário uma correção imediata apenas no estado X. E ainda verificamos se o cliente está apto a receber o update já que o mesmo pode ter problemas financeiros, contrato de manutenção cancelado (não dando direitos a updates de versão, apenas build dentro da versão que o cliente adquiriu). 
  • Observação 03: Depois de todos os PC's atualizados, os dados da versão nova e o arquivo da versão são apagado desse banco de dados temporário.
  • Observação 04: Existem atualizações criticas, nesse caso não fica a critério do usuário a instalação. O próprio atualizador, se encarrega de baixar e executar a instalação.
  • Observação 05: Após o término da atualização no PC, solicitamos o registro da licença novamente para controlarmos qual é a versão que o cliente está utilizando. (de forma online e transparente já que as licenças são controladas por um HWID e não por um serial previamente cadastrado).

Aqui controlamos por MD5. Ou seja, ao executar o sistema e algum arquivo (bpl, exe, dll..) não bater com o MD5 do executável. Não será possível executar o sistema.

 

Arquivo.thumb.png.dcaff498478c04cf4ad4cde2ae0a65bb.png

Arquivo_Parcial.png.618282617fa3bf7afd3bda3c23ba685f.png

E como vocÊ faz com o banco de dados?

Link para o comentário
Compartilhar em outros sites

13 horas atrás, Daniel Paixao disse:

E como vocÊ faz com o banco de dados?

Opa! 

Após a atualização no primeiro computador. O sistema rodará os scritps. Esses scripts estão dentro Instalador do InstallShield. Por tanto ao concluir a instalação é criado uma pasta contendo todos os scripts necessários. E após o usuário abrir o programa e informar o login os scripts daquela pasta são executados (através do componente do FireDac - FDScript). 

Após rodar os scripts no banco os demais computadores mostra uma mensagem informando que é necessário realizar um atualização... Aí o instalador com o update é rodado e quando o usuário abrir o sistema nesses outros PC's, não será executado nenhum script pois dentro do banco de dados tem uma tabela que guarda a versão do banco. e antes de rodar eu verifico se a versão do executável é compatível com a versão do banco

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Olá. Estou convertendo meu software de IBX para Firedac. Uma das rotinas que utilizo e que funciona bem é a questão da atualização do software. Até aí tudo bem, o usuario checa se tem atualizações, se tiver, baixa e faz a atualização. Porém nesse processo existe um atualizador de scripts. Ele é feito atraves de um componente herdado do IBScript do IBX. Porém ao migrar para firedac, utilizando o FDScript, do FireDac, não consigo fazer de forma similar, ja que o componente do IBX lê e processa o script linha a linha, o que não consigo fazer com o FDScript. 

Vi no seu post, apesar de antigo, que vcs possuem um sistema de atualização e que utiliza o FDScript para atualização do banco.

Seria possível um suporte de como vcs fazem esse processo utilizando o FDScript ?

Link para o comentário
Compartilhar em outros sites

  • Moderadores

creio que só esteja faltando entendimento do componente.

leia com calma a docwiki

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Executing_SQL_Scripts_(FireDAC)

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 581 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...