随着业务的进展到一个新的阶段以及数据量积累到一定程度后,老板开始关注成本。老板一关注成本就开始悄悄的打听各种服务器、硬件啥的价格了,然后突然有一天老板叫来开发运维狗小明:
“小明啊,你用的阿里云存储啥价格啊?“
小明顿时抖了一个机灵,心中暗暗一喜:“老板,我用的是阿里云的300TB三年存储包,折算下来才0.068元/GB/月,相当于打了46折呢。”
“你回去再研究一下,我在网上拼拼凑凑,自己搭个存储集群,算下来才不到X分/GB/月。成本相差这么多,我们是不是可以自己搞存储?”
老板说完就走了。小明心头一紧,立马动手研究存储成本组成,发誓一定要把存储的成本组成摸清楚。
小明通过一顿学习钻研、泡论坛和找大V终于搞明白存储有个TCO (Total Cost of Ownership) 总拥有成本的概念,包括前期采购、中期使用和后期维护等整个过程的总费用。绝对不是几台物理服务器加几块磁盘就算出来X分/GB/月的存储单价。存储成本考虑的因数多的去了:
- 物理服务器的因素:包括服务器的价格,服务器的盘位数,服务器3年的折旧率。
- 磁盘的因素:单盘的容量(磁盘一般按1000的整数倍算容量,而云存储一般是1024的倍数),磁盘的格式化损失率。另外,还需要控制磁盘的水位,不能把每块磁盘都写满,甚至还需要给OS和日志系统留出专门的空间。
- 数据中心托管的费用:服务器一般按每U或者每机柜收托管费,集群内网的网络设备费用,还要考虑机柜的供电功率。
- 开发运维费用:及时部署一套开源的分布式存储系统,也需要开发工程师根据自己的需求进行功能和性能的优化,上线后还需要运维同学进行运维保障。对于一套复杂的分布式存储系统,其开发的时间成本和试错成本也是非常大的支出。
- 数据的冗余、恢复设计:为了服务的可用性和数据的持久性,一般会选用3副本机制。是用物理的三副本还是通过Erasure Code实现三副本的能力?大部分的同学可能会选择物理三副本,因为Erasure Code是大规模存储的核心算法,玩的顺溜还是比较难的。
- 公网带宽成本,对于一个能对外提供服务的存储集群,公网上下行能力至关重要,当然,优秀的网络带宽成本高昂。比如类似阿里云OSS默认提供最优质的BGP公网带宽。
整理出这么多道道,小明决定按300TB规模做一张表格对比阿里云和自建存储集群的TCO,然后再给老板汇报,就一目了然啦。
表一:300TB自建存储物理服务器台数
通过表一的计算,可以得出要满足300TB的存储量,需要大约购置19台物理服务器。而这些服务器和其他的费用具体计算见表二:
表二、300TB自建存储TCO和阿里云OSS TCO对比(不含公网带宽)
不比不知道,一比吓一跳啊,原来阿里云的商业化云存储产品OSS对比自己的存储集群,有这么大的价格优势,还免运维,直接由应用开发工程师调用即可实现随时随地按需使用。怪不得数据上云是大势所趋,这是既省成本又省事啊。小明赶紧拿着表格给老板汇报,在强有力的数据说服下,老板直夸小明干的漂亮。也更坚定了小明拥抱云计算的信心。最后还是老板总结的好:"我们还是应该把所有的精力投在快速的产品业务迭代,提高用户体验上,保持我们自己产品的核心竞争力。这些基础的存储啥的脏活、累活,都丢给阿里云吧!"