最近很多团队在讨论,到底是用Serverless还是用容器,容器安全和Serverless落地哪个更重要,今天就来聊聊这个话题,帮大家做选择。

这,几年,云原生,技术,发展,很快,Serverless,和,容器,都,是,很,热门,的,技术,很多,团队,在,做,技术,选型,的,时候,都会,纠结,到底,该,用,Serverless,还是,该,用,容器,容器,安全,和,Serverless,落地,哪个,更,重要,到底,该,选,哪个。

我,所在,的,团队,这,几年,既,用,了,容器,也,用,了,Serverless,踩,了,不少,坑,也,积累,了,一些,经验,今天,这篇,文章,就,来,聊聊,这个,话题,对比,一下,Serverless,落地,和,容器,安全,的,差异,以及,各自,的,适用,场景,帮,大家,做,选择。

一、什么是Serverless和容器

在,对比,之前,先,简单,介绍,一下,什么,是,Serverless,什么,是,容器,让,不,了解,的,朋友,有,个,概念。

容器

容器,是,一种,轻量级,的,虚拟化,技术,能,把,应用,和,它,的,依赖,打包,成,一个,镜像,然后,在,任何,安装,了,容器,运行时,的,环境,运行,保证,环境,一致性,避免,"在我机器上能跑",的,问题,目前,最,流行,的,容器,技术,是,Docker,几乎,成,了,容器,的,代名词,而,容器,编排,工具,最,流行,的,是,Kubernetes,简称,K8s,能,自动化,部署,扩展,和,管理,容器化,应用。

容器,的,特点,是,轻量,快速,启动,快,占用,资源,少,环境,一致性,好,能,很,好,地,支持,微服务,架构,所以,这,几年,非常,流行,很多,公司,都,在,生产,环境,使用,容器,和,Kubernetes,部署,应用,已经,成,了,云原生,的,事实,标准。

但是,容器,也,有,一些,问题,比如,需要,自己,管理,服务器,和,集群,运维,复杂,需要,专门,的,运维,人员,而且,容器,安全,是,一个,很,重要,的,问题,容器,逃逸,镜像,漏洞,配置,错误,等等,都,可能,导致,安全,问题,需要,专门,做,容器,安全,防护。

Serverless

Serverless,直译,是,无服务器,但是,不是,真的,没有,服务器,而是,开发者,不用,关心,服务器,的,管理,把,服务器,的,管理,都,交给,云,厂商,开发者,只,需要,写,代码,上传,云,厂商,就,会,自动,帮,你,运行,和,扩展,按,实际,使用,量,付费,不用,的时候,不,花钱,很,省钱,也,很,省心。

Serverless,主要,有,两种,形态,一种,是,BaaS,Backend as a Service,后端,即,服务,比如,云,数据库,云,存储,云,消息,队列,等等,都,是,托管,的,服务,不用,自己,管理,另一种,是,FaaS,Function as a Service,函数,即,服务,比如,AWS Lambda,阿里云,函数计算,腾讯云,云函数,等等,开发者,只,需要,写,函数,代码,上传,云,厂商,就,会,自动,运行,按,调用,次数,和,运行,时间,付费,我们,通常,说,Serverless,主要,指,的,是,FaaS。

Serverless,的,特点,是,免运维,自动,扩展,按用付费,成本低,开发者,只,需要,关注,业务,逻辑,不用,关心,服务器,的,管理,和,扩展,所以,这,几年,也,越来越,受,欢迎,很多,团队,开始,在,生产,环境,使用,Serverless。

但是,Serverless,也,有,一些,问题,比如,冷启动,延迟,调用,有,延迟,不,适合,对,延迟,特别,敏感,的,场景,比如,本地,调试,困难,因为,运行,在,云,上,本地,很难,模拟,比如,厂商,锁定,用,了,某个,云,厂商,的,Serverless,服务,就,很难,迁移,到,其他,云,厂商,比如,不,适合,长时,运行,的,应用,因为,函数,有,运行,时间,限制,一般,最多,15分钟,等等,所以,Serverless,也,不是,银弹,不是,所有,场景,都,适合。

