在 Azure 上部署 Meilisearch 实例
以下是由 Microsoft 数据工程首席倡导者 Christopher Maneu 撰写的客座文章。
简介
在本教程中,我们将了解如何在 Azure 上部署 Meilisearch 实例,以及在 Azure 上托管生产 Meilisearch 实例的一些注意事项。
提示
如果您还没有 Azure 订阅,可以在此处创建一个。使用 Azure 免费层,您可以免费运行 Meilisearch 实例至少 12 个月。
一键部署
您可以通过官方 Meilisearch Docker 镜像 来部署 Meilisearch 实例,只需单击以下按钮
单击此按钮后,您将被重定向到 Azure 门户并被问到几个问题
- “区域”:这是部署区域。您应该选择靠近您或您的用户的区域
- “环境”:您要部署到的环境的名称,例如
dev
(用于开发)或prod
(用于生产)。此设置对部署的资源类型没有影响。这只是为了方便 - “应用程序名称”:您的应用程序的名称。此名称应在所有 Azure 客户中都是唯一的。部署您的应用程序的 URL 将包含此值
- “位置”:这是资源的位置。由于本文档范围之外的原因,此参数与区域参数不同。默认情况下,它设置为
eastus
,但您可以键入任何 Azure 位置(如francecentral
、westeurope
或japaneast
) - “
Meilisearch_apikey
”:这将是您的 Meilisearch 实例的主密钥。虽然我们默认生成一个随机密钥,但我们鼓励您设置自己的密钥
填写完这些字段后,单击“查看 + 创建”按钮,然后单击“创建”按钮。
警告
默认情况下,创建的实例位于标准计划中。这将导致您的订阅产生费用。您可以稍后将其更改为免费层,或者通过编辑基础架构即代码(请参见下文)来实现。
几分钟后,部署将完成。您可以通过单击左侧的“输出”选项卡访问您的实例 URL。
提示
虽然 Meilisearch 通常在端口 7700
上公开,但此部署将在端口 433
上公开您的实例。SSL 证书将由 Azure 为您生成和管理。
此一键按钮发生了什么?
此按钮使用基础架构即代码 Bicep 文件。该代码是开源的,托管在 GitHub 上。如果需要,您可以提交 PR,或将其用于您自己的项目中。
此代码将设置两个主要组件
- 一个 Azure 应用服务实例来托管 Meilisearch 容器
- 一个 Azure 文件共享,它被卷映射到 Meilisearch 容器中以实现数据库持久性
生产就绪的部署
我们在单击部署中做出了一些自以为是的选择,这些选择应该适用于大多数生产就绪的部署。本节解释了在生产部署环境中您需要注意的一些选择。
数据冗余和备份
一键按钮创建一个具有“LRS”冗余选项的存储。这意味着您的数据会在多个服务器之间复制,但在同一数据中心内。您可以通过修改模板来更改此设置,以选择多区域或多区域冗余选项。
默认情况下,不会自动备份您的索引。如果您想使用 Azure 备份功能来实现此结果,您可以查看 Azure 文件共享备份。
提示
Meilisearch 具有快照和转储功能,可以帮助您提高备份能力。有关更多信息,请参阅数据备份文档。
始终在线
要启用免费套餐,始终开启 选项默认是禁用的。这意味着在一段时间没有流量后,您的实例将被停用。当下一个客户端访问您的实例时,它将自动再次启动。但是,您将会有十几秒的响应时间。
您可以通过在 Azure 门户或基础设施即代码中启用 始终开启 功能来避免这种冷启动。
应用服务自动缩放
Azure 应用服务提供横向自动缩放功能,允许您自动添加更多服务器来处理传入的请求。
在撰写本文时,Meilisearch 尚未准备好处理使用相同底层存储的多个服务器。启用此功能可能会导致意外结果,因此不应考虑用于生产环境。
如果您需要更多处理能力,可以使用应用服务的 纵向扩展 功能。