走进RDS|说说关系型数据库与Serverless

简介:看到如今Serverless在云计算行业喷薄欲出的态势,像极了《星星之火,可以燎原》中的描述:虽然不能预测未来的发展和变化,但对于云计算来说这是个相对确定的方向。本文将和大家说说关系型数据库与Serverless。

作者 | 韦仁忠
来源 | 阿里开发者公众号

关于Serverless

看到如今Serverless在云计算行业喷薄欲出的态势,像极了《星星之火,可以燎原》中的描述:虽然不能预测未来的发展和变化,但对于云计算来说这是个相对确定的方向。

从Google Trends的Serverless关键字的趋势可以看到,对于Serverless的搜素一直居高不下,并且在未来的一段时间内也会保持相当的热度。从2015年开始,以AWS为代表的国外云计算大厂也在不断的布局Serverless相关的产品,AWS Lambda、Aliyun FAAS,数据库领域的Aurora Serverless、RedShift Serverless、Azure SQL Database等。

学术界对Serverless的研究热度也不亚于工业界对商业化方案的追求,文末列出了一些相关文章作为参考。对于云计算往Serverless演进的趋势,学术界也经历过一些质疑,2018年“Serverless Computing: One Step Forward, Two Steps Back”[3] 文章曾经对Serverless的发展给现在IT基础设施带来的冲击表示过担忧,但2019年同一拨人在这个方向上又表现出了支持和乐观的态度。从Serverless领域被引用次数较多的论文上看到,主流科研机构对Serverless的趋势和方向研究上趋于一致,研究重点也慢慢从“why”转变为“how”[6]。

何为Serverless?为什么Severless是个趋势?“Cloud Programming Simplified: A Berkeley View on Serverless Computing”[5] 这篇文章为代表做了一个比较全面的分析和预测。同样是Berkeley在2009年发表的另一篇文章“Above the Clouds: A Berkeley View of Cloud Computing”[7] 预测了云计算作为IAAS基础设施的观点。该篇文章延续了之前的风格,分析了现状和难点,预测了云计算2.0的形态Serverless作为下一代基础设施,也定义了Serverless的主要三个特征:

  • 资源的解耦和服务化:弱化了存储和计算之间的联系。服务的储存和计算被分开部署和收费,存储不再是服务本身的一部分,而是演变成了独立的云服务。这使得计算变得无状态化,更容易调度和扩缩容,同时也降低了数据丢失的风险。
  • 自动弹性伸缩:代码的执行不再需要手动分配资源。不需要为服务的运行指定需要的资源(比如使用几台机器、多大的带宽、多大的磁盘等),只需要提供一份代码,剩下的交由 Serverless 平台去处理就行了。当前阶段的实现平台分配资源时还需要用户方提供一些策略,例如单个实例的规格和最大并发数,单实例的最大 CPU 使用率。理想的情况是通过某些机器学习算法来进行完全自动的自适应分配。
  • 按使用量计费:Serverless按照服务的使用量(调用次数、时长等)计费,而不是像传统的 Serverful 服务那样,按照使用的资源(ECS 实例、VM 的规格等)计费。

值得一提的是[5]这篇文章有众多云计算厂商的背书,包括AWS、Micorsoft、Google、Alibaba等,同时文章也直接以AWS Lambda服务作为样板去分析Serverless的问题。Serverless本身的技术难度,这篇文章罗列了多项内容,这里不做赘述,可以具体读一下文章。

关于Serverless的技术实现[3]给出了一个可行的系统实现方式,当然还是以FAAS为背景。其中提到Serverless关键技术路径包括:

  1. 统一的标准运行环境支持多语言的运行时统一管理
  2. 轻量级/蝇量级安全容器(在[4]中额外提到安全和隔离的重要性)
  3. 冷热容器池设计做极致的多租户复用能力
  4. 高效的函数调度能力

其中,函数计算的实现方式,却与数据库Serverless息息相关。

数据库的Serverless