二、Serverless落地的挑战

先,说说,Serverless,落地,的,挑战,虽然,Serverless,有,很多,好处,但是,真正,落地,到,生产,环境,还是,有,很多,挑战,需要,注意。

1. 冷启动问题

第一个,挑战,是,冷启动,问题,这,是,Serverless,最,常见,也,最,受,诟病,的,问题,因为,Serverless,函数,是,按需,运行,的,没有,调用,的,时候,函数,是,不,运行,的,当,有,调用,来,的,时候,云,厂商,需要,先,启动,一个,函数,实例,加载,代码,和,运行时,然后,才能,处理,请求,这个,启动,过程,就是,冷启动,会,带来,一定,的,延迟,一般,是,几百,毫秒,到,几,秒,不等,取决于,语言,运行时,代码,大小,等等,因素。

冷启动,延迟,对于,大部分,场景,来说,可能,影响,不,大,但是,对于,对,延迟,特别,敏感,的,场景,比如,用户,直接,访问,的,API,高,并发,的,实时,系统,等等,冷启动,延迟,可能,会,影响,用户,体验,或者,系统,性能,所以,这些,场景,用,Serverless,需要,特别,注意,冷启动,问题。

解决,冷启动,问题,的,方法,有,几个,比如,用,预留,实例,或者,叫,常驻,实例,让,函数,一直,有,实例,在,运行,不,会,被,回收,这样,就,没有,冷启动,了,但是,这样,就,失去,了,Serverless,按用付费,的,优势,成本,会,增加,比如,优化,代码,和,依赖,减少,代码,大小,和,加载,时间,也,能,减少,冷启动,时间,比如,用,轻量,的,语言,和,运行时,比如,Go,Node.js,比,Java,冷启动,快,很多,比如,用,初始化,连接池,等,方式,减少,运行时,的,初始化,时间,等等,都,能,缓解,冷启动,问题,但是,不能,完全,消除。

2. 本地调试和开发体验

第二个,挑战,是,本地,调试,和,开发,体验,因为,Serverless,函数,运行,在,云,厂商,的,环境,里,依赖,很多,云,服务,比如,云,数据库,云,存储,云,消息,队列,等等,本地,很难,完全,模拟,云,的,环境,所以,本地,调试,比较,困难,开发,体验,不,如,传统,应用,好。

虽然,现在,有,一些,工具,能,帮助,本地,调试,Serverless,函数,比如,Serverless Framework,AWS SAM,阿里云,的,Funcraft,等等,能,在,本地,模拟,运行,函数,但是,还是,和,云,上,的,真实,环境,有,差异,很多,云,服务,的,特性,本地,模拟,不,了,所以,很多,时候,还是,需要,部署,到,云,上,才能,调试,和,测试,这,会,影响,开发,效率。

而且,Serverless,函数,一般,比较,小,比较,分散,一个,应用,可能,有,几十,甚至,几百,个,函数,管理,和,调试,这么,多,函数,也,比较,麻烦,需要,好,的,工具,和,流程,来,管理,不然,很,容易,混乱。

3. 厂商锁定问题

第三个,挑战,是,厂商,锁定,问题,因为,各个,云,厂商,的,Serverless,服务,都,有,自己,的,API,和,特性,不,兼容,用,了,某个,云,厂商,的,Serverless,服务,之后,就,很难,迁移,到,其他,云,厂商,因为,代码,和,配置,都,和,这个,云,厂商,的,服务,绑定,了,迁移,成本,很,高,这,就是,厂商,锁定,问题。

厂商,锁定,会,带来,一些,风险,比如,云,厂商,涨价,你,也,只能,接受,因为,迁移,成本,太,高,比如,云,厂商,的,服务,出现,问题,或者,停止,某个,功能,你,也,很难,快速,切换,到,其他,云,厂商,比如,议价,能力,下降,因为,被,锁定,了,很难,用,其他,云,厂商,来,压价,等等,所以,厂商,锁定,是,用,Serverless,需要,考虑,的,一个,重要,问题。

