我和我的同事正在讨论是否使用全文搜索解决方案,即Elasticsearch在我们的 Web 应用程序中。我是 Web 应用程序的开发人员,他管理生产服务器,该服务器是一台运行 Ubuntu 14.04 的 Intel NUC,专用于为我大学的一个小部门运行 Rails 应用程序(使用 PostgreSQL)。
我们目前对文本搜索软件的选择存在分歧;他说我可以用PostgreSQL内置的文本搜索功能。但是,作为软件核心部分的 Elasticsearch 的附加功能将大大降低 Web 应用程序中搜索操作的复杂性(与 PostgreSQL 的文本搜索功能相比),以及开发此类功能所需的代码。
我认为在我们的生产服务器上安装 Elasticsearch 并不那没什么大不了的。他认为安装、配置、管理、升级和监控的开销比我直接在 PostgreSQL 中实现相同功能所必须编写的代码还要多。
我们陷入了僵局。使用 Elasticsearch 而不是 PostgreSQL 的文本搜索可以节省我相当多的开发时间,但代价是他需要在服务器上安装一个软件。我在这里应该指出的是Elasticsearch 配置如下香草。他没有提到安全问题,所以我只想问一下:
服务器管理员安装(和维护)软件需要什么样的工作流程?据我猜测:
- 编写一个小型 bash 脚本(约 5 行)来安装 Elasticsearch XXX(并且可重复使用/自动化)
- 将 Elasticsearch 纳入启动服务脚本(可重复使用/自动化)
- 定期关注软件更新/安全漏洞(有没有自动化工具?)
- 如果需要,更新安装;更新步骤 1 中制作的脚本
编辑:Elasticsearch 可以通过 进行安装/更新/删除apt
。这显然简化了一些问题。但存在维护问题,我相信这是我的同事最担心的问题。
我真的不认为这太复杂;但是,我不是系统管理员,所以我不能确定。我只知道在我自己的 Ubuntu 机器上安装只需不到 3 分钟,并且不需要任何额外配置即可与我们现有的 Rails 应用程序设置配合使用。
我想知道不安装 Elasticsearch 是否值得我花开发时间从头开始实现相同的功能没有服务器上的软件依赖性,我认为对粗体问题的回答将会对此有所启发。
答案1
看起来您可以将 ElasticSearch 添加为 Ubuntu 上的存储库并使用它来管理它apt
,这意味着它将以与 Ubuntu 服务器上的所有其他软件相同的方式进行更新。
步骤概述如下: https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html
- 添加 eleasticsearch 公共签名密钥
- 添加 elasticsearch 存储库
- 更新
apt
- 像在 Ubuntu 上安装或更新 elasticsearch
apt
一样。
一旦 elasticsearch 像这样可用apt
,那么当安全更新像平常一样应用时,elasticsearch 的安全更新应该得到处理apt
。我没有使用 elasticsearch 的个人经验,但我不确定一旦它能够通过 更新,会有什么维护问题apt
。
我确实发现有点奇怪的是,elasticsearch 文档除了信息之外没有包含 bash 脚本。