数据库品类繁多,关系型数据库自1979年E. F. Codd对于关系模型的描述[7]开始,后来者大多只是模仿,而尚未在用户接受度和规模上有超越。

数据库不仅仅是一个“stateful”的应用,而且是一个“state-heavy”的应用。数据库是Serverless最不友好的应用之一,包括云原生基础设施kubernates对于stateful应用的支持,也是等到StatefulSet和operator之后才有一个比较好的解决方案。而在这之前数据库都是作为Serverless对状态做解耦和状态下沉的工具,也是全栈Serverless解决方案中最难攻坚的最后一个堡垒。

对于Serverless的定义,文章给出来一个公式:Serverless = FAAS+ BAAS。将FAAS(Functions as a Service)定义为事件、API、消息驱动的计算层;将BAAS(Backends as a Service )定义为类似数据库、消息队列等后端服务。

“State-heavy applications will remain as BaaS”是目前对于数据库的一个基本认知,但这与数据库本身是否具备一定程度的Serveless能力其实是两回事。前者强调的是在应用向Serverless做架构转型的过程当中,数据库的大量状态存储做不到FAAS这样即开即用的能力,只能作为“+”来对接Serverless生态;后者说的是在某种程度上也能够满足“资源解耦”、“自动弹性”、“按使用量付费”的特点,某种程度上也可以认为是Serverless。

数据库Serverless的难点究竟在哪里?

数据库做Serverless有若干难点[4],总结如下:

  1. Serverless没有内置的持久化存储,需要依赖远端存储,这就会导致在延时上较高;
  2. 客户端是基于连接的方式访问数据库,在客户端往往会维护连接池的方式供应用访问,而函数计算往往具备飘忽不定的网络地址,与数据库传统的IP+User+password鉴权的方式迥异;
  3. 很多高性能的数据库使用共享内存技术,而FAAS本身不具备共享内存的能力,会使得计算和数据库之前的资源动态扩展能力不一致

其中尤其要注意的是第2点,在应用进FAAS之后,当前的数据库访问方式已经不适用于Serverless生态:

  1. 服务器与DB做连接保持,这就意味着访问状态是由客户端和数据库共同维护,而FAAS无法做到连接持续保持的能力;
  2. 服务器通过driver和连接池的方式访问数据库,每次的连接初始化相对较重,FAAS上无法承受如此重的连接初始化工作;
  3. 服务器访问鉴权通过user/password/ip的方式访问数据库,而FAAS多租户场景所有用户共享IP地址池,user/password内置到FAAS当中也暴露了极大的安全风险;

数据库需要一种新的访问方式,直接影响到数据库能否作为Serverless生态当中的一部分,直接影响到当前Serverless应用做全栈Serverless改造。其重要程度甚至大于数据库Serverless(资源解耦、极致弹性、按使用量付费等)本身。

当然数据库本身要做的事情远远不止如此,数据库本身要实现高效的弹升弹降,涉及到更多的管控和内核紧密的联动。

他山之石

行业翘楚AWS在Serverless相关的布局从2015年推出Lambda开始,引领着这个方向的发展。这里更多的关注在数据库方面,结合AWS在Aurora Serverless上的取舍,洞察AWS对于数据库Serverless的理解。

从Aurora Serverless V1发表于2018年,在Serverless的理念上做了大胆的创新,做了几件事情:

  1. 以ACU的方式去统一底层的资源,不再对上层暴露底层具体的机型和代数。1ACU“相当于”2GiB的RAM,统一对底层资源做了标准化和规范化的处理。这与Serverless理念中资源的解耦、以及对底层资源的屏蔽一致;
  2. 支持自动启停,在无负载的情况下支持将计算节点降低至“0”。将Serverless中按资源使用量付费体现到极致,但也带来了另外的问题。自动启停在一般场景下首次拉起需要30s左右,牺牲了部分auto scale的能力;
  3. 数据库弹性过程中内核相关buffer pool等参数随着资源配合的变化而发生变化,这也是数据库这种特殊的应用场景需要做的一些特殊处理;
  4. 2019年推出Data API功能,补全了数据库作为BAAS接入FAAS的能力,解决了前面提到的生态兼容的问题。