解决,厂商,锁定,的,方法,有,几个,比如,用,开源,的,Serverless,框架,比如,Knative,OpenFaaS,等等,能,在,自己,的,Kubernetes,集群,上,运行,Serverless,函数,不,依赖,某个,云,厂商,但是,这样,就,需要,自己,管理,集群,失去,了,Serverless,免运维,的,优势,比如,抽象,层,用,一些,跨,云,的,Serverless,框架,比如,Serverless Framework,能,支持,多个,云,厂商,写,一套,代码,能,部署,到,多个,云,厂商,但是,还是,有,很多,云,厂商,特有的,特性,用,不,了,而且,性能,和,体验,也,不,如,原生,的,好,比如,在,设计,架构,的,时候,尽量,用,标准,的,接口,和,协议,减少,对,云,厂商,特有,特性,的,依赖,这样,迁移,的,时候,成本,会,低,一些,但是,也,不能,完全,避免,厂商,锁定。

4. 不适合长时运行和有状态应用

第四个,挑战,是,Serverless,不,适合,长时,运行,和,有状态,的,应用,因为,Serverless,函数,有,运行,时间,限制,一般,最多,15分钟,有的,云,厂商,更,短,所以,不,适合,长时,运行,的,应用,比如,视频,转码,大数据,处理,等等,需要,长时,运行,的,任务,不,适合,直接,用,Serverless,函数,做,当然,可以,把,大,任务,拆,成,小,任务,用,多个,函数,处理,但是,会,增加,复杂度。

而且,Serverless,函数,是,无状态,的,函数,实例,可能,随时,被,回收,也,可能,随时,创建,新,的,实例,所以,不能,在,函数,里,存,状态,比如,内存,里,的,数据,本地,文件,等等,都,不,可靠,因为,实例,可能,被,回收,数据,会,丢失,所以,有状态,的,应用,不,适合,直接,用,Serverless,需要,把,状态,存,在,外部,的,存储,里,比如,云,数据库,云,存储,等等,但是,这样,会,增加,复杂度,和,延迟。

所以,Serverless,更,适合,无状态,的,短时,运行,的,应用,比如,API,后端,事件,处理,定时,任务,等等,不,适合,长时,运行,和,有状态,的,应用,这些,场景,还是,用,容器,或者,传统,的,部署,方式,更,合适。

5. 监控和排障困难

第五个,挑战,是,监控,和,排障,困难,因为,Serverless,函数,运行,在,云,厂商,的,环境,里,开发者,对,底层,的,可见性,比较,低,出,问题,的,时候,排查,比较,困难,比如,函数,执行,失败,了,可能,是,代码,问题,也,可能,是,云,服务,问题,也,可能,是,配置,问题,排查,起来,比较,麻烦。

而且,Serverless,函数,是,分布式,的,一个,请求,可能,经过,多个,函数,和,云,服务,调用,链,比较,长,出,问题,的,时候,定位,问题,比较,困难,需要,好,的,链路,追踪,和,监控,工具,才能,快速,定位,问题,虽然,云,厂商,一般,都,提供,了,监控,和,日志,工具,但是,功能,可能,不,够,强大,或者,不,够,灵活,需要,自己,接入,第三方,的,监控,和,APM,工具,增加,复杂度。

三、容器安全的挑战

再,说说,容器,安全,的,挑战,容器,虽然,已经,很,成熟,了,但是,容器,安全,是,一个,很,重要,也,很,复杂,的,问题,需要,专门,关注,和,处理。

1. 镜像安全

第一个,挑战,是,镜像,安全,容器,镜像,是,容器,的,基础,镜像,里,可能,包含,漏洞,恶意,代码,等等,安全,问题,如果,用,了,有,问题,的,镜像,部署,容器,就,会,带来,安全,风险,所以,镜像,安全,是,容器,安全,的,第一道,防线。

