意外顺利的服务迁移,谈一谈云服务
前言
随着升学流程的尘埃落定,生活终于开始步入下一阶段。在长达数月迷茫的摸索后好像终于能腾出空来思考一下自己的人生……打住!我不是来说这个的!
一个平静的午后,我正坐在图书馆享受久违的轻松阅读时光。手机的震动声提醒我收到了一封邮件,心里下意识有些紧张。随即平复下来,问题不大,这种时候不会是什么要紧事。解锁屏幕,下拉通知栏,哦,原来是阿里云,那个一有风吹草动就会给我发邮件的云服务商。服务商通知我服务器快到期了,我随手在日程里填上一条 to-do ,晚上回去续个费。
怎么说也是两三年的“成熟”用户了,续费流程还是比较熟悉的,搜索“学生机”……什么?原活动上个月下线了?!我的心情 be like
这玩笑多少是开得有点大了,在长达数小时工单的来回拉锯后(阿里云售后回复速度能不能再慢点?)我明白按原价续费原机器保留原 ip 是妥妥不可能了。一瞬间的烦躁后我很快冷静下来。首先,让我原价续费是绝对绝对不可能的,阿里云你不如去抢钱;其次就是迁移服务,服务器的网页应用和数据库里的数据都需要转移,跟 ip 绑定的链接需要修改,域名重新解析问题倒是不大。这条 to-do 并不能轻松划去,需要腾出一个空闲且心情良好的时间段梳理。也正好趁此机会回顾一下我使用的云服务,来个彻底的“大整顿”
OneDrive
因为不想太快面对自己写的老项目(谁知道会遇到什么乱七八糟的 tech debt ),我决定先从内部开始整理工作。仔细想想用 OneDrive 同步文件也有两年多了,除去刚开始因为微软服务器架设位置的原因,总是需要架梯子才能同步上,后来设施跟上了,问题也就解决了。在正常使用 OneDrive 的过程中,我的体验可以说是十分美好:Office 全家桶编辑的文件可以自动保存到云端;出门时锁上电脑,带上 surface 就能继续编辑文件;在路边等车也能直接用手机把课件分享给同学;哪天主力机突然报废怎么办?抱歉还没遇到过,反正只要换台电脑就能重开,丝毫不影响手头的进度
比起百度网盘,OneDrive 在 PC 上的融入感更强,更不要说百度网盘客户端打开个文件夹有时候还要卡卡卡一会儿。在所有的网盘中,大概只有出身于 MS 的 OneDrive 可以做到在 Win 平台上如此适配了吧
噩梦开始
但一切当然不会十全十美,OneDrive 这个速度嘛,个人体验只适合不太大的文件,且极其不适合带有大量杂七杂八配置文件的工程项目!注意,是极其不适合。下面举几个🌰
- 某年某月某日,我开始接触 Vue 。Vue 项目通常会引入大量模块和很多配置文件、组件等。成千上万的小文件分分钟就能把 OneDrive 的同步队列塞得满满当当,长时间内处于不可用状态还占用系统内存。当然如果你觉得麻烦关闭了 OneDrive,而又没有完全关闭(亲测 OneDrive 在点击退出后进程并未结束),那么在下次同步时可就要小心了👇
- 又是一次重新同步,这回是我的 Hexo 博客源代码。看着 OneDrive 提示的修改从 7w+ 降回三位数,我欣慰地舒了口气。不料提示接踵而至:同步过程中出现同名文件,无法合并,已帮您同时保留两个副本。是的,这下子我在没同步的几周内所有改动过的文件都变成了两份,而且还是本地的最新版被重命名成文件名+机器名。问题是谁在给前端项目 debug 的时候会把每个改动的地方都仔仔细细记下来呢?🙄
综上,OneDrive 真的不适合干这等活:“开发项目请往他处,巨型文件勿入斯门”
换个思路,重新出发
既然已经在实践过程和经验教训中知道了 OneDrive 适合和不适合干的一些工作,在这次同步和清理文件之后,就需要重新安排自己的文件分类了
Office 全家桶的产品基本上还是放 OneDrive 里最好(尤其是 word 和 ppt ),OneDrive 似乎可以算是课件、通知文件等各种资料的完美归宿
能用 git 进行版本控制的项目就直接从 OneDrive 里摘出去,在实时性和可用性之间总得有 trade-offs
工具笔记之类知识整理相关全面转向 Web App
对于被摘出 OneDrive 而又有同步需要的,考虑使用百度网盘进行周期性同步
从存储的角度有句老话怎么说来着?多级存储同步体系!
在我从前的思维方式下,总认为把文件按主题归类是最佳选择,一个课程的文件夹就得存着课件、课后习题、参考资料、课设等等一大摞。在某些课程中,这种方法确实也是高效且可行的,但在某些情况下又会导致完全不可用。从主题分类到主题+类型混合分类的转变,希望这回能走得更远一些
云服务器搬家
在 DDL 的步步紧逼之下终于还是不得不面对服务器的数据迁移。想着将数据库从服务器中彻底解耦,这次尝试了新产品 —— 云数据库。其实之前给 Typora 配置图床的时候就用过单独的 OSS 服务,我觉得这种将不同功能分散的思想真的很不错
对象存储OSS可以用来存图片、音视频一类的文件,上传之后会返回一个 url 地址。尤其适合一些只要传一次的归档文件,和 markdown 结合简直完美。每个具体的对象都被分离了出去,文本只保留最原始的内容和索引链接,简洁之美!
至于云数据库,阿里云提供的云数据库确实比自己在云服务器配置数据库方便多了!新建账户和数据库授权基本都能图形化操作,再也不用因为记不清命令而反复折腾了
在迁移数据的过程中居然没有碰到 bug,令我的心情十分愉悦😁
- 先是用 Navicat 给数据库搬家,MariaDB 无痛迁移到 MySQL8.0
- 合并两台服务器上的 api :因为很多可视化项目写的时候出于加载速度和二次处理等角度考虑直接从文件读数据,很少从数据库直接读,所以本身就没几个接口
- 至于 ip 链接也只有主页一个地方需要修改,其余都直接和域名绑定了
- 多给 Apache 开一个虚拟主机已经是常规操作了(前阵子做反向代理倒还研究了好一会儿
- 最后重新解析一下主域名
- done!停机时间四舍五入约等于没有!
有了这次的经验,等下一次服务器到期需要迁移数据,应该就不会太烦躁了