Permify项目在Fly.io平台上的部署指南

Permify项目在Fly.io平台上的部署指南

permify Permify is an open-source authorization service inspired by Google Zanzibar. permify 项目地址: https://gitcode.com/gh_mirrors/pe/permify

前言

Permify是一个开源的权限服务解决方案,本文将详细介绍如何在Fly.io云平台上部署Permify服务。Fly.io是一个支持容器化部署的云平台,特别适合需要快速部署和扩展的应用场景。

准备工作

在开始部署之前,需要完成以下准备工作:

  1. 安装Fly.io命令行工具flyctl,这是与Fly.io平台交互的主要工具
  2. 确保拥有Fly.io账户并已完成登录验证

方案一:使用PostgreSQL持久化存储

1. 创建PostgreSQL数据库实例

在Fly.io上创建PostgreSQL数据库实例,用于持久化存储权限数据:

fly postgres create

执行命令后,系统会提示输入数据库名称、选择区域和机器配置。开发环境可以选择基础配置,生产环境建议选择高可用选项。

命令执行完成后,会输出数据库连接信息,包括:

  • 用户名
  • 密码
  • 主机地址
  • 连接字符串

重要提示:请妥善保管这些凭证,建议使用专业的密钥管理工具存储。

2. 准备Docker镜像

创建简单的Dockerfile文件:

FROM ghcr.io/permify/permify:latest

这个基础镜像包含了Permify服务的所有必要组件。

3. 配置Fly应用

使用fly launch命令创建新应用,然后编辑生成的fly.toml配置文件:

app = 'permify-fly-deploy-with-postgres'
primary_region = 'lax'

[experimental]
  cmd = ["serve", "--database-engine=postgres", "--database-uri=postgres://<username>:<password>@permify-psql.flycast:5432"]

[[services]]
  internal_port = 3476
  protocol = 'tcp'
  auto_stop_machines = 'stop'
  auto_start_machines = true
  min_machines_running = 1
  processes = ['app']

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 3476

[[services]]
  internal_port = 3478
  protocol = 'tcp'
  auto_stop_machines = 'stop'
  auto_start_machines = true
  min_machines_running = 1
  processes = ['app']

  [services.ports]
    port = 3478
    tls_options = { "alpn" = ["h2"] }

[[vm]]
  memory = '1gb'
  cpu_kind = 'shared'
  cpus = 1

配置说明:

  • 指定了数据库引擎类型和连接字符串
  • 暴露了两个服务端口:3476(REST API)和3478(gRPC)
  • 配置了自动启停策略和最小运行实例数
  • 设置了虚拟机资源规格

4. 部署应用

在包含Dockerfile和fly.toml的目录中执行:

fly deploy

部署完成后,Permify服务将在Fly.io平台上运行,并使用PostgreSQL作为持久化存储。

方案二:不使用数据库的轻量部署

1. 创建项目目录

mkdir permify-fly-deploy
cd permify-fly-deploy

2. 创建Dockerfile

FROM ghcr.io/permify/permify:latest
CMD ["serve"]

3. 初始化Fly配置

执行fly launch命令,根据提示完成基础配置:

fly launch

4. 修改Fly配置

编辑生成的fly.toml文件:

app = 'permify-fly-deploy'
primary_region = 'lax'

[experimental]
  allowed_public_ports = [3476, 3478]
  auto_rollback = true

[[services]]
  internal_port = 3476
  protocol = 'tcp'
  auto_stop_machines = 'stop'
  auto_start_machines = true
  min_machines_running = 0
  processes = ['app']

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 3476

[[services]]
  internal_port = 3478
  protocol = 'tcp'
  auto_stop_machines = 'stop'
  auto_start_machines = true
  min_machines_running = 0
  processes = ['app']

  [[services.ports]]
    port = 3478

[[vm]]
  memory = '1gb'
  cpu_kind = 'shared'
  cpus = 1

5. 部署应用

fly deploy

部署完成后,可以通过访问https://<your-app-url>:3476/healthz端点验证服务是否正常运行,预期返回{"status":"SERVING"}

部署后验证

无论采用哪种部署方式,部署完成后都应进行以下验证:

  1. 检查服务健康状态
  2. 测试API端点是否可访问
  3. 验证数据库连接(如果使用数据库方案)
  4. 检查日志是否有错误信息

总结

本文详细介绍了在Fly.io平台上部署Permify服务的两种方案:使用PostgreSQL持久化存储的完整方案和不使用数据库的轻量方案。开发者可以根据实际需求选择合适的部署方式。Fly.io平台提供了便捷的容器化部署能力,结合Permify的权限服务特性,可以快速构建可靠的权限管理系统。

permify Permify is an open-source authorization service inspired by Google Zanzibar. permify 项目地址: https://gitcode.com/gh_mirrors/pe/permify

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔或婵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值