镜像,安全,的,问题,主要,有,几个,比如,基础,镜像,有,漏洞,比如,用,的,操作系统,基础,镜像,有,已知,的,CVE,漏洞,没有,及时,修复,比如,应用,依赖,有,漏洞,比如,用,的,开源,库,有,漏洞,没有,及时,更新,比如,镜像,里,包含,敏感,信息,比如,密码,密钥,证书,等等,被,人,获取,到,镜像,就,能,拿到,敏感,信息,比如,恶意,镜像,比如,从,不可信,的,来源,拉取,镜像,可能,包含,恶意,代码,挖矿,病毒,后门,等等,带来,安全,风险。

解决,镜像,安全,的,方法,有,几个,比如,用,可信,的,基础,镜像,从,官方,或者,可信,的,仓库,拉取,镜像,不要,从,不可信,的,来源,拉取,比如,定期,扫描,镜像,漏洞,用,镜像,漏洞,扫描,工具,比如,Trivy,Clair,Aqua,等等,定期,扫描,镜像,里,的,漏洞,及时,修复,比如,最小化,镜像,用,精简,的,基础,镜像,比如,Alpine,Distroless,等等,减少,镜像,里,的,组件,减少,攻击面,也,减少,漏洞,比如,不,在,镜像,里,包含,敏感,信息,用,环境变量,或者,Secret,管理,工具,注入,敏感,信息,不要,写,在,镜像,里,比如,对,镜像,签名,验证,镜像,的,完整性,和,来源,防止,镜像,被,篡改,等等,都,能,提升,镜像,安全。

2. 容器运行时安全

第二个,挑战,是,容器,运行时,安全,容器,运行,的,时候,也,有,很多,安全,风险,比如,容器,逃逸,容器,里,的,进程,突破,容器,的,隔离,访问,到,宿主,机,的,资源,这,是,很,严重,的,安全,问题,比如,容器,里,的,恶意,进程,挖矿,攻击,其他,系统,等等,比如,容器,权限,过大,容器,里,的,进程,有,太高,的,权限,能,访问,不,该,访问,的,资源,带来,安全,风险。

容器,运行时,安全,的,问题,主要,有,几个,比如,容器,以,root,用户,运行,容器,里,的,进程,是,root,权限,如果,被,攻破,就能,获得,root,权限,危害,很大,比如,容器,有,特权,模式,privileged,容器,能,访问,宿主,机,的,所有,设备,和,资源,几乎,等于,宿主,机,的,root,权限,非常,危险,比如,容器,挂载,了,宿主,机,的,敏感,目录,比如,/,/root,/var/run/docker.sock,等等,容器,里,的,进程,能,访问,和,修改,宿主,机,的,文件,带来,安全,风险,比如,容器,的,资源,没有,限制,容器,能,占用,宿主,机,的,所有,CPU,内存,等等,资源,可能,导致,拒绝服务,攻击,影响,其他,容器,和,宿主,机。

解决,容器,运行时,安全,的,方法,有,几个,比如,以,非root,用户,运行,容器,在,Dockerfile,里,指定,USER,用,普通,用户,运行,进程,减少,被,攻破,后,的,危害,比如,不,用,特权,模式,除非,绝对,必要,否则,不要,用,privileged,模式,比如,不,挂载,宿主,机,的,敏感,目录,尤其是,/var/run/docker.sock,这个,非常,危险,挂载,了,这个,就,等于,给,了,容器,宿主,机,的,root,权限,比如,限制,容器,的,资源,用,Kubernetes,的,resources,配置,限制,容器,的,CPU,内存,等等,资源,防止,容器,占用,太多,资源,影响,其他,容器,比如,用,容器,运行时,安全,工具,比如,Falco,能,实时,监控,容器,的,行为,检测,异常,行为,比如,容器,逃逸,异常,系统调用,等等,及时,告警,和,阻断,比如,用,Seccomp,AppArmor,SELinux,等等,安全,机制,限制,容器,的,系统调用,和,访问,权限,减少,攻击面,等等,都,能,提升,容器,运行时,安全。

