Knative实战:基于Kubernetes的无服务器架构实践

李志伟 游杨
前言 Serverless一直是开发者的美好愿望,也是软件开发目标最终回归本质的选择。随着云原生平台逐渐成熟并成为主流解决方案,Serverless计算平台已经有了长足的进步。2020年,行业中的各大Serverless计算平台变得更加通用。例如,通过预留资源完全消除冷启动对延时的影响,使得延时敏感的在线应用也能够使用Serverless方式构建。同时,Serverless生态不断发展,在应用构建、安全、监控报警等领域涌现出了很多开源项目和创业公司,工具链越来越成熟。用户对Serverless的接受度不断提高,传统企业也开始采用Serverless技术。Serverless正在如下几方面持续演进。 1)Serverless的使用场景从偏离线业务进一步扩展到在线业务。以FaaS为代表的Serverless技术一开始都是从对响应时间不敏感、事件驱动的偏离线业务入手的。现在,我们已经看到,包括AWS Lambda Provisioned Capacity和Azure Functions Premium plan在内的产品都是让用户付出一点额外的成本来换取更短的响应时间。这对于在线业务来说,无疑是更适合的。 2)Serverless不仅赋予了应用弹性计算的能力,也推动了基础设施和后端服务的无服务器化。业务代码托管给Serverless平台之后,即可实现自动扩缩容、按请求计费。但是,如果基础设施和相关服务不具备实时扩缩容能力,那么业务整体就不是弹性的。我们已经看到AWS围绕Lambda对VPC网络、数据库连接池等资源做了大量实时弹性优化,相信其他厂商也会跟进,进而使行业整体加速基础设施和各类云服务的无服务器化。 3)以Knative为代表的开源解决方案受到越来越多的关注。尽管各个云厂商都在大力推广自己的Serverless产品,但是开发者普遍还是会担心被厂商绑定,因此具备一定规模的…