统一的分布式数据库和文件系统mongodb,及其用于解决aliyun上做站的存储成本方案

简介: 本文关键字:mongopress安装,0维护网站系统,web程序静态资源/媒体文件维护/备份,阿里云mongodb

本文关键字:mongopress安装,0维护网站系统,web程序静态资源/媒体文件维护/备份,阿里云mongodb

从本地打包技术到分布式存储中的做站媒体维护

在大型本地程序的客户端发布中脱离不了文件系统/打包技术, — 这在游戏技术中很常见(看看大型3D网游DATA中的那些动则几G的资料片/资产库文件就知道了)。比如,zip包也是一种简单的文件系统。不过更复杂一些的场景,比如发布大量小文件还需要维护更新和版本化的时候,往往用打包+hash+加密技术(一个索引一个存储库),像warcraft系列的mpq啊这些都是例子,就不细说了。

事情到了WEB和做站,同样地,WEB的静态资源往往有时变得很巨大,有图片这种小文件也有大文件存储这些需求,我们来细细分析 — 在其底下首先是分布式存储和其各种方案,从服务器上的raw filesystem,分布式文件系统。到简单的ftp,webdav(支持统一客户端同步etc..如owncloud和davros),到网盘的切片文件系统(支持秒传,如dropbox),到对象存储技术(es2,aws,aliyun oss),到传统数据库和它们的结合体如mysql+fuse文件(aw3fs,okasoft),甚至像基于云计算渲染的游戏中免发布客户端资源做成stream,都可用于操作和存储网站文件。我们现在的web栈也往往都是一个httpd的page ui srv + 一个数据库srv + 具体WEB程序维护的程序数据库条目索引本地文件或分布式中的文件,可见,对存储的处理是通用web栈中一个基础环节。

然而,现在的以上这些,都涉及到不同的技术显得太碎片了,同是存储却用了不一样的多种不同质的技术,而且都不能使web做到像本地一样存储维护网站系统(除了OSS可以挂载到本地盘稍微有点接近这个之外)。这使得维护网站静态资源过程往往变得很痛苦,那么有没有一种像打包文件的本地方式一样维护/备份网站系统。统一备份网站数据/媒体,且避免像wordpress这种紧绑定媒体和数据库不好备份的缺点。更进一点,可以做到像dokuwiki那样免数据库一样,发贴即存储,打包复制带走即整个网站维护。

ps:整合的东西往往有一个干净,简单的门面。可以改造成各层开发者适用的版本,稳藏代码后面的复杂。这其实是现代开发,在源码处理(语法上)和发布上(组件技术上)的通用技术了。软件抽象和设计模式中的门面,都是这样的例子。整合的东西还可以提高应用的简便性。
而我们的工作,就是使web stacks中的存储自成一体,使之变得更整合更易维护。本站以前的发布/演示中,ocwp,cmserpone都是在一定程序上使媒体维护变得免维护化这样的例子,owcp用网盘作媒体后端,备份即同步网盘,cmserpone是导出一个公司的db。而接下来介绍的mongodb更像是一种突破。—– 与oss不属数据库技术不同(它是干净的分布式存储),它是一种称为文档数据库,此文档二字即为网站资源,它具有gridfs本身就是一个文件系统,整合了mysql和fs。同时可用作mysql存储程序数据,你可以将它视为mysql+oss,或native storage backend for web apps(that shipped with webstack as ehanced lamp),是web栈中一个很合理的整合存在。

mongodb与在阿里云中省事/低成本/免坑做站

阿里云是这样设计ECS的,在其产品计划中它把ECS作为计算产品出售,并不是一个带存储/计算的全能iaas产品(如果你要这样做,技术上是可以的,但是成本很高,ecs在安全/负载/流量方面没有优势不利直接建站,而其存储类产品有这方面的设施和价格优惠),因此云存储中,有oss,ecs文件系统,块这样各层的东西,包括rds,mongodo这样的存储产品。比如,在iaas层,阿里云希望用户搭配使用ecs+rds。

甚至有负载ecs,更甚至,根据这些,阿里向用户提出游戏解决方案电商解决方案,搭配使用的方案。

but,这太乱了。而且其存储成本组成,不但包括存储本身还包括存储中的媒体产生的流量。

我希望有一种方案。像ECS一样全包但是不要涉及太多产品和计费方案。只涉及到最多二产品,且避免ecs的以上做站的短处,再来搭配ecs。aliyun Apsara for mongodb+ecs就是这样一种,内网中的这二个产品流量是免费的,mongodb中的出流量是免费的,ecs按量收费仅放web程序应该不会产生太多流量,这样流量带宽方面综合起来比较划算。ecs+rds for mysql+oss也可以,但是这处方案至少涉及到三个产品。

在mongodb这种方案中,你仅需要租用mongodo即可,外带一个支持程序的空间(比如阿里云的免费PHP空间),在程序支持方面,如果你是个人博客,可以选用比如mongopress,或成熟的nodejs+mongodb的mean stack系列下的app(不过这样你至少需要一个ecs,因为aliyun ews中的js下架了)。

安装方法:下载mongopress 0.2.3放到apps/wamdata/source下,默认密码admin/admin安装,然后在安装成功的后台点导入数据,下载plupload 1.5.1,解压2个文件plupload.js,plupload-html5.js覆盖mp-admin/js/plupload/中的2文件即可。

下面是我在msyscuione+ocwp使用的wam/wnm架构中测试的结果:

——————–

当然它aliyun Apsara for mongodb也不是不贵,合租mongodb才划算,,体外话:对于降低个人网站最低成本和同类产品的自然整合考虑,我最初的想法是mailbox当网站空间的附件呢并把它发展为像owncloud这样的东西,不过还是偏向到web这块来了,那个想法有点疯狂有点像web1.0时代的google openwave设想。不过openwave现在也有成功的替代品了。叫什么来着我忘了。。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关文章
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
12月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
1264 79
|
9月前
|
存储 NoSQL 前端开发
【赵渝强老师】MongoDB的分布式存储架构
MongoDB分片通过将数据分布到多台服务器,实现海量数据的高效存储与读写。其架构包含路由、配置服务器和分片服务器,支持水平扩展,结合复制集保障高可用性,适用于大规模生产环境。
605 1
|
12月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
435 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
588 10
|
11月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
1028 2
|
SQL 存储 分布式数据库
分布式存储数据恢复—hbase和hive数据库数据恢复案例
分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层文件被误删除,数据库不能使用。要求恢复hbase和hive数据库。
577 12
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
存储 NoSQL MongoDB
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”

推荐镜像

更多