本文来自微信公众号“开源云中文社区”。
软件即服务(SaaS)交付软件的方法彻底改变了行业。SaaS市场预计到2030年将从3万亿美元增长到10万亿美元,未来是光明的。组织越来越多地采用SaaS应用程序,因为它们是在提供商的服务器上管理和运行的。这减轻了管理软件应用程序的基础设施、可用性、安全性和性能的责任。
虽然这使客户能够简单地租用软件并只为所使用的软件付费,但使用SaaS并不总是可能的。一些垂直的SaaS,如开发人员或安全工具,通常必须与组织的代码库或生产环境交互——对于拥有专有算法或敏感数据的组织来说,这是绝对不允许的,尤其是在金融科技、医疗保健和政府行业。然而,这些行业的企业仍然需要使用尖端技术,无法购买过时的软件。
作为回应,一些软件供应商将其产品作为自管理版本提供,这样公司就可以在其基础设施范围内保持其运行,从而满足安全和数据保护需求。但设置、运行和扩展工具可能是一项复杂且资源密集的任务,公司可能不想承担。这会占用时间和资源,让公司无法专注于构建核心产品。
这就是为什么笔者认为需要一种新的范式。
什么是私有SaaS?
私有SaaS是SaaS的变体,供应商在客户网络中运行软件,但负责管理和保护软件。供应商的私有SaaS框架负责可靠性、可用性、升级和第2天运维。它分割控制平面和数据平面,允许客户数据保留在其网络中。
由于软件完全由提供商管理,客户无需处理部署、配置、可靠性、安全性、灾难恢复和升级。而且,由于软件数据仍在组织的网络中,组织可以控制数据的保存位置和保存时间,从而帮助实现对SOC2、HIPAA和GDPR的合规性。最后,对于处理大量数据的工具,如日志管理和ETL,私有SaaS可以消除大量数据传输成本。
SaaS模型:
——供应商的“数据平面”(每个客户的应用程序和软件托管并运行)位于供应商的网络中。
——基础设施(机器、内存、CPU、磁盘)由供应商提供。
为了让供应商的“数据平面”接收更新,为每个客户运行的代理与供应商的控制平面(也位于同一供应商网络中)进行协调。
私有SaaS模型:
——供应商的“数据平面”位于客户A网络内的环境中,因此由客户A管理和控制。
——基础设施(机器、内存、CPU、磁盘)由客户A提供。
——只有供应商的“控制平面”(负责“数据平面”的更新)位于供应商的基础设施内,而工具和应用程序则位于客户的基础设施中。
对私有SaaS的使用
OpsVerse提供了一个托管的DevOps工具平台,允许公司使用开源软件,如Argo、Grafana、Jaeger和Prometheus。私有SaaS产品非常受欢迎,主要是由于客户希望将数据保存在内部。从信息安全(InfoSec)的角度来看,通过私有SaaS启动工具可以使他们遵守数据保护规则或必须遵守的任何法规。
例如,客户通过私有SaaS运行Argo CD。为了理解原因,我们必须首先了解Argo CD提供了什么以及它是如何工作的。
Argo CD是一个开源的、基于GitOps的“持续交付”工具,正迅速获得采用和普及。GitOps指的是一组使用Git作为唯一真实来源来管理基础设施和应用程序配置的实践。Argo CD——流的“持续交付”部分——监控Git并确保基础设施的状态匹配。
因此,Argo CD需要访问组织的Git存储库和生产基础设施(如Kubernetes),在那里它需要操作更改——这两个都是非常脆弱的资产。使用私有SaaS,这两个组件都留在组织自己的网络中,提供InfoSec团队所需的安全级别。
如何构建私有SaaS
构建一个私有SaaS产品可以为公司打开一个新的市场,但这并非没有挑战。
主要挑战之一是了解私有SaaS应用程序的运行状况。为了确保高质量的服务,供应商必须具有强大的可观测能力。
这包括收集以下信号:
——指标:查看应用程序趋势并设置警报。
——日志:查看应用程序正在做什么。
——跟踪:查看应用程序的哪些组件可能成为瓶颈。
——事件:查找基础设施更改。
这可以通过为其应用的所有组件实施遥测来实现。这确保了服务始终处于运行状态,并允许供应商知道何时为客户周边运行的部件提供更新或维护。
另一个挑战是推出在私有Saas中运行的应用程序的更新。如果网络配置不允许进出客户周界,则供应商应将管理集群复制到客户周界中,这样代理在轮询时就不必离开周界。这种方法将使供应商的自动更新框架保持一致,但客户将有额外的负担来与供应商协调操作管理集群。
如果客户的网络配置仅限制从其周界外部进入,则需要由供应商提供的位于客户周界的代理。此代理将轮询供应商的管理集群,下载并安装更新。
在自动更新期间解决客户集群上的问题也是一项挑战。供应商应确保客户运行诊断并将报告发送给供应商以进行故障排除。
私有SaaS刚刚起步
政府对数据安全和隐私的管理法规不断演变,对工程团队来说,合规性始终是一个挑战。据估计,66%的国家制定了某种数据隐私和消费者权益立法,因此我们应该预计,使用SaaS将越来越具有挑战性。
无法使用SaaS的组织正在转向内部部署和组装的OSS,内部开发平台(IDP)的兴起反映了这一趋势。然而,他们通常没有开发主题专业知识所需的时间、带宽和技能来可靠地运行、维护和保护开源软件。这有充分的理由。最近的一份报告发现,在员工超过10000人的组织中,48%的组织面临遵守政府要求的挑战,30%的组织报告称其OSS堆栈的安全性是首要任务。
这就是我们认为需要私有SaaS的原因,我们已经看到公司使用类似的方法。你认为需要这个新概念吗?你是否基于类似的原则构建产品?