3. Kubernetes集群安全

第三个,挑战,是,Kubernetes,集群,安全,如果,用,Kubernetes,编排,容器,那么,Kubernetes,集群,本身,的,安全,也,很,重要,Kubernetes,集群,组件,多,配置,复杂,很,容易,出现,安全,配置,问题,带来,安全,风险。

Kubernetes,集群,安全,的,问题,主要,有,几个,比如,API Server,暴露,在,公网,而且,没有,认证,和,授权,任何人,都,能,访问,API Server,操作,集群,非常,危险,比如,RBAC,权限,配置,过,大,给,服务,账号,或者,用户,分配,了,太,大,的,权限,比如,cluster-admin,被,攻破,就,能,控制,整个,集群,比如,Secret,管理,不,当,Secret,没有,加密,或者,权限,控制,不,严,敏感,信息,泄露,比如,etcd,没有,加密,或者,暴露,在,公网,etcd,里,存,了,集群,所有,的,数据,包括,Secret,被,攻破,就,能,拿到,所有,数据,比如,网络,策略,没有,配置,容器,之间,可以,随便,访问,一个,容器,被,攻破,就,能,攻击,其他,容器,等等。

解决,Kubernetes,集群,安全,的,方法,有,几个,比如, securing API Server,不,把,API Server,暴露,在,公网,用,防火墙,或者,VPN,限制,访问,开启,认证,和,授权,用,TLS,加密,通信,比如,配置,RBAC,权限,最小,权限,原则,只,给,服务,账号,和,用户,分配,必要,的,权限,不要,给,太,大,的,权限,比如,加密,Secret,用,Kubernetes,的,静态,加密,或者,外部,的,Secret,管理,工具,比如,HashiCorp Vault,管理,Secret,比如, securing etcd,不,把,etcd,暴露,在,公网,开启,TLS,加密,和,认证,开启,静态,加密,等等,比如,配置,网络,策略,NetworkPolicy,限制,容器,之间,的,访问,只,允许,必要,的,访问,减少,攻击面,比如,定期,扫描,集群,配置,用,Kubernetes,安全,扫描,工具,比如,kube-bench,kube-hunter,等等,定期,扫描,集群,的,安全,配置,发现,问题,及时,修复,比如,用,Pod Security Policy,或者,Pod Security Standards,限制,Pod,的,安全,配置,比如,不,允许,特权,容器,不,允许,以,root,运行,等等,都,能,提升,Kubernetes,集群,安全。

4. 供应链安全

第四个,挑战,是,供应链,安全,容器,的,供应链,比较,长,从,代码,到,镜像,到,部署,涉及,很多,环节,和,工具,每个,环节,都,可能,有,安全,风险,比如,代码,仓库,被,攻破,恶意,代码,被,提交,比如,CI/CD,工具,被,攻破,构建,过程,被,篡改,比如,镜像,仓库,被,攻破,镜像,被,篡改,等等,供应链,安全,是,这,几年,很,受,关注,的,安全,问题,比如,SolarWinds,攻击,就是,典型,的,供应链,攻击,影响,很大。

解决,供应链,安全,的,方法,有,几个,比如,保护,代码,仓库,开启,双因素,认证,权限,控制,代码,审查,等等,防止,恶意,代码,被,提交,比如,保护,CI/CD,工具,最小,权限,定期,更新,审计,日志,等等,防止,CI/CD,被,攻破,比如,镜像,签名,和,验证,用,镜像,签名,工具,比如,Cosign,对,镜像,签名,部署,的,时候,验证,镜像,签名,确保,镜像,没有,被,篡改,比如,软件,物料,清单,SBOM,记录,镜像,里,包含,的,所有,软件,组件,和,版本,出,问题,的,时候,能,快速,定位,影响,范围,比如,最小,权限,给,CI/CD,和,部署,工具,只,分配,必要,的,权限,减少,被,攻破,后,的,危害,等等,都,能,提升,供应链,安全。