2020年发布的Aurora Serverless V2的介绍视频并提供内测申请,而在前不久V2也正式GA。从Aurora Serverless V2的能力来看,在Serverless能力上做了增强和取舍:

  1. 将V1中弹性能力继续提升至秒级,做极致快速的弹性。将V1中跨机升级的能力优化为本地升级的能力,保证业务在弹性过程中不受损。从Aurora Serverless只在3.0.2这一个版本上支持可以看出,内核层针对Serverless场景也做了大量的优化;
  2. 去除了V1中关于自动启停的能力,用户可以手动启停实例;更加关注实例的auto scale能力,最小资源降低至0.5ACU而非0,牺牲了部分按使用量付费的能力,这也是一种取舍;
  3. 将弹性缩容的策略做得更加保守,以保证业务压力情况下对业务的影响尽可能小。

从V1到V2的变化,对比V2和V1的User Case可以看出,Aurora Serverless V2主要解决的是从“开发测试环境”到有限场景下的生产环境的转变,至于底层的实现原理,可以从一丝丝蛛丝马迹中去探究。结合其他云的做法,Serverless的能力目前还是看重这个理念,各个厂商也在以自己的产品形态去向贴近这个理念,至于说一统行业标准的产品化方案,还为时过早,这一领域大有可为。

未来可期

从2009年开始,云的能力不断增强,云的本质是资源的池化,而这些资源不仅仅包含硬件资源,更包含专业的技术人才、以及核心的技术专利标准等。经过了十来年在规模和成本上的激烈竞争,IAAS资源也在不断的向Serverless的方向演进,以阿里云本身为例,包括弹性的存储AutoPL、弹性的容器ECI、Serverless服务引擎SAE。底层能力的增强也意味着上层PAAS层和SAAS服务有了更快的向Serverless演进的路径,阿里云数据库就是其中受益的一方PAAS。

如果开源托管产品RDS可以看成是云数据库服务1.0,自研产品如PolarDB和Aurora可以看成是云数据库2.0,那么Serverless将会是云数据库服务的3.0。其中,客户应用跟数据库交互方式的改变(例如,从JDBC/ODBC向Restful API转变),将会具有重要意义。

从艾瑞2022年初对数据库云管平台的发展趋势预测[9]、以及结合云的趋势和Serverless本身,我们可以对Aurora Severless未来的发展方向做一些大胆的预测:

  1. 智能化加持:从re:Invent2021发布的Devops Guru产品上看到,AWS正在智能化场景下进行追赶。内置的智能化引擎对Serverless的场景可以做出更多的精准预测,让“响应式”扩容升级为“响应式兜底,智能化加持”的双引擎驱动;
  2. 资源解耦和极致的弹性:共享内存技术、Brust IO能力等会推着Serverless将更多的资源进行解耦,以及进行独立的升降配;
  3. 更多的Serverless手段:扩容是最有效直接应对数据库流量的方式,但是有了更多智能化的手段之后,单纯的“扩容”已经有更多选择,自动索引优化、智能调参会是很好的选项;
  4. 自动的横向扩展能力:scale out和scale up同样可以应对业务流量的变化,但scale out的复杂程度要远远高于scale out本身,也是个可能的选项;
  5. 低成本硬件大规模使用:ACU的单位定义屏蔽了底层资源属性,ARM、x86还是RISC-V已经不是那么重要,标准化归一化的算力能力让更多类型的硬件无缝无感的接入到Serverless当中。

阿里云 RDS MySQL 也在2022年4月份推出了Serverless版本,我们将在后续的文章中做重点的介绍,我们会以一个标准的网站应用(前端页面+API服务器+数据库)为样板,介绍如何在FAAS+BAAS的架构下一步步做全栈Serverless的改造,真正做到“0”服务器。

作者介绍:

