近年来,SaaS 伴随着公有云的落地而逐渐兴起并稳步前进。随着 SaaS 产品的发展完善,市场催生出一种新的需求——能否将 SaaS 产品进行私有化部署?表面上 SaaS 专为网络交付而设计,与私有化部署似乎格格不入,然而,从市场状况来看,SaaS 产品的私有化部署却具备长期存在的价值。
调查数据显示,未来几年内,中国的私有云市场会保持 22% 的年增速,最终和公有云市场形成一个相对稳定的市场平衡。对于私有云用户来说,SaaS 产品的私有化部署能够满足其个性化定制的需求,且系统部署在本地,数据更加安全、可控。像政府、金融这种行业客户,在使用云平台的时候,还需要满足监管部门的安全合规需求,当 SaaS 产品私有化后,客户也可以更好地满足安全合规要求。综上原因,SaaS 产品的私有化部署将长期在企业 IT 市场里占有重要的位置。
据腾讯云 TCS 产品负责人丛磊介绍,尽管 SaaS 产品的私有化部署拥有很大的市场,但 SaaS 产品在私有化输出时仍面临巨大的挑战。
首先是部署资源的小型化方面。公有云用户并不关注产品部署所需的底层资源,而私有云用户往往对资源比较敏感。因为,企业能承受的成本都是有限的。所以如何在企业资源有限的条件下,把功能完备、可靠性高的 SaaS 产品部署起来是首要挑战。
其次是交付成本方面。SaaS 产品在公有云上通常只需要进行一次部署,因此交付时长不需要 SaaS 厂商过多考虑。但是一旦 SaaS 产品私有化,情况就变得不同。针对不同企业、不同环境,SaaS 厂商需要进行多次部署,因此,不得不考虑时间上的投入产出比。
第三是运维问题。SaaS 产品的一大优势在于屏蔽了运维细节。使用 SaaS 产品时,用户无需考量运维问题,只需要付费购买服务。但对 SaaS 产品私有化部署后,发生故障该如何溯源和解决,全依赖现场的驻场运维,会消耗大量的培训和人力成本。
第四是合规问题。不同行业,如政府、银行等,都有各自的安全标准,特别是在中国合规性要求较严格的背景下,该如何满足不同企业的需求又是一大挑战。
最初,SaaS 产品的私有化部署主要通过两种方式实现。一种是采用纯手动的方式进行部署操作,另一种是自研或维护一套云原生技术体系,然后通过云原生的技术进行交付。前者效率和可靠性都比较低,很难满足需求。后者虽然可行,但问题在于,自研和维护一个底座,需要耗费掉 SaaS 厂商非常多的精力,使其无法投入更多的精力在主流业务的开发中。由于这两种解决方案均未能很好的解决行业痛点,导致即使市场需求强烈,但大多数 SaaS 厂商只能是望而却步。
基于这样的现状,腾讯云云原生操作系统遨驰推出了 TCS 解决方案。TCS 是一款面向应用的、轻量化的私有化部署平台,用以帮助 SaaS 产品实现私有化交付。经过过去几年从 1.0、2.0、2.1 版本的沉淀,TCS 目前已经发展到了 2.2 版本。
TCS 的诞生并非一蹴而就。该解决方案最早源于腾讯专有云企业版 TCE 的底座。在输出专有云产品的过程中,腾讯云发现虽然专有云产品包含计算、存储、网络、数据库、中间件等诸多类型,但不管何种类型的产品,在私有化输出的时候都需要一个底座,这个底座就是 TCS 最早的雏形。
TCS 最初仅用于腾讯内部 SaaS 产品的私有化输出,最为知名的便是在腾讯会议上的应用。腾讯会议作为腾讯的明星级产品,在疫情的大环境下,取得了爆发性的增长。随着用户规模的增长,其在私有化环境下输出的需求也不断增加,部分行业由于监管规范以及客户对敏感音视频数据的掌控要求,存在只接受使用私有化方式采购和部署线上会议产品的场景。因此,腾讯会议的私有化输出势在必行。
在选择私有化输出时,腾讯会议就到底是选择自研 k8s 集群进行部署管理还是选择 TCS 作为底座平台?最终,考虑到部署的复杂度和维护难度,腾讯选择尝试已经支撑 TCE 发展多年的 TCS。
实践证明,这是个正确的选择。TCS 不辱使命,针对性地解决了腾讯会议在私有化部署方面的挑战,那么,具体是如何解决的呢?
首先,腾讯会议后台的很多模块,很多组件和服务甚至还不能做私有化改造。而要想通过代码的全盘改造使其解耦,工作量又太大,整体进度和质量都不可控。TCS 通过提供云原生组件的方式,来代替原来依赖的产品和服务,在实现相同能力的基础上,做到更加轻量化。
其次,在提升部署效率方面,TCS 不断进行自身优化,构建了一键化部署系统。该系统上层通过云原生技术进行应用的封装和编排,下层由平台跟硬件、操作系统、IaaS 进行融合。最初,仅私有化部署安装环节就需要 5 人花费两周的时间。使用 TCS 以后的,部署耗时从最开始的按天计算缩短为按小时计算。以 2000PCU 在线为例,熟练人员可以在 1 天内完成。
第三,资源方面,由于企业客户自有环境的资源不可能像公有云资源那样充足,这也就要求会议本身和其底层平台的资源越小越好。TCS 主要通过两种方式降低资源消耗。其一,是对模块进行合并,其二,是通过技术手段进行优化,让资源的使用更高效。通过 TCS 和腾讯会议的双向进化,TCS 搭载腾讯会议的资源消耗降低了几十倍。
第四,在运维和高可用方面,TCS 通过建立监控巡检体系,来辅助用户完成后期运维的工作。监控巡检体系能够帮助用户完成快速修复、执行简单变更,以及完成部分组件升级的任务,在一定程度上可降低人力成本。
通过在腾讯会议上的应用实践过程,TCS 对自身能力进行不断迭代和沉淀,逐渐走向成熟。既然能对腾讯的 SaaS 产品进行私有化输出,又拥有强烈的市场需求,那么是不是能够帮助行业的更多 SaaS 厂商实现私有化交付呢?
从面向腾讯 SaaS 产品的解决方案到助力行业其他 SaaS 厂商实现高效交付,看似由点到面的简单转变,实则对系统的性能提出了更高的要求。与之对应,在技术实现上 TCS 也进行了一些创新。
一方面,编排能力对于云原生来说是非常重要的。最早,TCS 是基于 K8s 的编排能力。但随着上层业务复杂性的增强,K8s 原生的编排能力显然已经不够用了。真正复杂的业务可能需要实现千千万万的原子粒度编排,这就要求云原生平台里面编排的能力能够丰富起来。腾讯云创新性的构建了一套 TAD(Tencent Application Definition)标准,用于扩展云原生应用的描述能力。
另一方面,原来的容器化网络通常本身有一个代理层,把网络进行封包,构建出一个上层网络,通过这个网络来传输整个容器里的信息。在这个过程中,要首先经过网络的代理层或者中间层,然后进行网络的封包和解包。在网络操作的时候,涉及到从用户态到内核态的信息转换,包括内存拷贝、相互调用等,导致网络性能不高。TCS 通过新的技术,降低了用户态和内核态的数据交互,大幅提升了网络解析和转发效率。
在助力行业实现高效交付的道路上,腾讯云 TCS 团队始终在不断在创新,同时,云原生的技术也在不断发展。如何实现更精巧的私有化输出,如何让整个业务跑得更加智能,是腾讯云始终在考虑的问题。
丛磊说:“如果把 TCS 当做是一个操作系统,那么这个操作系统最好的状态就是让用户完全感觉不到它的存在。” 谈及了 SaaS 产品私有化部署的未来,他表示:“只需一次编译,实现多处部署,‘不重复造轮子’将成为 SaaS 产品私有化部署未来的演进方向,腾讯云也正在朝着这个方向努力着。”