总结:自行管理低流量 SaaS 应用需要付出多少努力?PCI/SOC2 合规性是否太麻烦?
目前我们正在使用 GCP。我们的基础设施很简单:一个负载平衡的 SaaS、Postgres 实例和 Memcache 实例。我们为生产和 QA 环境准备了两个副本。我们的网站流量非常低。我们还必须符合 PCI 和 SOC2 标准。
现在,我对 GCP 有一些不满,但我不会深入讨论。我也是那种总是追求更简单解决方案的人。我喜欢知道事情是如何运作的,这样如果它停止工作,我就能确切地知道如何修复它。
因此,我更愿意与 Linode 这样的提供商合作也就不足为奇了。
当我向老板提出迁移到其他提供商的计划时,它立即被否决了。这也不足为奇;我们是一家小公司,花时间改进基础设施就意味着没有时间开发功能。主要原因是这会花费太长时间,维护工作太多,如果我离开公司将是一场灾难,我们将不得不再次接受审计,等等。
我认为这是一场不值得为之奋斗的艰苦战斗,但它让我思考实际上需要多少维护工作。
我的计划是为每个环境设置一个小型 Docker Swarm 集群。Kubernetes 是一个选项,但我发现它对于我们的用例来说有点太过复杂,而且学习难度很高。
设置初始服务器需要一两天时间,但一旦有了服务器映像或设置脚本,添加新服务器只需几分钟。我认为定期维护不会比升级系统软件包更复杂。
我对维护工作的期望是否现实?无论我怎么看,这似乎都不是一个复杂的工作。
答案1
可靠地建立计算实例并更新其软件是一项核心能力。对于任何 IT 环境来说都是必需的。但让服务器运行只是确保新托管提供商适应合规环境的一小部分。
新的特权账户将可以控制这个新的基础设施,谁来管理它们?
每个人都只需分配适合其角色的权限。是否计划改变身份系统?
要接入这个新提供商,需要进行哪些网络变更?生产和 QA 可以完全相互隔离吗?
如何保护静态数据?根据您的风险状况和偏执程度,您可能希望实施数据库或文件系统级加密。即使服务提供商有证据表明其存储系统实施了磁盘级加密。
秘密,它们是如何管理的?密钥、密码和证书将存在,因此应选择经批准的工具。
变更管理程序如何运作?
哪些安全控制与基础设施相关?网络防火墙规则,理想情况下将 QA 与生产分开。多种身份验证方法。面向外部的服务对拒绝服务的弹性。软件更新合规性和漏洞扫描。
托管服务提供商有时会通过引入自己的特殊 API 来使可移植性变得困难。上述任何一项都可能依赖于其他提供商没有明显替代品的功能。
如果该项目严重不符合合规要求,最糟糕的情况是什么?就 PCI 而言,组织可能面临巨额罚款,并失去支付处理商关系。虽然不太可能,但业务连续性的关键在于风险管理。
当然,这个新实施需要经过审核才能达到同样的可信度。理想情况下,安全性和可用性要优于以前的设计。
为托管服务提供商切换而设计提供了选择,这对竞争总是有好处的。但要小心声称做好事情很容易,即使是小型系统也是如此。