而在用好云的阶段,云的使命就是要消除这种复杂度,带来大规模复杂软件开发质的突破,助力企业打破技术鸿沟。
每一个 Serverless 服务都是厂商领域能力的输出,通过服务 API 透出功能,承诺可靠性、弹性、性能等能力指标,因此他们是高质量的应用构建块(building blocks)。
例如阿里云对象存储(OSS)服务,承载着 EB 级的海量数据,承诺11个9的数据可靠性,99.95%的可用性,以及多样化的数据分级存储和处理能力。
阿里云消息队列 RocketMQ历经双十一万亿级消息洪峰的锤炼,承诺10个9的数据可靠性,99.95%的可用性。这些云服务和企业基于开源软件自建的系统相比,在弹性、可靠性等方面有明显的优势。
不只是云厂商,大量的开源商业产品也采用了 Serverless 模式,包括 Confluent Cloud、MongoDB Atlas、Snowflake、Databricks 等。
随着厂商在存储、计算、中间件、大数据等领域推出越来越多的 Serverless 服务,并且这些服务通过事件驱动等方式紧密集成,云逐渐变成了应用构建和运行的超级平台,应用的研发模式也升级为组装式研发。
Serverless 让云成为应用构建的最佳平台
随着阿里云提供越来越全面的Serverless产品以后,很多云产品都变成模块化、API化、服务化,它可以进行组装,通过拖拉拽的方式就能够构建应用。
在Serverless架构下,研发方式升级为组装式研发,可以做到流程编排、事件驱动,甚至可以做成可视化,这就彻底颠覆了原有的软件研发方式,大幅提升研发效率,灵活应对业务挑战。根据权威机构调研统计,组装式研发相比传统模式,可为研发提效 50%以上。
从新兴的互联网创业公司,到传统企业构建大型软件,都可以使用Serverless架构和组装式研发。
以高德为例,高德的业务投放平台基于用户信息、画像信息、以及地理位置信息,在高德地图主图、导航行前行后等页面,以卡片、气泡等相关各种方式,透出了下游业务,并精准推荐给用户。投放业务和用户生活场景紧密相关,功能多变;推荐的下游业务品类快速增长,投放的业务策略多变;而且整个业务和用户出行紧密相关,有明显的峰谷属性。
随着业务的增长,投放平台原有的架构面临一些明显的痛点:
- 重企业端。卡片处理、导航规划、页面展示等逻辑都放在 Web 或者移动设备上,导致企业端发版缓慢、代码臃肿。
- 业务功能紧耦合,跟不上业务迭代要求。投放策略多变,每次发布影响面大。
- 负载有明显的峰谷,常驻实例,资源利用率低。
Serverless 架构能很好地解决上述痛点。首先为企业端瘦身,将端上的逻辑大量的移到 BFF 层(Backends for frontend)。
由于 Serverless 计算零运维,只需要开发业务逻辑,完全由企业端人员发布,避免了团队协作问题。借助平台内置的应用平滑发布的能力,企业端的人员可以快速迭代,安心发布。
投放策略等后端服务也解耦为函数的形式,包括规则过滤函数、疲劳提醒函数、内容组装函数等等。这些函数作为独立的后端服务开发迭代,每次发布影响面不大,控制了爆炸半径。
通过仔细梳理热点逻辑以及上下游依赖,实现了全链路弹性以及接口级流控能力。弹性伸缩不但快速,而且安全,资源用量和负载峰谷匹配,效率高。
目前基于 Serverless 架构的高德业务投放平台已经承载了 100% 的生产流量,业务规模达到百万 QPS,功能交付从原来的数天降低到数小时,整体成本降低了 38%。
Serverless 奇点已来
云计算的探索者认为,云计算的下一个十年默认的计算范式就是Serverless 。
2021年DataDog发布Serverless研究报告,数据表明,从云原生初创公司到大型企业都在关注Serverless,Serverless生态已经超越了FaaS,包含数十种服务,可以帮助开发人员构建更快、更动态的应用程序。
从2012年提出 Serverless 到今年2022年刚好十年,Serverless已经成为今天IT开发的主流,也是云服务器商提供能力的主流。
我们相信,Serverless 奇点己来,所谓奇点,是由平稳发展转向高速发展的转折点,预示着行业落地将开始全面爆发。而我们也将成为见证这个变化的一代技术人。