韦仁忠,当前主要负责RDS MySQL管控产品建设,欢迎有志之士加盟RDS产品部,邮箱:renzhong.weirenzho@alibaba-inc.com

参考文献

2016: "Emerging Technology Analysis: Serverless Computing and Function Platform as a Service", Gartner, Tech.
2017: "Serverless Computing: Current Trends and Open Problems", IBM Research
2017: "Serverless Computing:Design, Implementation, and Performance",IEEE 2017 ICDCSW
2018: "Serverless Computing: One Step Forward, Two Steps Back ", CIDR 2019
2019: "Cloud Programming Simplified: A Berkeley View on Serverless Computing", EECS 2019
2020: "Serverless Applications: Why, When, and How?", IEEE Software
2009: "Above the Clouds: A Berkeley View of Cloud Computing", EECS 2009
1970: "A relational model of data for large shared data banks", Commun. ACM 1970
2022: 艾瑞咨询 艾瑞咨询

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

六年团队Leader实战秘诀|程序员最重要的八种软技能

简介:笔者在带团队的六年中发现,程序员们在职场都有一个共同的困扰:“好像写代码都没什么问题了,日常工作基本上都是应付业务需求的开发,好像找不到其他的更大的附加价值了,我应该找一些什么样的发力点才能…

宜搭小技巧|学会这一招,数据收集收放自如

简介:应用的「启用」「停用」功能还可以这样用 >> 团建的日子眼看就要到了,为了掌握参加的人数,提前进行车票、房间、餐食的预定,宜小搭计划在周五下班前停止对报名信息的收集。 如何停止我们的应用进行数据收集呢&#x…

阿里云总裁张建锋:“未来不懂低代码就像二十年前不会用word”

11月3日,阿里云智能总裁张建锋在2022云栖大会公布,钉钉上的低代码应用数突破500万,低代码开发者超过380万。张建锋表示,未来80%的应用会由业务人员通过低代码开发。 张建锋提到,一线业务人员通过低代码的方式&#xf…

平行云CEO 李岩:CloudXR ,开启通往元宇宙的通道

简介:一端是算力无穷的云,这也是 CloudXR 的精髓所在。 图:2022阿里云视觉计算私享会现场 5月11日,在“2022阿里云视觉计算私享会”上,平行云CEO李岩为大家带来了题为《CloudXR,开启通往元宇宙的通道》的主…

阿里10年沉淀|那些技术实战中的架构设计方法

简介:上周我写的一篇文章《关于技术能力的思考和总结》引起了大家的关注,好多读者的评论“以写代想、以想促真、以讲验真”,大家的感受很深刻,基于上次的文章,这篇文章我其实更想跟大家聊聊一些常用的思考方法&#xf…

阿里巴巴云数据仓库 MaxCompute 数据安全最佳实践

简介:MaxCompute作为企业级SaaS模式云数据仓库,正在为客户业务及其数据提供持续的安全保护。 MaxCompute 近期对产品的安全能力进行了全面升级 ,结合数据生命周期,针对数据误用、数据滥用、数据泄露、数据丢失等典型数据风险场景&…

阿里平头哥发布RISC-V高能效处理器玄铁C908,打造端云一体生态

11月3日,在2022云栖大会上,阿里平头哥发布全新RISC-V高能效处理器玄铁C908。玄铁C908计算能效全球领先,较业界同性能处理器能效提升超20%,更能满足低碳时代的算力需求,可广泛用于智能交互、多媒体终端、AR/VR、无线通讯…

MaxCompute 公共云多租户设计的技术要点详解及产品实现特色

简介:公共云大数据平台在多租户的设计和实现方式上有所差异。本文主要介绍在公共云大数据平台的多租实现方案中需要考虑的问题和挑战,重点介绍了MaxCompute在计算和存储多租实现上的特点。期望通过这些介绍来让大家了解大数据云平台多租方案需要关注的技…

技术解读 | 智能开放搜索CTR预估模型

