深夜提醒

现在是深夜,建议您注意休息,不要熬夜哦~

🏮 🏮 🏮

新年快乐

祝君万事如意心想事成!

share-image
ESC

全面从阿里云迁移

阿里云的 CDN 和对象存储,我用了差不多十年。博客的图片、视频,还有攒了多年的音乐,都放在那个存储桶里——八万多个对象,六十多 GB。

今年四月,我面试了阿里云一个和 CDN 相关的岗位,最后对方给出的理由是:年龄。

两件事凑在一起,我把用了十年的东西整体迁走了:域名全部从他们的 CDN 切走,对象存储正在清,明年服务器到期也不再续费。

全面从阿里云迁移

一、别的理由我都能接受,唯独”年龄”不行

面试本来就是双向选择。你完全可以说我技术栈不匹配,可以说岗位方向变了,可以说我学历不亮眼,甚至可以直接告诉我”内部已经定人了”——这些我都能接受,因为它们是判断。

但”年龄大了”不是判断,是筛选,它和我能不能把活干好没有半点关系。

更让我不舒服的是那个落差:我实实在在付了很多年的钱,CDN 和对象存储年年续费,在我看来是老客户,最后换来的就是这么一句理由。我不要求谁道歉,我能做的只是调整自己的技术选择——这也是这篇文章唯一的动机。

二、一篇 2019 年的旧文,被内容安全拦了

除了人,还有规则。

我 2019 年写的一篇文章,被内容安全判定为问题内容,页面没法正常访问。那篇写的都是自己的生活,不涉及任何技术风险,安安静静放了好几年,某天突然就不合格了。

平台要合规,我理解,也从没想过绕过任何一条规则。但当一次正常写作的代价变成”反复申诉、改写、还不确定什么时候又被判定”,这个平台对我的效用就非常有限了。规则我改不了,能改的是我的东西存在哪儿。

三、迁走其实并不难,我做了什么

真正的迁移只花了几个晚上,前提是:你得有一台常开的机器,以及一条能回家的网络通道。我的做法分四层。

存储分两套。 音乐一套,图片、视频、文档一套,物理上分开存放,互不影响。迁移时先把对象按前缀整体拉回本地,逐条比对键列表,确认本地是完整镜像、既不缺也不多,再去删云端的对象。这一步不能图快——对象存储没开版本控制,删错了就真的没了。事实上第一轮比对就抓出两百多个”只在云端、本地没有”的文件,如果当时直接删,那些东西就丢了。

取文件要带签名。 静态文件由非特权的 nginx 提供,只有带着有效时效签名的 URL 才能取到文件;签名由一个很小的 Python 服务签发,两者都用用户级 systemd 托管,开机自启。这样就算链接被人转出去,过了有效期也就失效了。

入口复用现有的公网服务器。 公网这边不新买机器,用已经在跑的那台做反向代理,经内网隧道回到家里的机器;域名解析全部交给 Cloudflare 管。完整链路是:域名 → Cloudflare → 公网入口 → 内网隧道 → 家里的机器。

算一笔账。 原来最大的开销是对象存储的外网出流量,按 GB 计费,忙时单价并不便宜。迁完之后这部分变成家里宽带的固定月费,存储是自己硬盘的,签名规则是我自己定的。唯一逃不掉的是迁移时的一次性出网流量费,几十 GB 也就几块到十几块钱,比起长期的账单可以忽略。

四、自建的代价,以及我不建议谁这么做

迁完不是万事大吉,我更想说的是代价。

家里断网、或者那台机器关机,博客的图片和音乐就打不开。这是自建最硬的代价,接受不了就别自建。

维护责任也全部转移到我这边:证书、签名、备份、监控,原本都属于云厂商”服务”的一部分,现在都是我自己的活。所以我又写了一个每天跑一次的体检脚本,检查域名解析、反代上游解析、证书文件是否存在、nginx 配置语法是否通过,有问题就提醒我。

写这个东西的起因很具体:有一条上游域名的解析记录早就被删了,而 nginx 配置里还写死着它,导致配置检查一直失败,那台机器九天都没能正常 reload——这种坑云厂商不会替你踩,只能自己盯。

所以什么时候不建议自建:如果你只是放几张图、偶尔访问,云上确实更省心,别为了情绪去做运维。只有当你本来就有常开的机器、并且真的被平台规则卡住了,迁移才划算。

五、明年,服务器也不续了

迁移不是一次性的动作,而是一次选择:把我能控制的那部分拿回来。

现在 CDN 已经切干净,对象存储正在清,文件库已经完整同步到自己的机器上;明年服务器到期,我不再续费。

说到底就一句话:技术方案随时可以换,被尊重这件事不能省。

文章作者:阿文
文章链接: https://www.awen.me/post/4b8c1e6d.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客

评论

0 条评论
😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘 🛑📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭 ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️ 🈯💹❇️ ✳️🌐 💠Ⓜ️🌀 💤🏧🚾 🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️
加载中...

留言反馈

😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘 🛑📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭 ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️ 🈯💹❇️ ✳️🌐 💠Ⓜ️🌀 💤🏧🚾 🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️