15 | 选型:不同阶段的数据应如何存储?
静远
你好,我是静远。
今天我要与你分享的主题和 Serverless 平台“存储”设计相关。通常我们在做一个服务或者平台的设计时,存储都是必不可少的一环,比如一些用户数据、日志信息、中间状态等。
在你构建一个生产级 FaaS 形态的 Serverless 平台时,也许会遇到这些问题:
函数定义该存在哪里?
代码包这么大该怎么存?
怎么才能保证扩缩容资源的状态被实时感知?
……
这节课,我就来和你聊聊 Serverless 下的数据存储是如何设计的。我将结合上面这些问题,从控制面和数据面两个维度展开,带你了解一个函数计算平台的存储应该考虑哪些方面。
希望通过这节课,你能够对函数计算存储的数据类型,以及针对不同特点数据的存储方案有更深的理解,从而顺利地设计出 Serverless 平台的存储方案。
整体思路
那么,针对函数计算的形态特征,我们该如何来设计和选型呢?
我通过下面这个思维导图总结了设计一个函数计算平台的核心要点和思路。
其中,控制面由元数据和代码包两个维度组成;从请求的执行过程出发,数据面主要需要考虑元数据在获取时的缓存处理、 函数 Pod 资源的调度处理、服务之间的协同操作以及日志相关的收集等维度。其中,日志和服务的协同也可以认为是贯穿在整个系统始终的,比如服务协同包括服务的注册与发现、消息的通知与协调、选主等。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
文章介绍了构建生产级FaaS形态的Serverless平台时,存储设计在控制面和数据面两个维度的重要性。在控制面的存储方面,作者详细介绍了元数据的存储和代码包的存储设计,推荐使用关系型数据库、对象存储和容器镜像服务。在数据面的存储设计和访问方面,文章涵盖了元信息的获取、资源的占用、并发排序等问题,并提出了使用分布式缓存中间件如Redis来解决这些问题。此外,还讨论了日志的设计和存储,以及服务状态的记录和处理。最后,文章强调了从数据的特性、企业的基础设施、开发人员的熟悉成本、业务的量级等角度来做存储选择的重要性。总的来说,本文通过对控制面和数据面的存储设计进行详细阐述,为读者提供了在构建Serverless平台时的存储方案选择和设计思路。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Serverless 进阶实战课》,新⼈⾸单¥59
《Serverless 进阶实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- 浩仔是程序员需要关注这么多吗?
作者回复: 从平台的角度来设计需要,而且随着技术的不断更新,建议平时也多关注新技术的发展,更有利于我们做出更贴合当下的设计哦
2023-08-03归属地:广东 - daydaygo虽然思想容易理解,但是实现上要使用这么多工具,只有『大厂』才能hold住了。就长尾应用而言,serverless是否更适合小厂进行MVP验证?
作者回复: 是的,长尾,中腰部的客户,基本上建议直接用公有云,自己搭建和运维,成本高,资源利用率也很难保证
2022-11-18归属地:上海 - daydaygoDoris在早期才用过,后来替换成更适合业务场景的starrocks,架构就是一个不断演进的工程2022-11-18归属地:上海
收起评论