不久前,腾讯云发布了国内第一款 Serverless 数据库 —— PostgreSQL for Serverless(ServerlessDB),在业界受到众多数据库开发者的广泛关注,它基于 PostgreSQL 数据库实现按需分配资源,能够做到安全隔离、弹性扩容、按需付费、原生 SQL 支持。在本文中,腾讯云 ServerlessDB 产品负责人从租户隔离技术、快速扩缩容能力、连接池管理等方面,详细解密这款数据库背后的设计细节,希望能够为所有开发者带来启发。
相比较于传统数据库,云数据库的弹性扩缩容和按量计费能够帮助用户按需使用云资源,避免资源浪费的同时大幅节省了成本。在系统实现原理上,目前云数据库提供的这类“弹性方案”本质上是一种策略上的弹性,即开发者需要先行预估自己的产品负载量,例如一款游戏什么阶段玩家特别多,什么时候人潮回落,在设定好数据库需求的方案后,对应进行手动的容量调整。
Knative Eventing是一个旨在满足云原生开发的常见需求的系统,并提供可组合的原语以启用后期绑定事件源和事件使用者。
Knative Eventing是围绕以下目标设计的:
Service Mesh 技术在蚂蚁金服的落地,先后经历过如下几个阶段:
Serverless(无服务器架构)是指服务端逻辑由开发者实现,运行在无状态的计算容器中,由事件触发,完全被第三方管理,其业务层面的状态则存储在数据库或其他介质中。
Serverless 是云原生技术发展的高级阶段,可以使开发者更聚焦在业务逻辑,而减少对基础设施的关注。
下图来自谷歌云平台官网,是对云计算的一个很好的分层概括,其中 serverless 就是构建在虚拟机和容器之上的一层,与应用本身的关系更加密切。
本文定义并解释了 Serverless 与其他应用程序架构的不同之处,然后“证明”了 Serverless 应用程序架构在实施得当的情况下会优于非 Serverless 架构。最后总结了很多经验法则,帮助架构师和开发人员实现 Serverless。
关键要点
大多数关于 Serverless 应用程序的文章都没有提供足够的细节来解释为什么 Serverless 比其他软件开发方法更具优势,或者在解释为什么 Serverless 比非 Serverless 解决方案更好时显得有点杂乱无章。本文解释了 Serverless 与其他应用程序架构的不同之处,然后“证明”了 Serverless 应用程序架构在实施得当的情况下会优于非 Serverless 架构。最后总结了很多经验法则,帮助架构师和开发人员实现 Serverless。本文对作者在 QCon NY 2018 和 Serverlessconf SF 2018 大会上提出的概念和示例进行了扩展。
我们在优化什么?
一、无服务器(Serverless)计算是什么
云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升效率是云服务永恒的主题。
来自伯克利的犀利断言:Serverless 计算将会成为云时代默认的计算范式,将会取代 Serverful (传统云)计算模式,因此也意味着服务器 – 客户端模式的终结。
你准备好了吗?
2009 年,伯克利以独特的视角发布了一篇文献,定义了云计算,十年过去了,这篇文章被引用无数,其中的观点更是当下最好的见证:
2019 年,伯克利又以新的视角发布了一篇文献:将云中的编程变得简单:伯克利视角下的 Serverless 计算。 观点同样让人眼前一亮: