10年前, UC 伯克利就曾预测云计算将会得到蓬勃发展,客户无需自建机房,按需为云端的资源进行付费,就像租赁模式,降低了企业在IT 方面的一次性投入,同时,借助云端丰富的产品支持,加快了业务的上线和迭代速度,加码企业核心竞争力,值得称赞的是,基于云来构建的业务,其稳定性和安全性获得了更专业的保障。
这就是常说的云计算带来的技术红利:更经济、更高效、更开放。因此,在各类市场分析报告中都能看到,云正在逐步替代传统 IDC 市场,呈现此消彼长的发展态势。
我们总是对未来充满好奇,对新旧事物的交替感到兴奋。
2015年 AWS 推出了 Lambda 服务,Serverless 这个词首次出现在公众面前,随后,2017 年阿里云推出了函数计算 FC,2019年推出了 Serverless 应用引擎 SAE 和 Serverless 容器服务 ASK。伯克利再次预测 Serverless 将取代 Serverful 计算,由此,Serverless 引发业内的广泛关注。
Serverless 将云计算的红利 - 更经济、更高效、更开放,发挥到了极致,通过事件触发的机制,将闲置资源降低到0,就像一盏信号灯,人出现的时候才会消耗电能,没人的时候就会自动熄灭,做到了真正意义上的弹性;同时,无需关心 IaaS 层的运维,将 Server(服务器)的运维工作 less(屏蔽)掉了。
那么有人会问,技术总存在两面性,Serverless 听上去那么完美,她是否存在应用场景上的限制呢?蚂蚁集团资深技术专家赵鹏在云栖大会的一场圆桌讨论上,把这个问题抛给了 Forrester 首席分析师 Charlie 和 ZStack 的创始人张鑫。
Charlie:"Forrester 对 Serverless 领域有着比较长的深入研究, Serverless 的应用场景总结来看,有3大类。一是超规模,金融、教育、医疗、制造等企业,基于云平台来构建业务时,一些业务工作负载高的,适合通过 Serverless 技术来支撑;二是超动态,消费者通过数字的触点或者物理的触点,来和企业提供的产品和服务进行交互,他们的互动方式和互动频次会考验平台的动态支撑能力,适合使用 Serverless 技术;三是超高效支持,即开发者能够以更高效的方式来实现超规模、超动态的业务需求。"
张鑫:“要去理解 Serverless 的应用场景,我们需要有一个共识,即 Serverless 并不是一个完整的技术栈,不是解决所有问题的银子弹。Serverless 是云原生技术体系的重要补充,是一种粘合剂,Serverless 是事件驱动的架构,通过以代码片段形式的事件对资源进行触发,来实现云原生体系中业务的解耦和降低云的使用成本。”
除了应用场景上有所限制外,不同于拥有统一事实标准和丰富生态的容器技术,Serverless 仍处于早期的技术探索阶段,但被问及 Serverless 是否存在厂商锁定,以及其发展和容器技术有哪些关联时。
Harbor 项目创始人 Henry 认为:
“Serverless 就像一个极简版本的 PaaS,只需要写少量的代码或者业务的核心逻辑,其他都交给平台去提供,就能实现一套业务,无论是代码的运行和服务的调用,Serverless 应用注定是离不开他所依赖的平台,这就意味着针对某个 Serverless 平台编写的代码是无法跑在另一个平台上。当然,通过 CloudEvents 这类用于制作统一事件格式的开源项目,可以提升不同平台之间的服务互操作能力,来促进 Serverless 平台的标准化。
由于容器和 K8s 已经成为云原生应用的主流技术和运行平台,把 Serverless 负载跑在 K8s 上,实现快速启动和弹性伸缩的能力,两者会相辅相成,共同发展。总结来说,Serverless 在容器技术发展的过程中占有越来越重要的地位,而容器技术在其发展过程中也会越来越考虑 Serverless 的需求。”
阿里云 Serverless 负责人杨皓然对“如何看待 Serverless 的厂商锁定问题”时,给出了自己的答案:“我们认为 Serverless 应该是无厂商锁定的,阿里云函数计算深度融合开源容器生态,发挥双方各自的优势,同时阿里云 EventBridge 支持 CloudEvents,统一云的事件标准,同时我们也将推出更开放的开发者工具链,帮助用户更低成本的使用各类平台的函数服务,并希望以社区的方式推动 Serverless 在国内的落地。”
显然,只有开源社区、厂家共同推动的 Serverless 生态的发展,才能让技术变得更经济、更高效的同时,更加开放。
技术的商用总要先经历自用,是为了保证商用技术的成熟和稳定,走在技术前沿的科技公司总会率先去实践,并将实践收获积极的分享出来。
十年前,阿里将微服务技术运用在电商场景下,并不断打磨和迭代,后来有了Apache Dubbo / Apache RocketMQ / Nacos / Sentinel / Seata / Spring Cloud Alibaba / ChaosBlade 等微服务框架/组件的开源,极大的丰富了Java 生态,加速了微服务的落地。如今,阿里整个经济体都在实践 Serverless,包括淘宝、天猫、支付宝、钉钉、飞猪、闲鱼、语雀等,将 Serverless 的应用场景扩展到前端全栈、小程序、微服务、新零售、游戏互娱等领域。
闲鱼就是其中的积极探索者。
闲鱼的架构负责人王树彬分享道:“闲鱼从业务特点上看,既有点像小淘宝,有着相似的电商属性,同时闲鱼又是独立 APP,有自己的业务流量闭环,也有自己的用户特点。所以,技术架构上,一方面因为相似的电商属性,闲鱼绝大部分基础能力是依托在阿里云和淘宝的电商业务系统之上的,在上图中最下面这层。这些基础能力,是支撑闲鱼快速迭代和发展的基石。而另一方面,因为闲鱼的业务独特性,我们需要有快速的创新的研发能力。所以,上面的业务层是我们快速研发架构的关键。”
在端上依托 Flutter 和 H5 跨端框架释放出生产力后,我们发现很多场景下,可以让端的同学向服务端侧走一走,基于 Serverless 直接在服务端侧开发 BFF 层,形成云端一体化研发模式。这样可以极大减少端和云的协同,因为协同是影响研发效率的最大因素之一。
什么样的场景合适呢?第一种场景是重交互的页面,例如我们的下单页面,在用户变化下单地址、交易方式、优惠方式时,价格都需要重新计算,存在很重的云、端逻辑协同成本,使用一体化使交互逻辑、数据逻辑归一。第二种场景是类似活动、搭建类的页面,这类页面上线快,服务端的逻辑轻,以数据拼装为主,这类业务通常可以由端侧同学主导,也很适合一体化编程。这两类是目前最适用的场景。随着端的同学对函数计算能力的提升,还会有更多轻量场景适用。
除了一体化的服务外,还有更大一部分胶水层服务,是由服务端同学直接提供的,这些服务在传统应用上开发的,传统大应用有着非常严重的臃肿、冲突、耦合的问题。我们用 Serverless 架构去拆分传统应用,可以让开发者极大的聚焦业务,做到极速交付,很好的提升这部分研发效率。
下面这段视频能够帮助我们进一步认识 Serverless 所带来的极致弹性和快速交付能力。
正在探索 Serverless 技术的除了闲鱼的王树彬,还有石墨文档的 Serverless 技术负责人万明、Timing 微服务架构负责人郑超和联华华商信息中心部门主任王建中。
万明:“我们将 Serverless 技术应用于表格的改动和合并,以及表格渲染结果的计算,这两类非常消耗 CPU 和内存的场景中,提高开发效率,降低计算成本。”
郑超:“我们没有专门的运维团队,通过 SAE 的秒级自动弹性,我们可以轻松的动态扩容应对峰值大考,峰谷时按需自动缩容,不仅保障了系统的 SLA,在成本上,比以往 ECS 保有方式节省了35%左右的硬件成本。”
王建中:“我们将线上核心业务改造为全 Serverless 架构的中台模式,采用『函数计算 + API 网关 + OTS』作为计算网络存储核心,弹性支撑日常和大促峰谷所需资源,项目周期从 6 个月减少为 3 个月,资源升级成本下降约100%。”
石墨文档、Timing、联华华商等企业客户之所以能快速借助 Serverless 技术应用在业务上,得益于阿里云丰富的 Serverless 产品和扎实的底层技术。
阿里云智能研究员丁宇在云栖大会上分享道:“阿里云提供的丰富的 Serverless 产品,包括面向函数的 Function Compute、面向应用的 SAE、面向容器编排的 Serverless K8s、以及面向容器实例的 ECI,构成当前所有云厂商中最完整的 Serverless 产品矩阵。而这些 Serverless 产品的背后,是阿里云基础设施的四大核心技术——神龙架构、沙箱容器、盘古存储、洛神网络,它们为 Serverless 提供了稳固的基石与强大的核心竞争力。
完善的 Serverless 产品还需要配备完备的后端云服务和丰富的开发者工具,例如我们这次新发布的事件总线 Event Bridge 可以轻松连接云服务、云应用和 SaaS 应用,进一步加速阿里云 Serverless 产品端到端的集成,而 Serverless Workflow 通过可视化的函数编排模型,即可轻松构建媒体处理流程、机器学习流水线、自动化运维流程等复杂的工作。
此外,全新推出的 Serverless-tools 与 Serverless 应用中心,用于打造更加开放、标准、无厂商绑定的 Serverless 社区。与此同时,容器镜像与性能实例的加持更是融合了容器生态,打破函数最小运行单位,让开发者使用起来更简单。开发者一步上云、一键 Severless 或将成为现实。”
回到文章开始部分的那张图,软件技术的发展,经历了物理机、虚拟机、云计算、容器技术的阶段,真正解放双手的 Serverless 正在向我们走来,当被问到下一个十年的 Serverless 将会是什么趋势时,阿里云资深技术专家司徒放给出了这样的一个答案:
“下一个十年的 Serverless 将会是标准开放、无厂商锁定的 Serverless,和云原生生态紧密结合的 Serverless,集成云边端应用更简单的 Serverless,能用更低成本支撑更多复杂业务的 Serverless。”
本文为阿里云原创内容,未经允许不得转载。