世界上没有技术驱动型公司?
有没有
我这俩礼拜都在忙一件事,就是把 Blog 相关的资源服务 “从七牛云迁移到阿里云”。
我公司对接的 PM 是负责 kodo 产品(七牛云存储)的,在最近深度体验了 Aliyun 的 OSS 相关产品后,我深深感觉到了自家产品的不完美和止步不前;于是我决定把用了两年的 CDN + 存储业务从七牛云迁移到 Aliyun。
一开始只是想简单做个迁移,过后又顺带把之前未曾考虑过的 OSS 备份、机密文件备份、CDN 优化都实施了一遍;因为,在 Aliyun 的后台,你感觉做这些事太 “自然” 了。
一开始迁移的诉求很简单:我期望我对一个系统的控制力是内聚的、低熵的、不要太分散,最好在一个页面、一个控制台就可以全部管理,而不是要跳去很多不同的平台、子系统,简单说就是 “全家桶” 用着确实很爽。
在许多产品的设计里,这种 “完美的界限感” 都体现为很普通、简单的设计:比如云存储与 CDN,从内部看,这是完全两个不相关的产品,仅仅是各自提供了 “可以与其他产品搭配使用” 的能力, 但对于用户来说,几乎没有用户拿平台分配域名单独使用云存储的,但也有我这种单独拿一个存储空间当私密网盘用的人... 这时候就很需要系统具有 “单独使用简单易用、搭配组合清晰明了” 的设计意识。
这种意识最适合的表达往往只是一个 Tips、一个按钮、一个 Link,千万不要复杂的 iFrame、复杂的页面说明、冗余的重复实现。
之前的博客云存储我分为三个模块:
Backup
上礼拜某天,我需要下载 Backup 内的某个压缩包文件,结果发现没有入口... 在和 PM 唇枪舌战了一上午后,得到这么个信息:由于用户没有为存储空间绑定自定义域名,故用户不可下载文件,用户仅可执行写、删操作; 之前七牛包括其他云厂商都是为每个 Bucket 配有系统分配域名的,现在 Aliyun 外的大部分厂商都下架了,原因是:“若存储资源涉及违法犯罪信息,则域名/服务提供商为第一负责人”。
如果这次我需要下载的数据是某个数据库的备份,需要紧急使用呢,等工单回复吗?深深的不安感...
其实这个问题不是不能解决,看阿里云是怎么干的:
目的是限制传播,那就每次仅可临时访问,没有永久链接的存在,再严格点,我们可以让每个临时链接只允许被访问(下载)一次,这样总可以吧。
资源合并
为某个很次要、单一的基础业务单独开一个子域名是一件比较奢侈的事情,还好我都是个人项目。 之所以有 https://gravatar.surmon.me 这个域名的存在,是因为我一直不知道一个 Bucket 完全有能力做到自定义(回源 + 存储)规则,更不知道 Aliyun OSS 是已经实现的。
在使用迁移工具完成 Static 的迁移后,我才发现,OSS 里的 Bucket 的镜像回源并不是与存储互斥的单一业务,你完全可以做到某个 Bucket 里存储一大堆资源,并限定 /xxx 目录映射为 xxx.com 的反代; 这很棒,所以现在, https://static.surmon.me 是 Static 的访问入口,当 Static 的数据有变动时会自动刷新/预热 CDN,而 https://static.surmon.me/avatar/ 是 gravatar.com 的镜像服务,且 Gravatar 相关的数据每 7 天会自动更新一次。
这个业务的合并,节省了一个域名资源,使消费和统计信息集中,CDN 和存储空间之间的关系也变得更加自动化了,主要得益于 Aliyun OSS 的 “自定义回源规则” 及 “Bucket 生命周期规则” 的灵活。
另外,虽然这一切都是要钱的,但是根据我对自己业务最近一年消费的回溯统计,阿里云计费的抹零机制会把这些消费都归零... 但我还是买了个 10 块钱的 CDN 大陆流量资源包,100G 轻松够用了(我的 CDN 开的是全球加速)。
很久前,在经历一次误操作失误后,我才意识到备份的重要性,我原有的备份系统大概如此:
今天,我才突然意识到 OSS 里的数据也是 “用户数据” 的一部分... 如数据库般的存在。
一开始我想的是,把 OSS 作为云存储网关挂到 ECS 上,每周快照生成前,都把 OSS 里的东西拉一遍,让快照自己去打包就行了,这个方法就是有点不易操作、耗流量、费钱费事。 接着,很快我就发现了 Aliyun 有他自己的备份业务... 还支持的挺全面的,于是乎我的备份就又简单而清晰地变成了这样:
ECS 文件备份的意义是弱化 ECS 快照的重要性,这样如果我改错了什么配置文件,就不再需要回滚镜像了,恢复下几个重要文件的备份就可以。
CDN 部分纯粹是业务的优越性了,Aliyun 的 CDN 业务真的很精细,支持 quic(HTTP3)、自定状态码处理、Heade 头、特定路由(可正则)处理、缓存、TLS 版本、资源优化、IPv6、带宽限制... 基本上满足了绝大部分对原生 WebServer 的控制需求。
而我能用到的最直观的效果就是,我可以控制 https://cdn.surmon.me 永远只能访问静态资源了,以前我是没有做到的。
Aliyun 的业务专业度让我觉得这家公司真是人多钱也多... 自家精简又裁员的业务可能要被慢慢吞噬消灭了...
除了 “老用户与狗不得入内”,每年打折季对新用户都还算良心,其实我自己的机器就是两年前的双十一下单的,2核 4G 的共享型,当时买了三年花了 1.5k 不到,现在续费要 2k... 每家都一样,吃准了你的迁移成本,疯狂捞用户。
明年到期时,我准备把机器降级了,这个机器对于一个 Blog + 一堆垃圾小程序来说,算高配了;还有一个原因是,CDN、存储、云数据库... 等这些业务已经很明显地降低了主站的运行成本,我也过了那个 “无脑升配置” 的阶段啦。
好了,点下面的图片!!如果你也只是想跑一个像我这样的自建 Blog,就买那个86元/一年的就够了,真有其他业务需求再升配就好了,但一定要多买几年啊!!!续费很贵!!!
刚才给同事推荐了一把,才发现,原来更划算的是这款!!真的,就是我去年买 ¥1600 买的续费要 ¥2000 起的,现在只要 ¥799.00/3年。。。还是 3M 带宽! 我 TM。。。
11-12 更新:双十一已经结束,谁想到这阿里云鸡儿贼地像天猫某男装品牌一样又返场了。。。
所以,我强烈建议作为新用户的你一定要先领红包(官方发的),再下单!点击下面图片就可以了~
祝折腾愉快
sure
这就能回复了?
大佬,你太强了,向你学习,目前正在学习大佬的源码 😜
太强了
😃跟大佬学习
回复:
跟大佬学习 !
用了大佬的三段代码部署, 感觉不适用其他人= =
6
回复:
-.-
回复:
回复!
高手,问你个事,你的数据库是自己在服务器上架设的还是用的阿里云的,我用阿里云的MYSQL数据库,网站速度慢,所以自己在服务器上架设的数据库。
回复:
自建
回复:
你的网站速度真快,自建的数据库,你备份怎么做的,我用的是navicat软件备份,备份时,网站会卡。
回复:
数据库的备份没有使用工具,是自己写有脚本,把所有数据 dump 出来后打包传到 OSS,代码在 nodepress 项目的 services 中。
回复:
谢谢。
感谢
回复:
广告有什么好谢的
👍
interesting
have a try^_^
回复:
看起来不错
左侧菜单栏在高度不够的情况下无法滚动,还有的你网站好卡,风扇都开始响了
最后面的图片访问不了咯~🌚
回复:
已更
回复:
厉害了
谢谢分享