说说关系型数据库与Serverless
简介: 看到如今Serverless在云计算行业喷薄欲出的态势,像极了《星星之火,可以燎原》中的描述:虽然不能预测未来的发展和变化,但对于云计算来说这是个相对确定的方向。本文从产业界和学术界出发,聊聊关系型数据库和serverless技术之间的林林总总。
关于Serverless
- Google Trends的Serverless关键字的趋势
- 学术界对Serverless的研究热度也不亚于工业界对商业化方案的追求
何为Serverless?为什么Severless是个趋势?云计算2.0, 定义了Serverless的主要三个特征:
- 资源的解耦和服务化
- 自动弹性伸缩
- 按使用量计费
众多云计算厂商的背书,包括AWS、Micorsoft、Google、Alibaba等
Serverless关键技术路径包括:
- 统一的标准运行环境支持多语言的运行时统一管理
- 轻量级/蝇量级安全容器
- 冷热容器池设计做极致的多租户复用能力
- 高效的函数调度能力
数据库的Serverless
Serverless = FAAS+ BAAS
- 将FAAS(Functions as a Service)定义为事件、API、消息驱动的计算层
- 将BAAS(Backends as a Service )定义为类似数据库、消息队列等后端服务
数据库做Serverless有若干难点,总结如下:
- Serverless没有内置的持久化存储,需要依赖远端存储,这就会导致在延时上较高;
- 客户端是基于连接的方式访问数据库,在客户端往往会维护连接池的方式供应用访问,而函数计算往往具备飘忽不定的网络地址,与数据库传统的IP+User+password鉴权的方式迥异;
- 很多高性能的数据库使用共享内存技术,而FAAS本身不具备共享内存的能力,会使得计算和数据库之前的资源动态扩展能力不一致
当前的数据库访问方式已经不适用于Serverless生态:
- 服务器与DB做连接保持,这就意味着访问状态是由客户端和数据库共同维护,而FAAS无法做到连接持续保持的能力;
- 服务器通过driver和连接池的方式访问数据库,每次的连接初始化相对较重,FAAS上无法承受如此重的连接初始化工作;
- 服务器访问鉴权通过user/password/ip的方式访问数据库,而FAAS多租户场景所有用户共享IP地址池,user/password内置到FAAS当中也暴露了极大的安全风险;
他山之石
- Aurora Serverless V1发表于2018年
- 2020年发布的Aurora Serverless V2
未来可期
Severless未来的发展方向做一些大胆的预测:
- 智能化加持
- 资源解耦和极致的弹性
- 更多的Serverless手段
- 自动的横向扩展能力
- 低成本硬件大规模使用