我在一家公司中工作,该公司已经使用PHP / MySQL / Redis / JS-stack构建了SaaS应用程序。
它作为我们的客户的托管服务在我们自己的Google Kubernetes Engine中运行。
我们的大多数业务逻辑都放在PHP层中。
现在,我们希望将我们的产品作为本地解决方案提供,以便我们的客户可以将整个产品部署在自己的私有云中,甚至可能部署在他们自己的地下室中。
这也意味着客户可以访问我们所有的“商业机密”(商业逻辑),这让我感到担忧。 我们是一家小型企业,我们正在与大型公司开展业务。他们中的一些人可能会对我们自己做的事情感兴趣。
PHP尚未编译,我发现的混淆器似乎并不过分混淆代码。
我们讨论了以下解决方案:
相信客户不要复制/获取我们解决方案的启发,而只能通过法律/合同来保护它
将逻辑的一些重要部分移到我们自己的服务器上,有时使本地解决方案调用我们的服务器。这样我们就可以控制许可等。但是我们担心客户会说这不是完全本地的。没错。
尽力做到最好,并希望做到最好。也许我们只是偏执?
做一些使客户端能够在不访问源代码的情况下在其私有云中运行代码的事情-我们已经研究了Google Cloud Marketplace,但据我所知,客户端将获得访问权限到VM。
您在这方面有什么好的建议吗? 我们正在寻找有创意的解决方案。主要目标是保护我们的业务。
如果我们可以提供我们的Kubernetes设置作为完全本地解决方案,那将是最好的选择,但是如果您对如何将其提供给客户的私有云(甚至仅在GCP中)有好的想法,这也是非常受欢迎的。
谢谢!
答案 0 :(得分:1)
您的问题与IP有关,而不与k8和云有关。
解决方案是:
- 相信客户不要复制/获取我们解决方案的启发,而只能通过法律/合同来保护它
你是对的。有力量。
“找出您是否可以信任某人的最好方法是信任他们。” ―欧内斯特·海明威
您可以选择适当的许可证并将您的应用程序提供给客户端。 参见this answer:
想到的EULA的某些部分:
- 如果产品存在错误或造成损坏,请承担责任。
- 说明客户如何使用许可软件,使用多长时间,在多少台计算机上使用或不使用重新分配权利等。
- 授予您审核其站点的权限,因此您可以执行许可证。
- 如果他们违反EULA,例如他们失去使用您的软件的特权。
您应咨询法律专家以准备商业EULA。
在joelonsoftware上
- “ EULA advice”
- “ How to Write an End User License Agreement”
- 将逻辑的一些重要部分移到我们自己的服务器上,有时使本地解决方案调用我们的服务器。这样我们就可以控制许可等。但是我们担心客户会说这不是完全本地的。没错。
不是最佳解决方案,因为它不是真正的本地部署。 您客户端的服务器可能位于防火墙下的安全区域中,而无法访问您的服务器。
无论如何,这是受欢迎的解决方案。 例如,查看Vepp的工作方式。
- 尽力做到最好,并希望最好。也许我们只是偏执?
解决方案是:
有一些由php驱动的自托管应用程序的重要示例。 即Self-hosted Bitrix24
- 做一些使客户端可以在不访问源代码的情况下在其私有云中运行代码的事情-我们已经研究了Google Cloud Marketplace,但是据我所知,客户端将可以访问VM 。
是的,您可以将应用程序分发为加密的VM。