Migrando para um novo servidor com um novo DB e novos buckets S3 para backup e uploads

Olá,

Atualmente estou no processo de migrar nosso servidor de uma implantação existente baseada em Bitnami (uma versão bem antiga) para a instalação oficialmente suportada na AWS usando a versão mais recente do Discourse. Esta nova instalação possui instâncias externas do Elasticache e RDS e também usará o S3 para backups e uploads.

Tenho 2 perguntas:

  1. O servidor Discourse antigo está em uma versão bem antiga - ao fazer o backup/restauração no novo servidor Discourse, isso executará todos os comandos de atualização relevantes?
  2. Se eu copiar o arquivo de backup para o novo contêiner Docker do Discourse no novo servidor e iniciar a restauração na linha de comando, os novos valores de bucket que configurei no meu config serão sobrescritos como parte da restauração ou meus novos valores serão usados? Eu presumo que meu novo banco de dados seja preenchido a partir do backup e, em seguida, quando eu sair do contêiner e executar ./launcher rebuild app, meus novos valores de S3 serão usados.

Se minhas suposições estiverem corretas, então, antes de realizar a restauração, presumo que devo copiar o conteúdo dos buckets S3 antigos para os novos?

Existem outras pegadinhas para fazer esse tipo de migração com um backup?

Agradeço antecipadamente.

Talvez eu esteja perdendo algo, mas por que vocês estão estabelecendo novos buckets? Um novo bucket de backup com regras de ciclo de vida apropriadas parece aceitável, mas se a sua instância existente do Discourse estiver usando o bucket de upload do S3, você terá alguns problemas.

1 curtida

2 razões pelas quais precisamos de novos buckets:

  1. Não tenho 100% de certeza de que a migração do Bitnami funcionará sem problemas, então não queremos impactar nenhum dado existente caso precisemos abortar a migração
  2. Mudamos a nomenclatura dos nossos buckets, então pensei que seria mais fácil ter 2 buckets totalmente novos para isso

O ponto 1 é o que me preocupa, então estou apenas sendo extra cauteloso.

Quais problemas você prevê com o novo bucket de uploads? O servidor antigo do Discourse será colocado em modo somente leitura. O plano é que, assim que o novo servidor estiver ativo e validado, desligaremos nosso servidor antigo, alteraremos o DNS para o novo servidor e, em seguida, limparemos o cache no CDN (Cloudfront) e depois o liberaremos para o público.

Eu não percebi que você iria copiar os dados dos buckets antigos. Dei uma olhada na AWS, parece ser simples. Se fosse eu, não mexeria em mudar os buckets antes de migrar para a AWS ou para um novo servidor em outro lugar.

[quote=“stevejr, post:1, topic:395948”]para a instalação oficialmente suportada na AWS usando a versão mais recente do Discourse.
[/quote]
Oficialmente suportada?? Não tenho tanta certeza sobre isso.

Sugiro fortemente que você atualize o Discourse antes de migrar para um novo servidor.
Na instância antiga, sugiro que você mova a configuração do S3 para o app.yml se ainda não estiver lá, antes de mover.

Isso é algo que você pode testar facilmente sem afetar a produção.

Pessoalmente, eu faria tudo o que pudesse para evitar fazer essas duas coisas ao mesmo tempo.

  1. veja se você pode evitar mover os buckets de forma alguma
  2. se não puder, faça isso após a migração do Bitnami
1 curtida

Estou muito curioso sobre como fazer esse tipo de instalação é uma proposta de valor agregado.
Com base nas inúmeras postagens sobre instalações não suportadas, parece que dá mais trabalho do que benefício, a menos que as pessoas as façam para aprendizado/experimentação.

Tal configuração pode ser uma instalação não suportada do ponto de vista do Discourse, mas da perspectiva de uma organização de TI corporativa, RDS e Elasticache podem ser padrão e a instalação padrão do Discourse seria a exceção.