A coworker of mine and I are discussing the use (or not) of a full text search solution, namely Elasticsearch in our web application. I am the developer of the web application, and he manages the production server, which is a single Intel NUC running Ubuntu 14.04 , dedicated to running a Rails app (with PostgreSQL) for a small department at my university.
We're currently in disagreement about the choice of software for text search; he says that I could accomplish the task with PostgreSQL's built-in text searching capabilities. However, the additional features of Elasticsearch which are a core part of the software would significantly reduce the complexity of search operations in the web app (as compared to PostgreSQL's text search features), as well as the code needed to develop such features.
I am of the mind that installing Elasticsearch on our production server is not that big of a deal. He is of the mind that the overhead of installing, configuring, managing, upgrading and monitoring is more than that of the code that I would have to write to have the same functionality in PostgreSQL directly.
We're at an impasse. Using Elasticsearch over PostgreSQL's text search would save me quite a bit of development time, at the cost of his needing to install one piece of software on the server. I should note here that the Elasticsearch configuration would be vanilla. He didn't mention security as an issue, so let me just ask:
What workflow is required for a server administrator to install (and maintain) a piece of software? From what I can guess:
- Write a small bash script (~5 lines) to install Elasticsearch X.X.X (and be re-usable/automatable)
- Incorporate Elasticsearch into start-up services script (re-usable/automatable)
- Periodically watch for software updates/security vulnerabilities (are there automated tools for this?)
- Update installation if necessary; update script made in step 1
Edit: Elasticsearch can be installed/updated/removed via apt
. That obviously simplifies some of the problem. But there are maintenance concerns, which I believe is what my coworker is most worried about.
I really don't think that's terribly complicated; yet, I'm not a system administrator, so I can't know for sure. I just know that the installation on my own Ubuntu machine took less than 3 minutes, and required zero extra configuration to work with our existing Rails app setup.
I would like to know if his not installing Elasticsearch is worth the development time it will take me to implement the same functionality from scratch without a software dependency on the server, and I think that the answer to the question in bold will shed some light on that.