分发脚本以在不同公司客户端计算机上运行有哪些不同方法?

问题描述 投票:0回答:1

背景

我正在编写一堆 python 脚本,为我的初创公司启动 FastAPI 服务器,作为我们服务的要求。该服务器初始化 Supabase SDK 客户端来执行一些非常具体的操作。

仅当我们的所有客户购买了我们的服务订阅后,才需要将该服务器分发给他们。不仅如此,我们还需要能够在客户端付款未完成时以某种方式终止服务器。

请注意,该服务器将在我们客户财产上的现有计算机上运行,或者我们将运送一个设备插入墙上来运行该服务器。

我们遇到的另一个问题是,这些服务器出于特定原因使用计算机视觉模型,并且为了降低我们这边的成本(并降低我们服务的价格),我们认为,而不是在某个位置创建推理端点在云中,可能有一种方法可以让模型本身保留在服务器代码中,但有一种方法可以隔离它们或加密它们,以便客户端(或外部实体)无法利用它们。

主要问题

  1. 我们可以通过什么方式将此服务器以及与其关联的所有代码分发给所有客户端,从而实现以下目标:
  • 服务器仅在购买订阅后分发,订阅付款未完成后服务器终止或完全删除;
  • 能够在我们发布更新时更新服务器的代码;
  1. 我们如何才能在这些服务器中部署计算机视觉模型,而不损害我们的模型或将我们的模型暴露给外部实体或我们的客户?

尝试过的解决方案

主要问题1

我尝试创建一个包含所有代码的 Docker 容器,以便稍后使用 Docker Swarm 等进行分发,但是该服务器需要访问计算机的网络并在其中执行一些其他操作,尽管我已经设法获取它有点工作,有些功能似乎不受支持,所以我正在寻找其他方法。

考虑将其打包在 PyPi 中,或者简单地发送一个 .zip,其中包含一个许可证密钥,我们稍后将其映射到每个客户端,以便根据需要删除对 Supabase 的访问,但客户端仍然拥有代码,并且会仍然能够访问其中的模型。

主要问题2

我尝试过 Google AI Vertex 和 Beam 来部署我们的模型并公开推理端点,但我们可能需要一些模型 24/7 运行,而成本非常高。

python architecture supabase saas software-distribution
1个回答
0
投票

我们可以通过什么方式分发这个服务器以及所有代码 与此相关,对于我们所有的客户,实现以下目标:

服务器仅在购买订阅后分发,并且服务器 订阅付款未完成后终止或完全删除 经历过;

您可以控制订阅者何时以及如何访问您的应用程序,例如购买后下载等 - 并且您可以提供多个打包和部署选项 - 但您不会拥有相同级别的撤销控制权 - 一旦位于其他人的网络上,您的控制权就受到限制。

您可以将“Phone Home”API 回调添加到您托管的 API,这会在以下情况下禁用应用程序:

PhoneHome: SubscriberStatus = UnPaid

您可以添加更多更激烈的功能 - 例如删除内部系统数据(如果这种情况发生在 3 个连续付款周期或其他情况下)。

如果应用程序无法成功进行 API 调用,您还可以让应用程序采取措施来保护自身。

所有这些都假设客户端无法访问您的应用程序的代码来重写它,或者伪造 API 响应,以便您的应用程序认为它正在成功打电话回家。

每当我们发布新版本时能够更新服务器的代码 更新;

我不知道在实践中如何做到这一点,从来没有这样做过。 我想网上有关于这样做的策略的很好的信息,即使它们不是特定于 Python 的。

© www.soinside.com 2019 - 2024. All rights reserved.