简介:本文介绍开放搜索CTR预估模型在个性化排序中的应用与实践 如何评价搜索排序效果? 搜索是用户触达信息最简单直接的方式,是APP、网页必备的功能。如何评价并提升搜索效果一直是搜索领域的常见问题。 一方面,可以基于用户体…

阿里云能耗宝助力华聚公司实现产品绿色升级

客户公司:杭州华聚复合材料有限公司 公司类型:制造业 案例简介:能耗宝“碳足迹在线服务”助力华聚公司产品绿色升级,能耗管理助力厂区实现年度节电17万度,约等于减碳排量120多吨。 2020年9月,国家提出了2…

无影云应用核心技术解读

简介:本文整理自阿里云无影高级技术专家付志超,在阿里云EMR StarRocks无影云应用线上发布会的分享。本篇内容主要分为三个部分: 1. 无影云应用产品简介 2. 无影云应用技术架构 3. 总结&展望 了解更多无影云内容:无影云应用重…

计算就是创造力!阿里云与FIRST影展设立“无影创作奖”

11月3日在云栖大会技术主论坛上,阿里巴巴集团首席市场官董本洪与FIRST影展创始人宋文共同发起了“无影创作奖”。云计算从支持大制作渲染,走向了更多类型片的创作领域。 按计划,无影创作奖将在FIRST惊喜影展上揭晓,为类型片创作者…

一个好的网站logo设计长这样

简介:一个好的网站logo,不仅让用户一眼知道网站品牌传递的信息,还能提高网站专业度和丰富度,增加SEO搜索排名。今天分享下如何设计一款实用的网站logo。阿里云智能logo设计,在线免费体验logo制作:https://l…

怀同行之心,筑信任之基,践数智之行

行路过半,道阻且长 十几年前,许多人还不知道"云"为何物;而现在,我们的日常生活与云计算技术的发展轨迹越发重合。从“双十一”全民购物狂欢日的海量交易支持,到春运铁路网络购票的海量承载,再到…

面向WEB3.0提升存储性能,蚂蚁鲸探底层区块链存储引擎正式对外开放

11月3日,蚂蚁集团数字科技在云栖大会上宣布,其历经4年的关键技术攻关与测试验证的区块链存储引擎LETUS(Log-structured Efficient Trusted Universal Storage),首次对外开放。该产品主要用于可信数据在区块链上的存储&…

如何写出一篇好的技术方案?

近期在写某个项目的技术方案时,来来回回修改了许多版,很是苦恼。于是,将自己之前写的和别人写的技术方案都翻出来看了几遍,产生了一些思考,分享给大家。 我们为什么需要写技术方案?总结下来无非是几点&…

从“预见”到“遇见”| SAE 引领应用步入 Serverless 全托管新时代

近年来,企业的数字化随着互联网的普及发展越来越快,技术架构也是几经更迭,尤其是在线业务部分。从最初的单体应用到分布式应用再到云原生应用,出现了进阶式的变化。但带来便利的同时,也给企业带来了一定的复杂度&#…

AI 模型社区“魔搭”亮相,平头哥又上新,端云一体生态再升级

11月 3 日,2022 年云栖大会正式拉开帷幕。云计算、数据智能、操作系统、城市大脑、自研芯片等前沿技术应用悉数亮出,为参会者奉上了一场技术盛宴。 今年有哪些黑科技?下面我们先睹为快。 新型计算体系带来三大变革 阿里云智能总裁、阿里巴巴…

最佳实践|从Producer 到 Consumer,如何有效监控 Kafka

对于运维人而言,如何安装维护一套监控系统,或如何进行技术选型,从来不是工作重点。如何借助工具对所需的应用、组件进行监控,发现并解决问题才是重中之重。随着 Prometheus 逐渐成为云原生时代可观测标准,为了帮助更多…

漫画 | 新一代软件架构会影响到谁?

周末的晚上,张大胖照例要去 Hello World 咖啡馆,没想到在这里碰到了好几个老伙计。 原文链接 本文为阿里云原创内容,未经允许不得转载。