领先一步,7大技术创新突破,阿里云在Serverless领域解决了所有这些问题环境部署能力,GB级镜像启动时间优化到秒级,VPC网络连接建立优化到200ms,Serverless应用engineSAE支持微服务框架无缝迁移,无需容器改造,业界首创混合弹性策略。这些创新和突破,解决了Serverless领域的技术难题,彻底攻克了影响Serverless在企业核心生产场景进一步落地的绊脚石。“虽然云计算兴起了,但大家的工作还是围绕着服务器。不过,这不会持续太久,云应用正朝着无服务器的方向发展。”这是KenForm在2012年发表的文章《Why The Future of Software and Apps is Serverless》观点关于未来云计算的文章中提出。ServerlessFirst:从云厂商的意见到客户的意见。Serverless与生俱来的灵活性和容错能力很好地契合了企业在线业务灵活性和稳定性的双重需求,成为企业云架构演进的新方向。今天,随着越来越多的大中型企业将传统后端领域对扩展需求灵活的执行单元分离出来,运行在Serverless架构上,以及更加注重研发和交付的初创团队效率整合所有业务Serverless,ServerlessFirst的概念越来越流行,使得越来越多的云工作负载运行在Serverless上。数字的变化代表了该技术的市场成熟度。根据Datadog今年的一份报告,Datadog上一半的AWS客户使用Lambda,80%的AWS容器客户使用Lambda,这些用户比两年前每天调用函数3.5次,运行时间高达900小时/天.放眼国内,根据CNCF今年发布的《2020中国云原生调查报告》,31%的企业在生产中使用Serverless技术,41%的企业在评估和选型,12%的企业计划在未来12个月内使用。10月21日,在云栖大会云原生峰会上,阿里云Serverless发布了一系列技术突破,着力解决行业面临的难点和痛点。随之而来的是各大企业在Serverless上的大规模实践。比如网易云音乐使用serverless技术搭建离线音视频处理平台,南瓜电影7天全serverless。基于此,他们建立了业务监控发布和弹性系统。FromFirsttoFaster,FC的7大技术突破,攻克影响Serverless发展的绊脚石Serverless的本质是通过屏蔽底层计算资源,实现业务层开发的集中和自由。但是越是抽象,底层云厂商的实现就越复杂。函数计算将服务进一步拆分成函数的粒度,必然会给开发、运维、交付等带来新的挑战,比如如何对函数进行端云联调,如何观察优化GB级镜像冷启动?这些在过去在服务粒度上不是问题的东西,却成为了企业核心生产业务大规模落地Serverless的绊脚石。继去年进入Forrester领导者象限后,阿里云函数计算团队不断攻克行业中的这些技术挑战,并在云栖大会上发布了七大技术创新与突破。ServerlessDevs2.0:业界首创桌面,支持端云联调,多环境部署,开源。近一年时间,Serverless开发者平台ServerlessDevs2.0正式发布。与1.0相比,2.0在性能和用户体验上实现了全方位的提升。业界首创桌面客户端ServerlessDesktop,对桌面客户端进行了精细化设计,兼具美观与实用性,具有更强的企业级服务能力。作为业界首个支持主流Serverless服务/框架的云原生全生命周期管理平台,ServerlessDevs致力于为开发者打造Serverless应用开发的一站式服务。ServerlessDevs2.0提出了多模式的调试方案,包括连接线上和线上的下层环境;上层环境本地连接调试端云联调方案、本地直接开发状态调试本地调试方案、云运维状态调试在线调试/远程调试方案等。新版本增加多环境部署能力。ServerlessDevs2.0支持30多种一键部署框架,包括Django、Express、Koa、Egg、Flask、Zblog、Wordpress等。业界首个实例级可观察调试实例,是功能资源的最小可调度原子单元,类似于容器的Pod。Serverless对异构基础资源进行了高度抽象,因此“黑盒问题”是Serverless大规模普及的核心痛点。业界同类产品并没有公开“实例”的概念,也从未在可观察函数中公开CPU、内存等指标,但可观察性是开发者的眼睛。没有可观察性,谈何高可用?函数计算发布实例级可观测能力,实时监控函数实例并收集性能数据,并可视化展示,为开发者提供函数实例端到端的监控和故障处理路径。通过实例级指标,可以查看CPU和内存使用率、实例网络情况、实例内请求数等核心指标信息,让“黑匣子”不黑。同时,函数计算将通过开放部分实例的登录权限,实现既观察又调试的功能。业界首创定数、定时、水位自动伸缩的实例预留策略函数计算冷启动受多种因素影响:代码和镜像大小、启动容器、语言运行时初始化、进程初始化、执行逻辑等,这取决于用户和云制造商的双向优化。云厂商会自动为每个功能分配最合适的实例数,并在平台侧进行冷启动优化。但部分在线服务对时延非常敏感,云厂商无法代用户进行更深层次的服务优化,如精简代码或依赖、选择编程语言、流程初始化、算法优化等。业界同类产品普遍采用预留固定数量实例的策略,即允许用户配置N个并发值。除非手动调整,否则在分配N个实例后,它们将不会向上或向下扩展。该方案仅解决了部分业务高峰期的冷启动延迟问题,但大大增加了运维成本和资源成本,对红包促销等峰谷不规律的业务不友好。因此,函数计算率先将部分实例资源的调度权限授予用户,允许用户通过定数、定时扩容、按水位扩容、混合等多维实例预留策略预留适量的函数实例缩放等,分别满足业务需求。曲线相对平稳(如AI/ML场景),峰谷时间段清晰(如游戏互动娱乐、在线教育、新零售等),不可预测的突发流量(如电商)推广、广告等)、业务混合(如Web后台、数据处理等)等不同场景的需求,从而减少冷启动对延迟敏感业务的影响,真正达到最终目的灵活性和性能。业界率先推出GPU实例函数计算,提供弹性实例和性能实例。弹性实例的规格范围从128MB到3GB。隔离粒度在整个云生态中是最小的,真正做到普适场景下资源利用率100%。;性能实例规格范围包括4GB、8GB、16GB、32GB。资源上限较高,主要适用于计算密集型场景,如音视频处理、AI建模、企业级Java应用等。随着硬件加速在专用领域的蓬勃发展,各GPU厂商纷纷推出专用于视频编解码的ASIC。例如,英伟达集成了开普勒架构的专用视频编码电路,集成了费米架构的专用视频解码电路。FunctionCompute正式推出了基于Turning架构的GPU实例,使Serverless开发者可以将视频编解码工作负载下载到GPU硬件加速,从而大大加快视频制作和视频转码的效率。所谓“无服务器”,并不是说软件应用程序可以在没有服务器的情况下运行,而是用户不需要关心其运行所涉及的底层服务器的状态和资源(如CPU、内存等)软件应用程序。、磁盘和网络)和数量。软件应用正常运行所需的计算资源由云计算厂商动态提供,但用户实际上仍然关心云厂商的资源交付能力,以及如何应对突发流量场景下资源不足导致的访问波动。函数计算依托于阿里云强大的云基础设施服务能力。通过神龙裸机资源池和ECS资源池的互为备份,在业务高峰期可以实现每分钟最大2w个实例的交付,进一步提升了函数计算对客户核心业务的交付能力。VPC网络连接建立优化:从10s到200ms当用户在RDS/NAS等功能中需要访问用户VPC中的资源时,需要开启VPC网络。业界的FaaS产品一般采用动态挂载ENI的方式实现VPC连接,即在VPC中创建一个ENI,挂载到VPC中执行功能的机器上。该方案可以让用户轻松链接后端云服务,但ENI挂载速度一般需要10秒以上,在延迟敏感的业务场景下带来巨大的性能开销。FunctionCompute通过将VPC网关做成一个服务,将计算与网络解耦,计算节点的扩展不再受限于能否挂载弹性网卡。在该方案中,网关服务负责ENI挂载、网关节点的高可用和自动伸缩,而函数计算则主要负责计算节点的调度。最后,当VPC网络建立后,函数冷启动时间减少到200毫秒。GB级镜像上线:从分钟级优化到秒级FunctionCompute于2020年8月率先发布容器镜像功能部署方式,2020年12月发布AWSLambdaRe-Invent,2021年6月国内竞争对手发布重磅特性FaaS对容器的支持。冷启动一直是FaaS的痛点。引入比代码压缩包大几十倍的容器镜像后,加剧了冷启动过程带来的延迟。FunctionCompute创新发明了ServerlessCaching。根据不同存储服务的特点,构建数据驱动、智能高效的缓存体系,实现软硬件协同优化,进一步提升CustomContainer体验。至此,函数计算已经将图像加速优化到了一个很高的水平。我们从函数计算的公开用例(https://github.com/awesome-fc)中选取了4张典型图片,适配国内外几家大型云厂商进行横向对比,间隔为3调用每小时上图并重复几次。实验证明,在千兆级图像冷启动场景下,函数计算实现了从分钟级到秒级的飞跃。从专用到通用,从复杂到简单,SAE让AllonServerless成为可能。如果说企业核心生产业务大规模落地FaaS的问题需要通过技术突破来解决,那么以SAE为代表的ServerlessPaaS更多的是在产品易用性和场景覆盖方面进行突破。从专用到通用,SAE天然适用于企业核心业务的大规模落地与FaaS形式的Serverless不同,SAE“以应用为中心”,提供面向应用的UI和API,维护服务器的使用而经典的PaaS形态体验,即应用看得见、摸得着,避免了FaaS对应用的改造和相对弱的可观察可调整的体验,可以实现线上应用的零代码改造和平滑迁移。SAE打破了Serverless的实现边界,让Serverless不再是前端全栈和小程序的宠儿。后台微服务、SaaS服务、物联网应用等也可以建立在Serverless之上,自然适合企业大规模落地的核心业务。此外,SAE支持部署PHP、Python等多语言源码包,支持多种运行环境和自定义扩展,真正让Serverless从专用走向通用。从复杂到简单,SAE天然适用于企业应用的快速容器化。传统PaaS一直被诟病使用复杂、迁移困难、扩展麻烦。SAE底层将虚拟化技术转化为容器技术,充分利用容器隔离技术提高启动时间和资源利用率,实现应用的快速容器化,在应用管理层,独创微服务应用的管理范式保留了SpringCloud/Dubbo等,不需要使用庞大复杂的K8s来管理应用。此外,底层计算资源池化后,其天然的Serverless属性使得用户无需单独购买和维护服务器,而是根据CPU和内存资源的多少来配置所需的计算资源。平台先进的微服务治理能力,让容器+Serverless+PaaS合二为一,让技术进步、资源利用优化、高效开发运维体验融为一体。因此,实施新技术更容易、更稳定。可以说,SAE几乎涵盖了应用上云的所有场景。不仅是应用上云的最佳选择,也是AllonServerless的典范。4大变化。Serverless加速了现代企业应用架构的创新。单靠技术领先并不能推动行业发展。Serverless给企业客户和开发者带来的变化构成了市场成熟度的双轮驱动,技术在自我进化,客户在地底反馈。这是任何新技术持续发展的正确姿势。变化一:ServervsCode初创公司全栈工程师:“我的工作不再是围绕着冰冷枯燥的服务器,告别服务器处理时间比我处理时间还长的困境写代码,可以让我把更多的时间花在业务上,用最熟悉的代码来保证应用的稳定运行。”专注于前端方向的全栈工程师的日常可能是这样的:掌握至少一门Node.js或Puppeteer等前端语言,可以编写一些API接口,修改一些后台-结束bug,还需要在服务器的运维上花费大量的精力。公司业务量越大,花在运维上的时间就越多。函数计算降低Nodejs等前端语言的服务器维护门槛。只要会写JS代码,不用学习DevOps相关知识也能维护Node服务。变化二:计算集群vs计算资源池算法领域的Java工程师:“我不再担心算法和复杂度增加导致的服务器规格增加、采购复杂、运维难等问题,而是通过无限资源池、快速冷启动和预留实例,以提高灵活性和自由度。”网易云音乐实现了60+音视频算法,100+业务场景,使用了1000+不同规格的云主机和物理机,虽然采用了很多方式来简化内部业务场景和算法的对接,但越来越多的算法混合存量和增量处理,不同流量的业务场景规模,不同业务场景可能复用同一个算法,导致业务时间越来越少。网易云音乐升级离线音视频处理基于函数计算的平台,应用于听歌、K歌、音乐识别等业务场景,实现业务实现速度提升10倍,大幅降低稀疏算法的计算成本和运维成本。变化3:Loadvs.SchedulingGame主进程:“我不再担心SLB的轮询机制导致无法感知Pod的实际负载。由此造成的负载不均衡,函数计算的调度系统会合理安排每一个请求,保证对战验证场景下的高CPU消耗和高度灵活的处理请求。”对战验证是很多莉莉丝对战游戏必不可少的业务场景,它用于验证玩家客户端上传的战斗是否有作弊,战斗验证一般需要逐帧计算,CPU消耗会很高,通常1队v1的战斗需要n毫秒,而5个teamsv5的battle需要相应的5n毫秒,需要很高的灵活性,另外容器架构下挂载的SLB会因为轮询机制无法感知到Pod的实际负载,导致负载不均,导致死循环和稳定性风险。函数计算的调度系统帮助莉莉丝合理安排每个请求,也贴心地为死循环问题提供了超时杀进程机制。函数计算降低了调度系统对基础设施的复杂度,厂商深度优化后的冷启动延迟大大降低。从调度,到获取计算资源,再到服务启动,基本在1s+左右。变化四:脚本vs.自动化互动娱乐行业运维工程师:不再为传统服务器模式、版本发布缓慢易错、环境一致性难以保证、权限分配繁琐、回滚麻烦等烦恼,SAE的全套服务治理容量提升70%开发运维效率,弹性资源池缩短70%业务端扩容时间。一场火爆之后,南瓜电影日注册用户突破80万,导致流量入口API网关失效,随后所有后端服务面临极大的稳定性挑战,随后开始紧急扩容、购买ECS、上传脚本到服务器,运行脚本,并扩展数据库。整个过程需要4个小时。不过,如此火爆的节目带来自然爆款的情况并不少见,也让南瓜电影加速了技术升级的思考。借助Serverless应用引擎SAE,南瓜电影将在7天内实现全面Serverless,零门槛拥抱K8s,轻松应对爆款电影的突如其来的流量。与传统服务器运维模式相比,开发运维效率提升70%,成本降低40%。扩容效率提高10倍以上。一步之遥,志在千里2009年,伯克利对当时方兴未艾的云计算提出了六大预测,包括按需付费服务的可能性,以及物理硬件利用率的大幅提升。在过去的12年里,这些都已成为事实。2019年,伯克利再次预测,Serverless计算将成为云时代默认的计算范式,取代Serverful(传统云)计算模式。参照云计算12年的发展历程,Serverless进入验证伯克利预测的第三个年头,刚刚超过四分之一。过去3年,从对云未来的美好想象,到云厂商倡导的ServerlessFirst和大规模投入,再到企业用户充分利用Serverless的优势优化现有架构,以及客观上面对Serverless企业大规模落地冲击核心业务的绊脚石,而在今天,通过技术创新和突破来解决行业的共同痛点。这不仅需要勇往直前的勇气和魄力,更需要胸怀大志的使命和担当。
