【腾讯云的1001种玩法】十分钟轻松搞定云架构之三:更大的存储
序言
大家好,这节课是十分钟架构课程的第三节课:更大的存储。在这节课,我们来了解下面这个四个方面
- 应用发展过程中不可避免的存储问题
- 什么是对象存储
- 对象存储的优势
- 对象存储的最佳实践
应用发展中不可避免的存储问题
随着我们的应用的不断发展,应用的文件、图片等附件,会不断的增加,总会有一天会占满我们的磁盘。而存储量的提升,将会带来 IO 用量的提升和综合带宽占用的提升。但是,附件问题有个特点:低频,大部分的附件都很少被读取,但是它们往往占用较大。当我们的磁盘空间用完后,就需要调整磁盘的空间。磁盘的变更可能会要求我们的重启我们的机器。除了重启问题以外,使用我们自己的硬盘存储文件还有另外一个问题:硬盘空间和主机带宽的增长循环
随着存储量的增加,我们需要提升带宽来保证我们的文件可以被高速的访问。带宽的提升会优化用户的体验,促使它们再次上传更多内容。
这样的循环会让我们的支出不断的提升。在上一节课中我们提到过,带宽的价格是非常高昂的,带宽越大,单价越高。
那么有没有一种产品可以让我们不用支付昂贵的带宽费用呢?有,那就是对象存储!
什么是对象存储?
对象存储为用户提供海量存储的能力。它独立于云主机之外,而且为我们提供单个Bucket(存储空间) 256T 的总容量,我们可以放心的存储我们想要存储的内容,而且,腾讯云没有限制用户可以创建多少个Bucket,也就是说,我们的容量可以认为是无限的。
- 单个 Bucket 的存储总量可以达到 256T
- 可以实现在用户之间上传到 COS ,而无需经过主机中转,不占用主机带宽
- 文件的访问通过COS进行, 不占用主机的IO和网络带宽
如何接入对象存储
接下来,我们来说一说如何在应用中接入对象存储。
如果要在应用中接入对象存储,我们就需要把我们的应用拆分成两个部分。一部分是我们的计算能力,比如我们常说的业务逻辑。 另一部分是存储能力,存储能力分为两块,一部分是我们常说的数据库存储,另外一部分就是我们常说的文件存储。对于文件存储的这一部分,我们可以借助 COS 的 SDK ,将文件存储的能力交给COS来处理。用户在使用时,只需要把SDK接入到系统中,替换对应的代码。就可以实现使用COS来进行文件存储。
对象存储的最佳实践
我们希望借助对象存储,提升系统的性能。另一方面,我们也希望他可以帮助我们减少更多的费用。既然要降低费用,我们就要知道,对象存储都收取哪些费用。
对象存储收取存储的费用、流量的费用和请求的费用。其中流量费用和请求费用是其中的大头。我们可以借助CDN,来减少我们的对象存储的请求费用和流量费用,从而实现对象存储的费用的降低。
除了费用之外,我们也建议大家使用 Web 直传,这样文件的上传就可以直接从用户到达 COS ,而无需借助主机中转,降低了主机的带宽和IO的使用。
- 简易的深度学习框架Keras代码解析与应用
- Java并发编程的艺术(六)——线程间的通信
- 轻量级线程池的实现
- python根据BM25实现文本检索
- 稳扎稳打JavaScript(一)——作用域链内存模型
- 稳扎稳打JavaScript(二)——图解对象内存模型
- Swift学习资源
- 稳扎稳打JavaScript(三)——创建对象的几种方式
- 快速教程:使用Cython来扩展Python/NumPy库
- 稳扎稳打JavaScript(四)——闭包
- JavaScript奇淫技巧(一)
- 动态规划法(四)——0/1背包问题
- 动态规划法(三)——最长公共子序列
- Python数据分析模块 | pandas做数据分析(三):统计相关函数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用 Docker 加速开发工作流
- Kubernetes CRD 自定义控制器
- 推荐算法之: LFM 推荐算法
- 推荐算法之: DeepFM及使用DeepCTR测试
- Cypress系列(61)- 断言最佳实践
- Cypress系列(62)- 改造 PageObject 模式
- CPU 执行程序的秘密,藏在了这 15 张图里
- Cypress系列(63)- 使用 Custom Commands
- Python字符串操作大全
- Cypress系列(64)- 数据驱动策略
- 别只会搜日志了,求你懂点原理吧
- Cypress系列(65)- 测试运行失败自动重试
- CentOS7下编译FFMPEG源代码
- Android 的 Presentation 双屏异显,遇到的问题总结
- 音视频相关开发库和资料