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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 本文关键字: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

相关文章
|
4月前
|
存储 NoSQL Redis
阿里云高性能数据库Tair(兼容 Redis)收费价格,稳定可靠成本低
阿里云高性能云数据库Tair兼容Redis,提供Redis开源版和Tair企业版,支持多种存储介质与灵活扩展,适用于高并发场景。Tair具备亚毫秒级稳定延迟,保障业务连续性。价格方面,Redis开源版年费从72元起,Tair企业版年费从1224元起,具体费用根据配置不同有所变化。
|
3月前
|
存储 NoSQL 前端开发
【赵渝强老师】MongoDB的分布式存储架构
MongoDB分片通过将数据分布到多台服务器,实现海量数据的高效存储与读写。其架构包含路由、配置服务器和分片服务器,支持水平扩展,结合复制集保障高可用性,适用于大规模生产环境。
364 1
|
10月前
|
SQL 关系型数据库 数据库
【YashanDB知识库】OM仲裁节点故障后手工切换方案和yasom仲裁重新部署后重新纳管数据库集群方案
本文介绍了主备数据库集群的部署、OM仲裁故障切换及重新纳管的全过程。首先通过解压软件包并调整安装参数完成数据库集群部署,接着说明了在OM仲裁故障时的手动切换方案,包括关闭自动切换开关、登录备节点执行切换命令。最后详细描述了搭建新的yasom仲裁节点以重新纳管数据库集群的步骤,如生成配置文件、初始化进程、执行托管命令等,确保新旧系统无缝衔接,保障数据服务稳定性。
|
6月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
311 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
10月前
|
消息中间件 缓存 NoSQL
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
|
10月前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
11月前
|
SQL 存储 关系型数据库
【SQL技术】不同数据库引擎 SQL 优化方案剖析
不同数据库系统(MySQL、PostgreSQL、Doris、Hive)的SQL优化策略。存储引擎特点、SQL执行流程及常见操作(如条件查询、排序、聚合函数)的优化方法。针对各数据库,索引使用、分区裁剪、谓词下推等技术,并提供了具体的SQL示例。通用的SQL调优技巧,如避免使用`COUNT(DISTINCT)`、减少小文件问题、慎重使用`SELECT *`等。通过合理选择和应用这些优化策略,可以显著提升数据库查询性能和系统稳定性。
529 9
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
362 1
|
11月前
|
SQL 关系型数据库 数据库
【YashanDB 知识库】OM 仲裁节点故障后手工切换方案和 yasom 仲裁重新部署后重新纳管数据库集群方案
本文介绍了一主一备数据库集群的部署步骤。首先在OM节点上传并解压软件包至指定路径,随后通过调整安装参数、执行安装和集群部署完成数据库设置。接着,在主备节点分别配置环境变量,并查看数据库状态以确认安装成功。最后,针对OM仲裁故障提供了手动切换方案,包括构造故障场景、关闭自动切换开关及使用SQL命令进行主备切换,确保系统高可用性。
|
5月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
424 2

推荐镜像

更多