四、Serverless和容器的对比

介绍,完,了,各自,的,挑战,现在,来,对比,一下,Serverless,和,容器,的,差异,从,各个,维度,对比,帮,大家,更,清楚,地,了解。

维度Serverless容器
运维成本低,免运维,云厂商管理高,需要自己管理集群和服务器
扩展性自动扩展,按需扩展需要自己配置HPA等,手动或自动扩展
成本按用付费,不用不花钱,低流量成本低常驻运行,不管有没有流量都要花钱,低流量成本高
冷启动有冷启动延迟没有冷启动,常驻运行
运行时间限制有,一般最多15分钟没有,可长时间运行
有状态支持差,函数无状态,状态要存外部存储好,可运行有状态应用
本地调试困难,本地难模拟云环境容易,本地可运行容器,和生产一致
厂商锁定严重,各云厂商不兼容轻,Docker和K8s是标准,可跨云迁移
安全云厂商负责底层安全,开发者责任少需要自己负责容器安全,责任大
性能有冷启动,运行时性能一般性能稳定,接近原生
适用场景事件驱动,API,短任务,低流量应用长时运行,高并发,有状态,复杂应用

从,这个,对比,可以,看,出,Serverless,和,容器,各,有,优势,和,劣势,没有,绝对,的,谁,好,谁,坏,只有,适,不,适合,的,场景。

Serverless,的,核心,优势,是,免运维,自动,扩展,按用付费,成本低,适合,不想,管,运维,流量,波动,大,低流量,的,场景,但是,有,冷启动,运行时间限制,厂商锁定,等,问题,不,适合,对,延迟,敏感,长时,运行,有状态,的,场景。

容器,的,核心,优势,是,灵活,可控,性能,稳定,没有,冷启动,和,运行时间限制,适合,复杂,长时,运行,高并发,有状态,的,场景,但是,需要,自己,管理,集群,和,安全,运维,成本,高,低流量,成本,也,高。

五、到底该选哪个

最后,说说,大家,最,关心,的,问题,到底,该,选,哪个,其实,这个,问题,没有,标准答案,要,根据,团队,的,实际,情况,和,应用,的,场景,来,选,下面,给,一些,建议。

适合选Serverless的场景:

  1. 小团队,没有专门运维人员:如果,团队,小,没有,专门,的,运维,人员,不想,管,服务器,和,集群,的,运维,那么,Serverless,是,很,好,的,选择,能,大大,降低,运维,成本,让,团队,专注,于,业务,逻辑。
  1. 流量波动大,低流量应用:如果,应用,的,流量,波动,很,大,比如,平时,流量,很,低,偶尔,有,高峰,或者,整体,流量,不,高,那么,Serverless,按用付费,的,模式,能,大大,降低,成本,因为,不用,的,时候,不,花钱,而,容器,不管,有没有,流量,都,要,花钱,低流量,成本,高。
  1. 事件驱动,短任务场景:如果,应用,是,事件,驱动,的,比如,文件,上传,触发,处理,消息,触发,处理,定时,任务,等等,或者,是,短时间,运行,的,任务,那么,Serverless,很,适合,因为,函数,就是,为,事件,驱动,和,短任务,设计,的。
  1. API后端,微服务:如果,是,API,后端,或者,微服务,每个,接口,或者,服务,比较,小,比较,独立,那么,Serverless,也,很,适合,能,自动,扩展,按用付费,很,方便。
  1. 初创公司,快速验证想法:如果,是,初创,公司,需要,快速,验证,想法,不想,在,基础设施,上,花,太多,时间,和,钱,那么,Serverless,是,很,好,的,选择,能,快速,上线,成本,低,等,业务,做,起来,了,再,考虑,迁移,到,容器,或者,其他,架构。

