一、导语
办公文档是每个人日常频繁使用的工具,ppt、word、xls、wps、pdf等为我们工作和生活带来了很多的便利,本文介绍在云计算和智能手机时代,基于 智能媒体管理 的新型Cloud Native文档转换/预览架构,实现高效的文档预览服务。
二、背景介绍
构建文档预览服务,需要考虑原始文档的保存,文档传输到转换预览服务器,进行文档格式转换以及数据的保存,对外支撑客户端的预览服务流程,同时需要考虑整个过程中对安全和可靠性的设计。所以,评估文档预览服务,必须要考虑如下的技术点。
2.1 转换引擎
- 格式种类。分为支持的输入文档种类、输出文件格式,比如输入文档种类支持ppt、pot、pptx、doc、dot、docx、xlsx、csv等,输出文件格式为jpg、png、pdf、向量格式(Vector,该格式支持在预览时选取里面的文字)。
- 转换效果。能够转换大文件(比如20MB以上的文件),对于xls文件也能够友好的显示(包括sheet的显示)。
2.2 预览技术
- 多设备支持。在PC/手机上都能轻松预览,支持左右、上下翻页的体验。
- 定制化能力。提供预览插件框架,可以在预览页面中插入自定义广告。
2.3 安全设计
- 原始文档的安全。原始文档是否需要上传到其他的应用或者其他的云。
- 预览数据的安全。经转换引擎生成的预览数据持久化保存位置是否是您可以指定的位置,预览的数据是否支持签名访问。
- 加密文档的安全。对于加密的文档,是否可以支持预览。
2.4 SLA设计
- 预览服务的SLA。因为预览是通过互联网为PC/手机提供服务,所以可以按照云服务的标准衡量服务等级。
- 预览数据的持久度。由于众多的互联网客户端都会访问数据,所以数据的持久度也是一个关键指标。
上述技术点,将是评估文档预览架构的重要评价标准。
三、现有架构
不管是公有云还是专有云,现有典型的文件预览架构是部署专门的预览软件,比如Microsoft OWA(Office Web Apps),以“公有云存储OSS+OWA“为例,其架构如下。
其典型特征如下:
- 转换数据保存在转换/预览服务器。需要在转换/预览服务器提供存储,如果采用本地存储,需要解决该服务器故障时预览不可用的问题;否则,利用这些服务器构建分布式存储,保证服务器故障也能访问数据。
- 客户端预览请求由转换/预览服务器完成。服务器需要提供预览的互联网带宽、解决重复预览请求的缓存设计,以及根据请求做弹性伸缩的服务能力。
整体来看,这是传统的预览架构,并没有充分利用云存储OSS的互联网访问、弹性伸缩、数据持久度、SLA等能力。
四、Cloud Native架构
智能媒体管理 产品,基于现有架构的分析,优化设计了Cloud Native架构的文档预览服务,其架构如下。
其典型特征是:
- 充分利用云存储OSS的服务化能力。服务器只需处理文档的格式转换,然后充分利用云存储OSS的互联网访问、弹性伸缩、数据持久度、SLA等能力客户端提供文档浏览服务。
- 客户端直连OSS进行预览。链路短、效率高、体验好。
五、架构对比
5.1 架构对比分析
通常前面的介绍,现有架构中服务器同时支持转换、预览能力,客户端始终和服务器交互,是典型的In Band模式;而Cloud Native架构充分利用云存储OSS提供预览能力,服务器只需提供转换功能,从而 实现转换、预览解耦,是典型的Out Of Band模式。
由于Cloud Native架构的解耦模式,云存储OSS卸载了预览服务,从而和现有架构相比,只需采用更少的转换服务器就可以完成服务; 并且由于转换数据都在OSS上,转换服务器可以采用无状态设计,从而转换服务可以轻易的实现弹性伸缩。
5.2 技术点对比
\ | 现有架构(OWA) | 智能媒体管理的CloudNative架构 |
---|---|---|
转换格式种类 | 典型的office文档 | office文档、WPS文档、代码等多种格式 |
转换效果 | 限制原文件大小 | 能转换大文件(比如20MB以上的文档),对于xls文件也能够友好的显示(包括sheet的显示) |
预览多设备支持 | 支持 | 支持,上下翻页、左右翻页 |
预览定制化能力 | 不支持 | 提供插件框架,可以插入自定义的插件,实现预览显示定制化广告 |
原始文档的安全 | 复用OSS的安全 | 复用OSS的安全 |
预览数据的安全 | 预览服务器保证安全,工作量大 | 复用OSS的安全 |
加密文档的安全 | 不支持预览加密文档 | 支持加密文档预览,以及转换数据的安全 |
预览服务的SLA | 预览服务器的SLA设计,工作量大 | 复用OSS的SLA,达到99.9% |
预览数据的持久度 | 预览服务器的分布式存储设计,工作量大 | 复用OSS的持久度,达到11个9 |
5.3 Cloud Native优势总结
5.3.1 成本更优化
- 更少的服务器。OSS卸载了预览功能后,服务器只需做转换,从而服务器更少。
- 更少的服务器存储。OSS保存了转换数据,服务器无需使用存储来保存转换数据。
5.3.2 扩展性更优
- 服务器无状态扩展。无需保存转换数据,故可以采用无状态设计,非常容易实现扩展性。
- 基于OSS的存储和网络扩展能力。无需基于服务器构建分布式系统,利用OSS实现弹性伸缩。
5.3.3 可靠性更好
- 直接复用OSS的可用性和持久度。无需基于服务器构建分布式系统,提供高可靠性。
六、如何使用
通过阿里云提供的云存储OSS,以及阿里云的 智能媒体管理 服务,可以直接在您的云存储OSS上快速实现自己的文档预览服务。参考如下的文章,帮助您迅速搭建服务: