一种基于容器环境下优化图片大小的方法技术

技术编号:34477785 阅读:19 留言:0更新日期:2022-08-10 08:53
本发明专利技术提出了一种基于容器环境下优化图片大小的方法,图片处理容器Ingress

【技术实现步骤摘要】
一种基于容器环境下优化图片大小的方法


[0001]本专利技术涉及通信
,尤其涉及一种基于容器环境下优化图片大小的方法。

技术介绍

[0002]现今互联网网络环境错综复杂,网络链路质量参差不齐。业务出海面临着巨大的网络问题:延迟高、传输慢、丢包率高、网络链路抖动已经严重影响到业务的体验感。在互联网信息传递的过程中,图片是一种非常重要的信息载体,因此保障图片在弱网环境的传输与加载速度是业务体验感提升的一个重要方面。
[0003]图片的传输优化手段大致分为两种:一种是从图片自身大小入手,在保障图片质量的情况下去压缩图片减少图片的大小以减少网络的传输量,另一种则是将图片放在离终端用户更近的位置以减少网络延迟。
[0004]众所周知,当前最流行的图片格式为JPG、JPEG和PNG,此类格式尺寸太大,造成网站带宽流量占用过高,弱网环境下传输较慢,网站页面加载速度较慢,降低用户体验感,并且图片本身就是二进制编码的格式的,对图片再进行压缩不仅耗费大量计算资源,而且压缩效果微乎其微。
[0005]因此现在可以通过使用Google的WebP格式的图片来减少图片尺寸。Webp并不是一项新的技术,早在2010年的Google/IO大会上就已经发布。但是由于浏览器兼容性问题,WebP在近几年才变得大为流行。WebP是一种现代图像格式,可为Web上的图像提供卓越的无损和有损压缩,使Web网站管理员和Web开发人员可以创建更小、更丰富的图像,从而使Web更快。
[0006]与PNG相比,WebP无损图像的大小要小26%。在同等SSIM质量指数下,WebP有损图像比可比较的JPEG图像小25

34%。
[0007]无损WebP支持透明度(也称为alpha通道),成本仅为22%额外字节。对于可以接受有损RGB(Red、Green、Blue)压缩的情况,有损WebP还支持透明度,通常提供比PNG小3倍的文件大小。
[0008]现有的Webp的实现方案来大概有如下4种:
[0009]1)通过对象存储(例如阿里云OSS(Object Storage Service,对象存储)、华为云OBS等)、专门的图片处理平台(例如imgix、imagekit等)或者网络加速平台(例如Cloudflare等)提供的图片格式转换API的功能,转换原有格式图片生成Webp格式图片;
[0010]2)通过业务应用集成Webp对应的开发语言类库,从业务角度去转换原有格式图片生成Webp格式图片;
[0011]3)通过反向代理如Nginx或Openresty等集成Lua脚本转换原有格式图片生成Webp格式图片;
[0012]4)通过CDN(Content Distribution Network,内容分发网络)结合函数计算来转换原有格式图片生成Webp格式图片,例如Cloudfront+Lambda;
[0013]现有技术的缺点:
[0014]1)通过对象存储、专有图像处理平台或者网络加速平台提供图片转换API(Application Programming Interface,应用程序接口)生成Webp格式图片存在一定的局限性,如果通过对象存储API接口实现,首先图片的存储位置要放在对象存储当中,并且对业务的侵入性较高,需要去适配平台接口以及引入相关SDK,并且对象存储对于自定义域名无法使用HTTPS协议进行通信,需要强制关联CDN才可以;通过专门的图像处理平台一样存在业务侵入性较高的问题;通过专门的网络加速平台(这里指的类似Cloudflare这种网络服务提供商,这种服务商会也有CDN服务,但是像Cloudflare这种平台使用他们的平台服务需要转移域名的控制权,就是把现有域名的NS(Name Server)记录修改为他们的NS记录后才能接入使用他们的服务)去处理,往往需要转移DNS(Domain Name System,域名系统)服务器的控制权,并且对原有业务接入的CDN有适配影响,也存在业务侵入性问题,平台绑定性等问题,对后期迁移平台带来较高的适配成本;
[0015]2)通过业务应用集成Webp对应的开发语言类库,对于业务来说要做的改动太大,带来比较高的开发成本;
[0016]3)通过反向代理的方式集成Lua脚本方式实现没有对容器化环境带来很好的支持,往往只是针对于传统虚拟机环境的支持,对云原生架构没有很好的支持;
[0017]4)通过CDN结合函数计算的方式对持久化存储支持的不好,往往在CDN上面缓存过期的图片或者新上传的图片都需要重新去生成,每次生成都需要进行函数计算,相对来说费用成本较高,并且带来了大量的重复生成的工作
[0018]综上所述,现有Webp改造方案往往需要迁移后端存储或者需要对现有业务做大量的适配改造;现有的Webp改造方案对容器环境下支持存在一定局限性。
[0019]为了解决现有技术的不足,本专利技术提出了一种基于容器环境下优化图片大小的方法,Ingress

nginx根据编排文件中所编写的Lua脚本拦截路由匹配的图片,然后调用cwebp命令将原有图片格式转换为Webp格式图片并返回给用户;本专利技术实现了容器环境下Webp图片的生成,优化了图片的大小,节约了网络资源,同时降低了开发和运维的成本。
[0020]本专利技术具有如下优势:
[0021]1)不去做任何三方平台的绑定,减少开发适配的成本和后期迁移平台的成本;
[0022]2)做到业务零侵入,不需要改造现有前后端业务逻辑,降低开发成本;
[0023]3)支持容器化环境部署,满足云原生架构需求;
[0024]4)降低网站基础设施费用,做到Webp格式图片仅生成一次,无需重复生成。

技术实现思路

[0025]为了解决现有技术的不足,本专利技术提出了一种基于容器环境下优化图片大小的方法,Ingress

nginx根据编排文件中所编写的Lua脚本拦截路由匹配的图片,然后调用cwebp命令将原有图片格式转换为Webp格式图片并返回给用户;本专利技术实现了容器环境下Webp图片的生成,优化了图片的大小,节约了网络资源,同时降低了开发和运维的成本。
[0026]为实现上述目的,本专利技术采用如下的技术方案。
[0027]在本专利技术实施例中,提出了一种基于容器环境下优化图片大小的方法,该方法包括如下步骤:
[0028]S1编写Dockerfile文件,构建具有图片路由拦截能力以及Webp处理能力的图片处
理容器Ingress

nginx;
[0029]S2编写Ingress

nginxHelm Chart编排文件,使得图片处理容器Ingress

nginx与后端业务容器共享PVC存储,后端业务容器的Ingress编排文件声明使用图片处理容器的controller作为入口控制器;
[0030]S3用户请求图片首先本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于容器环境下优化图片大小的方法,其特征在于,该方法包括如下步骤:S1编写Dockerfile文件,构建具有图片路由拦截能力以及Webp处理能力的图片处理容器Ingress

nginx;S2编写Ingress

nginxHelm Chart编排文件,使得图片处理容器Ingress

nginx与后端业务容器共享PVC存储,后端业务容器的Ingress编排文件声明使用图片处理容器的controller作为入口控制器;S3用户请求图片首先到达CDN上面,CDN检查是否存在缓存,若CDN上没有对应请求图片的缓存,则CDN向源站发送请求,请求经过四层负载均衡器传递到图片处理容器Ingress

nginx;S4图片处理容器Ingress

nginx根据Lua脚本配置的路由对图片进行拦截处理;若匹配到图片处理的路由且客户端浏览器支持Webp格式图片,则进入Lua图片处理逻辑;S5图片处理容器Ingress

nginx通过Lua脚本判断Webp格式图片是否存在,若不存在,则调用cwebp生成Webp格式图片并返回给客户。2.根据权利要求1所述的一种基于容器环境下优化图片大小的方法,其特征在于:所述PVC存储通过指定业务容器的默认运行进程的属主与属组,重新构建后端业务系统镜像,从而使得图片处理容器Ingres...

【专利技术属性】
技术研发人员:杨林李文征
申请(专利权)人:青岛大拇指供应链科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1