Um colega de trabalho e eu estamos discutindo o uso (ou não) de uma solução de pesquisa em texto completo, ou seja, Elasticsearch em nosso aplicativo da web. Eu sou o desenvolvedor do aplicativo da web e ele gerencia o servidor de produção, que é um único Intel NUC rodando o Ubuntu 14.04, dedicado a rodar um aplicativo Rails (com PostgreSQL) para um pequeno departamento na minha universidade.
Atualmente estamos em desacordo sobre a escolha de software para pesquisa de texto; Ele diz que eu poderia realizar a tarefa com os recursos de pesquisa de texto embutidos do PostgreSQL . No entanto, os recursos adicionais do Elasticsearch, que são uma parte essencial do software, reduziriam significativamente a complexidade das operações de pesquisa no aplicativo da Web (em comparação com os recursos de pesquisa de texto do PostgreSQL), bem como o código necessário para desenvolver esses recursos. p>
Estou convencido de que a instalação do Elasticsearch em nosso servidor de produção não é grande de um acordo. Ele pensa que a sobrecarga de instalar, configurar, gerenciar, atualizar e monitorar é mais do que o código que eu teria que escrever para ter a mesma funcionalidade no PostgreSQL diretamente.
Estamos em um impasse. Usar o Elasticsearch sobre a pesquisa de texto do PostgreSQL me pouparia um pouco do tempo de desenvolvimento, ao custo de sua necessidade de instalar um software no servidor. Eu deveria notar aqui que a configuração do Elasticsearch seria baunilha . Ele não mencionou a segurança como um problema, então deixe-me perguntar:
Qual fluxo de trabalho é necessário para um administrador do servidor instalar (e manter) um software? Pelo que eu posso imaginar:
- Escreva um pequeno script bash (~ 5 linhas) para instalar o Elasticsearch X.X.X (e ser reutilizável / automatizável)
- Incorpore o Elasticsearch ao script de serviços de inicialização (reutilizável / automatizável)
- Assistir periodicamente a atualizações de software / vulnerabilidades de segurança (existem ferramentas automatizadas para isso?)
- Atualize a instalação, se necessário; script de atualização feito na etapa 1
Editar : Elasticsearch pode ser instalado / atualizado / removido via apt
. Isso obviamente simplifica alguns dos problemas. Mas há preocupações de manutenção, que, acredito, é o que meu colega de trabalho está mais preocupado.
Eu realmente não acho isso muito complicado; No entanto, não sou um administrador do sistema, por isso não tenho a certeza. Eu só sei que a instalação em minha própria máquina Ubuntu levou menos de 3 minutos, e exigiu nenhuma configuração extra para trabalhar com a nossa configuração existente do aplicativo Rails.
Eu gostaria de saber se ele não está instalando o Elasticsearch vale o tempo de desenvolvimento que vai levar para implementar a mesma funcionalidade do zero sem uma dependência de software no servidor, e eu acho que a resposta para a pergunta em negrito vai lançar alguma luz sobre isso.