本文是 serverless 入门与实践 的第29篇
学习<华为 Serverless 核心技术与实践>, 计划: 1篇前言 + 10篇/章 + 1篇总结
云存储架构
Cloud Storage的架构设计需要考虑到以下几点来满足产品的不断演进:
- 安全和隐私合规:满足各国/地区组织的隐私和安全相关法律、法规,如欧盟的GDRP。
- 大容量存储:可支持业务平滑扩容到EB级,扩容过程中业务无感知。
- 可扩展性:采用分布式架构构建,服务无状态,可横向平滑扩容。
- 可运维:生产环境问题可发现、可定位、可追溯,业务服务器可度量、可灰度、可扩容、可降级、可隔离。
Serverless云存储服务架构
云存储服务架构各部分的功能:
- 端侧SDK:对端侧SDK接口进行统一抽象,封装领域模型,面向不同的端侧操作系统/平台提供统一的API模型,降低端侧开发成本。
- Console:提供Portal网站和CLI命令行工具的管理控制台,支持通过可视化的方式登录管理控制台,执行初始化存储实例、文件管理等操作,底层调用云存储服务的Restful API。
- 云存储服务端:提供存储实例管理、多租户管理、接入认证、安全规则配置、用量度量和全球路由等服务。
弹性伸缩架构
弹性伸缩体现在2个方面:
- 云存储服务自身:架构不会随着租户规模的增加而频繁进行手工扩容或数据搬迁,整个架构随着租户的增加可以自动化地进行存储容量扩展及接入性能扩展。
- 云存储服务使用者:不用担心存储规模和访问性能问题,随着业务的发展,数据存储量从1MB增加到1PB,底层存储服务的扩容对业务不感知,扩容不中断业务
关键特性:
- 对多租户的调度和支持,根据租户的访问位置将请求路由到最近的存储站点,如果涉及漫游,则通过云专线来解决跨站访问的时延问题。
- 容量监控和预测,通过对租户和租户项目桶的存储空间等关键指标进行监控,以及对增长率的分析和预测,对用户未来的存储空间提前创建并将其放到资源池中,避免运行时临时扩容导致时延增加和超时。
Serverless弹性伸缩架构示例
声明式安全规则
开发者通过云存储Console设置安全规则策略
App访问云存储服务时的校验安全规则