码农在囧途
❝冬天来得也太快了,这么冷的天气,早上起床后,洗漱完了抽上一支烟,空调开了半个小时后依旧没什么用,可能它比较老了吧,于是打开电脑,跑了十几个运算任务,CPU飙升到90%,手放在笔记本电脑键盘上,才感到一丝暖意,可比那空调强得太多了,只是这电脑再多烧下,估计要爆炸了,那这个冬天又要怎么过呢?
前言
今天分享一下文件存储的一些心得,在软件开发过程中,必然会涉及到文件存储,文件存储的方案有很多,市面上也出现了很多文件系统,我们需要根据自己的需求去选择选择存储方式和规格等等,例如是采用公有云存储还是私有云存储,还是混合云存储,这都需求根据项目的特征去选择,没有哪一种方式是十全十美的,完全根据场景去选择,软件领域没有银弹嘛。
场景
根据不同的公司的情况,软件的规模,生命周期,文件存储的自然也不同,我们主要来说一下一些解决方案。
私有云存储
对于政府项目,或者一些大型公司的项目,对于文件的安全和隐私比较注重,一般都会采用私有云文件存储,自己搭建文件系统,数据存储在自己的服务器上,它的好处是文件数据全部在自己的手上,
公有云储存
如果对于一些初创公司,项目处于初期,没有能力自建机房,且软件的生命周期不确定,那么这时候,选择公有云存储就是一个不错的选择,只需要按量付费,直接使用云厂商提供的SAAS服务,省去了维护文件系统的成本,如果后面发展好了,想自建机房,那么只需要从从公有云上迁移文件到自己的服务器上,公有云给初创公司提供了更过的选择。
混合云存储
有一些场景可能需要用到混合云存储,有一些公司文件存储在自己的文件服务器上,但是如果出现一些需求,需要去调整大量的内外网环境,可能对某些业务产生一些安全隐患,并且产出不成正比,这时候可能就会选择将文件存储在公有云上,公有云和私有云混合使用。
解决方案
那么根据不同的需求,我们也能制定不同的方案,在制定方案的时候,要从人力,财力,发展状况等方面去衡量,还要去预测一下未来的情况,设计合理的架构方案,以便未来不会那么痛苦。
自建文件系统
如果我们需要自建文件系统,那么就需要衡量文件的存储量,如果有历史数据,那么就从历史数据去推算出每天/每月/每年的存储量,并估计出未来增长情况,如果没有,那么可能就需要从客户或者其他的一些指标去估计,然后选择合适的储存设备,还要从文件的用途去衡量,有些文件只需要归档,而有些文档长时间都需要使用,有一些需要用来进行机器学习等等,那么就需要我们进行选择了,市面上有很多文件系统可供我们选择,比如HDFS,FastDFS,Minio等等,在选择的时候我们也需要对文件系统的生态,社区活跃度,以及扩展性,可用性,可维护性等指标去衡量,比如HDFS就适合存储大文件,如果我们的文件都比较小,那么使用HDFS就不是合理的选择,再如FastDFS的社区不怎么活跃,且安装使用难度较大,那么是否要选择它呢,我想我们心中都有答案,还有文件的存储格式,分区设置等等等等,都会有很大影响。
购买云厂商OSS服务
国内外有很多云厂商提供OSS服务,比如阿里云,腾讯云,华为云等等,只要按量付费就行,我们需要根据自身的业务去衡量,比如系统的很多服务都是采用同一厂商的解决方案,那么采用他们的OSS服务也是最好的,这样能够更好的融合他们的生态,也能从最大程度上发挥优势。
总结
没有哪一种方案是十全十美的,软件开发中没有银弹,我们只有找到最适合的方案,才能从最大程度节约成本,提高软件质量。
❝今天的分享就到这里,感谢你的观看,我们下期见。
Minio文件系统:分布式文件系统MinIO