操作方法:SaaS/PHP 应用程序/租户/安全性

操作方法:SaaS/PHP 应用程序/租户/安全性

我是 webhostingcorner 的新手,我对如何为 SaaS 应用程序实现/设置网络服务器有几个问题。我准备为两个月后要推出的新产品 (CMS) 租用自己的服务器。开发系统对我来说并不是什么大冒险,但正确的实现方法却很困难。

假设我的情况如下:

  • 我想为 8 个客户托管 10 个网站。
  • 有 6 个单独站点,两个客户有两个网站可以使用我的软件进行管理。
  • CMS 也必须放在服务器上,所有客户端都连接到 1 个系统
  • 数据库必须放置在
  • 根据客户签订的合同,客户会获得一些存储空间。如何测量数据库、文件系统和电子邮件使用的存储空间
  • 任何情况下,客户端都无法以某种方式离开其目录,但从 CMS 目录中,CMS 必须能够在客户端目录中创建文件和目录(用于模板、图像库、小部件等)。

我正在考虑类似这样的目录结构:

./CMS/ [all CMS files]

./Websites/*/ [all websites]

我的托管服务提供商将安装操作系统(CentOS,最新版本)和管理面板(Direct Admin)的更新。

有没有人有这方面的经验?或者你对此有什么想法?请加入讨论,因为我对此完全陌生。

答案1

您是否考虑过虚拟化策略?这样,您就可以轻松管理客户端可用的磁盘空间量。您可以确保客户端无法访问彼此的内容。并且,您可以准备扩展到更多客户端,方法是确保虚拟机是通过模板或黄金映像自动安装的。如果您需要更多硬件,只需添加另一台主机并开始部署虚拟机或将已经运行的虚拟机移动到新主机。此外,正确设置的虚拟基础架构将使您能够非常快速地将虚拟机移动到 Amazon EC2 或 RackSpace 等公共云中。如果您的某个客户端出现 slashdot 问题,那么只需将该客户端虚拟服务器放入云中,而不会让您的其他客户端陷入困境,这样会更安全。

答案2

我不太明白现在互联网上广泛使用的那个闪亮的新术语“SaaS”,但是...让我们加入讨论吧:)

你的软件准备好了吗?

对于磁盘空间配额,有几种可能性:

  • 标准配额(在文件系统级别进行管理,比如说在 extfs 上,因为它是最常见的)
  • 分区/卷管理:LVM 非常方便为客户创建磁盘空间切片

如果我理解得足够清楚,每个人都会得到相同的软件,但可以添加其额外的文件/主题。

我不知道这对您来说是否是一个很好的解决方案,但可以在只读模式下安装参考模板(比如说 LVM 切片),并在写入模式下安装“主题”或“自定义”文件夹上的客户磁盘空间。

这样,您对参考模板所做的所有更改都会“部署”给所有客户。

详细说明您的愿望和需求,以便我们可以添加更多建议

答案3

为了使其更像一次对话,我将发布一个新的答案。

SaaS 确实是一两年前才出现的新术语,而且越来越受欢迎。实际上,它只是与客户签订的服务合同。他们租用您的软件来保持自己的能力 ;)

我的软件几乎已经准备好了。有趣的部分都完成了,显示模块(模板渲染器)需要优化,但它已经准备好进行测试了。

我可以将数据库中使用的配额与使用的磁盘空间和使用的电子邮件空间合并吗?

由于所有客户都为独特的模板付费,因此安装将不是一种选择。这是必须的要求。

答案4

我个人会忘记符号链接,磁盘空间确实很便宜,并且将 CMS 的安装升级到损坏状态(它会发生)一下子惹恼了所有的客户。

每个客户端创建一个安装,我确实希望它是一个应用程序功能,可以使用 CMS 而不是操作系统来管理多个不同的站点,这只是错误的地方,我建议每个人都不要放弃声称能够管理多个站点但实际上只需要多个安装的产品。

优点:

  • 升级失败不会立即激怒所有客户
  • 你可以向一小部分客户展示新功能(是的,10 分之一的客户仍然可行,也许你可以和某个人比其他人更好地交谈并建议他们试驾)
  • 如果一个客户端因为安全漏洞而中断安装,其他客户端不会受到影响(除非升级到更深的层次,导致系统崩溃)

相关内容