适合选容器的场景:

  1. 中大型团队,有专门运维人员:如果,团队,中大型,有,专门,的,运维,人员,能,管理,Kubernetes,集群,那么,容器,是,很,好,的,选择,更,灵活,更,可控,能,满足,各种,复杂,的,需求。
  1. 高并发,对延迟敏感的应用:如果,应用,高并发,对,延迟,特别,敏感,那么,容器,更,合适,因为,容器,没有,冷启动,性能,稳定,而,Serverless,有,冷启动,延迟,可能,影响,用户,体验。
  1. 长时运行,有状态应用:如果,应用,需要,长时,运行,比如,视频,转码,大数据,处理,等等,或者,是,有状态,的,应用,比如,数据库,消息,队列,缓存,等等,那么,容器,更,合适,因为,Serverless,有,运行时间限制,而且,不,适合,有状态,应用。
  1. 复杂应用,需要高度定制:如果,应用,比较,复杂,需要,高度,定制,运行时,环境,网络,配置,等等,那么,容器,更,合适,因为,容器,更,灵活,更,可控,能,满足,各种,定制,需求,而,Serverless,受,云,厂商,的,限制,比较,多,定制,性,差。
  1. 避免厂商锁定,需要跨云迁移:如果,不想,被,厂商,锁定,需要,跨,云,迁移,或者,混合云,部署,那么,容器,更,合适,因为,Docker,和,Kubernetes,是,标准,能,跨,云,迁移,而,Serverless,各,云,厂商,不,兼容,厂商,锁定,严重。

混合使用也是好选择

其实,很多,时候,不,需要,二选一,可以,混合,使用,把,Serverless,和,容器,结合,起来,各自,发挥,优势,比如,核心,的,高并发,长时,运行,的,服务,用,容器,部署,非核心,的,事件,驱动,的,短任务,用,Serverless,这样,既,能,保证,核心,服务,的,性能,和,稳定,又,能,降低,非核心,服务,的,成本,和,运维,负担,是,很,好,的,架构。

比如,我们,团队,就是,混合,使用,的,核心,的,业务,服务,用,Kubernetes,容器,部署,保证,性能,和,稳定,一些,非核心,的,功能,比如,图片,处理,消息,通知,定时,任务,等等,用,Serverless,函数,部署,降低,成本,和,运维,负担,效果,很,好,既,保证,了,核心,业务,的,稳定,又,降低,了,整体,的,成本,和,运维,负担。

所以,大家,不,需要,纠结,必须,选,哪个,可以,根据,实际,情况,混合,使用,各自,发挥,优势,是,最,好,的,选择。

六、写在最后

Serverless,和,容器,都是,很,好,的,云原生,技术,各,有,优势,和,劣势,没有,绝对,的,谁,好,谁,坏,只有,适,不,适合,的,场景,大家,在,做,技术,选型,的,时候,要,根据,团队,的,实际,情况,和,应用,的,场景,来,选,不要,盲目,追新,也,不要,一概而论,适合,自己,的,才,是,最,好,的。

而且,技术,是,不断,发展,的,Serverless,和,容器,也,在,不断,进化,互相,融合,比如,现在,有,很多,工具,能,让,容器,也,能,按用付费,自动,扩展,也,有,很多,工具,能,让,Serverless,也,能,运行,容器,减少,厂商,锁定,未来,两者,的,边界,会,越来越,模糊,可能,会,融合,成,一个,统一,的,平台,所以,大家,不用,太,纠结,选,哪个,保持,学习,的,心态,关注,技术,的,发展,根据,实际,情况,选择,就,行。

最后,希望,这篇,文章,能,给,正在,做,技术,选型,的,朋友,一些,参考,也,欢迎,大家,在,评论,区,分享,你们,用,Serverless,和,容器,的,经验,和,心得,一起,交流,一起,进步。

愿,我们,都,能,选,到,适合,自己,的,技术,架构,做好,产品,服务,好,用户。