Estou executando o Discourse em um cluster Kubernetes há algum tempo usando a imagem não suportada da Bitnami. Agora que a Bitnami está descontinuando a imagem e passando para um paywall, estou procurando migrar nosso servidor para uma solução auto-hospedada na AWS.
Tenho algumas perguntas para as quais a comunidade ficaria grata em ajudar:
Já usamos um banco de dados Postgres externo para a instalação e ele permanecerá no lugar. No entanto, atualizamos algumas configurações através da interface do usuário e também usando variáveis de ambiente que os scripts de instalação da Bitnami mapeiam para o Discourse, por exemplo, DISCOURSE_S3_BACKUP_BUCKET mapeia para S3_BACKUP_BUCKET.
É suficiente definir as configurações do Discourse nos arquivos yaml necessários ou ainda devemos usar variáveis de ambiente?
Se fizermos um backup pela interface do usuário, o que ele realmente restaurará - ele atualiza o banco de dados?
É melhor criar um banco de dados totalmente novo com uma instalação limpa e, em seguida, fazer um backup/restauração?
Se a nova instalação for uma versão posterior do Discourse, isso causará algum problema se uma restauração for tentada?
O guia de instalação padrão usa Docker - como você monitora os contêineres em um ambiente de produção, pois parece que a instalação padrão é uma única VM com Docker.
Existem documentos que detalham uma migração e quaisquer problemas?
Tenho certeza de que terei mais perguntas à medida que a migração avançar, mas qualquer conselho/ajuda que possa ser dada seria muito apreciada.
Se por “melhor” você quer dizer “isso significará que não quebrarei nosso site existente e o deixarei em um estado em que nunca mais funcionará?”, a resposta é sim.
É isso que você quer. O local de onde você restaura deve ser igual ou mais recente que a versão do backup. Ele migrará o banco de dados após a restauração.
Isso pode ser tudo que você precisa saber e ficaremos felizes em ajudar aqui gratuitamente. Se você quiser atenção prática e específica para sua configuração, pode entrar em contato comigo ou pedir ajuda em Marketplace.
Além disso, outra opção seria construir imagens e lançá-las em k8s. Eu fiz isso algumas vezes e usei o github para construir as imagens.
Minha experiência concorda. Vi tantas pequenas falhas estranhas ao longo dos anos que sempre mantenho backups completos para poder começar do zero e restaurar o site. Confiar em corrigir problemas no local eventualmente falhará com você.
Assim como você, fiquei em apuros quando a Bitnami parou de oferecer imagens e gráficos gratuitos. Tive que adaptar e migrar tantas implantações. Uma delas foi minha implantação do Discourse. Se for útil para você, aqui está um link para o gráfico Helm de substituição que criei em um tempo muito curto (o que significa que funciona, mas está longe de ser um design ideal). É uma tentativa de usar o “método de instalação oficial”, já que não vi nenhum gráfico Helm “padrão da comunidade” surgir depois de todos esses anos. (Suponho que o gráfico da Bitnami foi efetivamente esse padrão, porque poucos de nós previram essa mudança abrupta.) Em qualquer caso, este novo gráfico que estou executando para uma de minhas comunidades de pesquisa é basicamente apenas um pod com dois contêineres: o contêiner oficial Docker-in-Docker e um contêiner personalizado baseado em python:3, instalando o Docker e, em seguida, usando a instalação oficial do Discourse. Como todos os componentes (servidor Discourse, Redis, PostgreSQL) são executados na caixa preta da imagem local construída pelo script do lançador, não há escalabilidade ou suporte para alta disponibilidade. Consegui reduzir o tempo de inatividade devido à reinicialização do pod em outro nó (por exemplo, ao drenar o nó para atualizações do sistema operacional ou falha de um nó) usando docker save para armazenar a imagem construída no volume persistente, e então carregando isso se local_discourse/app:latest não for encontrado.
Mas para responder à sua pergunta, não sei como monitorar nada nesta nova implantação. Estou executando “em produção”, mas minha comunidade é pequena o suficiente e o uso é moderado o suficiente para que, se o fórum ficar offline por um tempo, não seja um grande problema. Mesmo assim, estou muito perto de abandonar a auto-hospedagem e migrar para um serviço como Communiteq ou Discourse.org.