读者序
之前写的东西今天看了下, 狗屁不通(悲),不过决定还是接着写,毕竟上班摸鱼也是一天,写写东西也是一天,写东西还能有点收获,并且万一写东西还能撞见客户,岂不美哉。
对象存储
接上次所说,今天我们就讲下对象存储。
对象存储服务是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。
OBS系统和单个桶都没有总数据容量和对象/文件数量的限制,为用户提供了超大存储容量的能力,适合存放任意类型的文件,适合普通用户、网站、企业和开发者使用。OBS是一项面向Internet访问的服务,提供了基于HTTP/HTTPS协议的Web服务接口,用户可以随时随地连接到Internet,通过OBS管理控制台或各种OBS工具访问和管理存储在OBS中的数据。此外,OBS支持SDK和OBS API接口,可使用户方便管理自己存储在OBS上的数据,以及开发多种类型的上层业务应用。
以上是华为云的obs的概念,据我所知,各个大云厂商的对象存储服务其实都是差不多的概念,包括但是不限于阿里云OSS、腾讯云COS、华为云OBS、AWS S3等。
实际底层
说是实际底层其实也是不是,只是我的一些基础看法
对象存储是一个可以即开即用的产品,可以通过云控制台,云服务商单独提供的软件,以及api和SDK调用使用。在使用中,对象存储基本可以看作一个的网盘来使用。但是,这个网盘呢是可以看似接近于无限空间,并且不限速。
那么这个近似无限空间和不限速是怎么实现呢?我们一个一个来拆解。
空间容量
各个云厂商的对象存储服务依托于在厂商在全球部署的N个数据中心。并且云厂商依托于自身的能力,将所有业务、存储节点采用分布式集群方式部署,各节点、集群都可以独立扩容,使用户永远不必担心存储容量不够。这个就相当于是另向的实现了无限空间。
不限速
另外一个就是网络,大家其实都知道,网络访问速度也是很重要的一个数据。其实还是一样,对象存储服务的物理服务器以及网络带宽均依托于服务所属厂商部署的数据中心,而非依托于单台服务器的网络通道。也不会像市面上的部分应用一样,手动限速。所以也可以理解为一个不限速的网盘,并且并且对象存储服务一般厂商都可以直接对接CDN加速使用,更有效的提升全国乃至全球的访问速度。
当然,对象存储作为一个云厂商提供的成品服务,上述的服务好归好,但是都是收费的,存储容量、网络、CDN都是收费的。对象存储相对于数据存储在本地和云服务器内,虽然有很多的优势,但是各位在使用的时候一定还是要考虑需求和成本,并非所有的场景对象存储都是最优解。
使用场景
上面既然已经提到了对象存储并非所有场景的最优解,那么话都说到这儿了,我们就来讲一下对象存储的具体使用场景吧。
一. 企业云盘(网盘)
场景描述
OBS配合弹性云服务器ECS、弹性负载均衡ELB、关系型数据库RDS和云硬盘备份VBS为企业云盘提供高并发、高可靠、低时延、低成本的存储系统,存储容量可随用户数据量的提高而自动扩容。
用户手机、电脑、PAD等终端设备上的动态数据与搭建在华为云上的企业云盘业务系统进行交互,动态数据请求发送到企业云盘业务系统处理后直接返回给终端设备。静态数据保存在OBS中,业务系统通过内网对静态数据进行处理,用户终端直接向OBS请求和恢复静态数据。同时,OBS提供生命周期功能,实现不同对象存储类别之间的自动转换,以节省存储成本。
二. 图片和音视频等应用的海量存储
场景描述
OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据。OSS支持流式写入和文件写入两种方式。
三. 将 WordPress 远程附件存储到 COS
场景描述
WordPress 是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以把 WordPress 当作一个内容管理系统(CMS)来使用。将 WordPress 的媒体库附件存储在腾讯云 对象存储(Cloud Object Storage,COS) 上。
COS 具有高扩展性、低成本、可靠和安全等特点,将媒体库附件保存在 COS 上有以下好处:
附件将拥有更高的可靠性。
您的服务器无需为附件准备额外的存储空间。
用户查看图片附件时将直连 COS 服务器,不占用您服务器的下行带宽/流量,用户访问速度更快。
可配合腾讯云 内容分发网络(Content Delivery Network,CDN) 进一步提升用户查看图片附件的速度,优化网站访问速度。
小结
上述就是我在国内的几个大云厂商各挑了一个推荐场景做案例分析。讲得很好,虽然说案例很少,但是也是很多公司的一些常见需求了,并且在我看来,这些方案其实有一定的通用性,接下来我以我在做客户的实际过程中发现的问题来拆解一下上述方案和价值。
方案价值
1.企业云盘
企业情况:公司内部存在大量的文件,包括但是不限于各种政策文件,培训资料,产品资料,物料清单,宣发视频等。对应文件量很大,并且存储复杂,很多文件都是存在个人办公电脑内,经常有需要什么文件只能找到具体某个人去获取对应材料。部分对客户材料只有客户找过来才想起还有一份这个材料去找,文件修改无记录,材料无有效监管。
实际需求:需要一套文件管理系统将文件整体打包存放,并能随时获取给到客户做演示等。
基础问题:文件存储分散,未形成统一管理。
对象存储解决方案:面对上述问题,整体解决方案其实是一个整体应用方案,并非单独通过对象存储即可实现,而是会依托于软件层面做一个完成的文件管理系统,使用对象存储做底层数据存储。利用自研/开源/商用文件管理系统/网盘软件,完成公司内部数据梳理之后,将数据迁入对象存储,针对不同类别的文件进行分档存储,并对不同的人员进行不同的授权,实现公司内部的文件管理。
客户价值:统一公司内部文件存储系统,方便随时获取权限内文件,文件有修改实时同步并可追溯修改时间点以及修改人员,有效避免对外宣传材料和公司实际提供服务不符合。利用对象存储网络系统,网上演示视频以及发送给客户的演示视频通过链接即可实时观看,不再担心视频很大导致传输缓慢以及卡顿,并且有效避免网络传输压缩码率,给终端客户更好的体验。
tip-这个案例其实偏大了,主体解决方案其实更多是应用和公司资料梳理的问题,如果只是简单的想要搭建一个网盘存东西的话,可以直接通过使用 NextCloud + 对象存储这些开源方案搭建个人网盘或者选购成品网盘使用。
2.图片和音视频的海量存储
企业情况:公司主营业务为视频在线培训,主要为将视频放在网上供学员观看,之前由于业务量不大,视频主要存储于本地服务器中。后续由于业务拓展,存储视频越来越多,画质也越来越高清,并且有老师反馈视频上传有些时候会遇到上传失败的问题。现在线下机房硬盘以及网络带宽均跟不上业务需求,以求解决方案。
实际需求:需要一个满足业务拓展的存储空间,并要求网络不限制,便于访问。
对象存储解决方案:将本地机房数据全部迁移到对象存储内,使用对象存储的上传接口,老师视频上传直接传输到对象存储内。并通过对象存储提供的转码服务,将对外提供的视频统一码率。结合cdn服务,在有效减少流量费用的同时提升访问效率,使应用开发无需过多关注应用内的数据存储问题,将更多的时间放在优化应用以及数据库等方面。
客户价值:将数据迁移到对象存储,有效的减少了本地运维人员的工作量以及数据丢失风险。开发人员无需再关注数据上传下载问题,更专心的解决业务问题。老师上传视频失败概率大大减少,并由于断点续传机制,网络波动也无需全部重新上传。最后结合到cdn服务给终端客户带来更流畅的观看体验,使公司好评率以及受认可度大大提高。
tip-视频以及图片量不大也可以考虑放在对象存储中,有效降低服务器网络负载,提升访问流畅度。
3.网站数据存储至对象存储
企业情况:通用案例-个人博客,个人论坛,公司官网,公司论坛,学习交流平台等。每天都会有各类数据产生,包含用户发表文章,文章内图片乃至视频等。但是由于用户量等原因,实际部署这个套环境的服务器配置偏低,无法满足视频图片的大量快速加载。
实际需求:需要一个存储空间容纳文章,图片,视频文件。想要这些文件与应用分开存储,并优化访问效率。
对象存储解决方案:网站对接对象存储服务,将图片视频等大文件保存至对象存储,并由对象存储直接提供访问。并将对象存储挂载到云服务器,存储其它非结构化文件,减少服务器自身硬盘。
客户价值:减少服务器内存压力,加快网站应用访问速度,提升数据安全性。
tip-通用场景,基本网站建站均可作为参考。
总结
在信息时代,企业数据直线增长,自建存储服务器存在诸多劣势,已无法满足企业日益强烈的存储需求。对象存储拥有数据稳定,业务可靠、多重防护,授权管理、千亿对象,千万并发、简单易用,便于管理、数据分层,按需使用等优势,相信后续会逐渐成为一种主流存储方式。
这次忙中偷闲居然写了这么久才写完,欢迎大家交流,有什么问题都可以沟通,阿里、华为、腾讯、aws的资源需求以及问题行。我相信,有什么问题换个方向思考不一定有答案,但是会多一些想法。
~~感觉写这些东西虽然很简单,~~但是比我想象得难啊,虽然自己写得不怎么样,但是还是希望能给大家做个参考吧。
如果我写得有什么问题还请大家多多指点。感觉字太多内容太少了。