我爱自己托管。我运营一个Docker托管平台,让每个人都能轻松自己托管。我觉得每个开发者都应该学会如何部署自己的东西。
但即使是我也有限度。但改为更自然的说法为:但即使是我也有极限。
有一个界限,自托管从“赋能”变为“你为什么要这么折腾自己”。不是所有的东西都需要运行在你的5美元的VPS上。有些事情最好交给云服务商,或者是交给别人,而不是你自己。有些事情最好别自己硬撑,交给别人就好。
所以这是我认为不应该自己托管的5件事,除非你是纯粹为了学习或你管理大陆。
1. 电子邮件服务器自己托管电子邮件就像在挫败感的奥运会上获得奖牌。让你的外发邮件能够顺利送达,就像在SPF记录、DKIM密钥、反向DNS和声誉评分这些黑魔法中穿行。稍有差池,你的邮件可能就会被直接送到Gmail的垃圾邮件文件夹,更糟糕的是,邮件可能会被默默拒收。
无论你的Postfix配置多么好,如果没有多年的信誉积累和暖机IP,你将会遇到很多麻烦。直接使用Postmark、Mailgun、SES或其他类似的服务吧。到时候你会感谢自己的。
除非你只是给自己发送一些可爱的项目状态邮件,否则这是为真正应用做的一个非常糟糕的决定。
2. 对象存储服务S3 克隆如 MinIO 和 SeaweedFS 使得自己搭建这种对象存储看起来很简单。当然,启动它们确实简单。但确保数据的安全和持久性?那完全是另一回事。
对象存储的主要目的是保证数据持久性。AWS 的数据持久性达到了 11 个 9 的级别,这是有原因的。它们会在你从未接触过的数据中心之间进行复制。而你呢?你可能正在运行单节点的 MinIO,运行在 Hetzner 服务器上。一次硬盘故障就可能让你后悔莫及。
还有规模经济效应。超大规模服务商可以将对象存储的价格压得很低。而你却做不到像他们那样。
3. 自己的 CDN.有些人自己建CDN。我不确定他们为啥要这么做,但这样的人确实有。他们在两个地方开服务器,然后叫它全球边缘网络,然后就不明白为啥南美洲的延迟这么高。
CDN 并不仅仅是缓存版的 Nginx。它们包括路由、缓存、清理、TLS 终端、源服务器、防护措施、故障转移等功能,还有数十个边缘节点。你不可能在周末项目中简单模仿这些功能。
只需使用Cloudflare、CloudFront或Bunny。你的用户会超级喜欢你。
4. 包注册表懂了,我知道了。想自己掌控供应链。不信任Docker Hub。想有自己的私有镜像仓库。
但除非你真的是像Sliplane这样的平台提供商,否则你可能不需要自己托管注册表。DockerHub、GitHub容器注册表以及云提供商的注册表存在是有道理的。它们工作速度快,而且当磁盘空间不足时,它们不会因为磁盘空间不足而丢失层。
你可以自己托管这个,但最好还是不要这么做。
第5. DNS服务器:这事儿简直该算犯罪。
除非你在自己构建TLD(你甚至能做到这一点吗?)或为了娱乐研究DNSSEC,否则完全没有必要在生产环境中运行自己的DNS服务器。
从一家信誉良好的公司购买你的域名。使用托管的DNS服务。他们会处理冗余、延迟、任播,以及DDoS攻击防护,这样你就不用担心这些问题了。
你的萌萌的BIND9容器在僵尸网络攻击下无法存活。一旦DNS宕机,你的整个网络栈都会跟着崩溃。
最后的感想我说的并不是自我托管不好。恰恰相反的是。但是作为一个好的工程师,知道什么时候不该自己动手做也很重要。
可以说,作为服务使用时,它们既便宜又快捷且可靠,但如果没有足够的专业知识自行托管,它们就会变得一团糟。
好好利用你的时间,自己动手搞好玩的部分。其他部分就交给那些已经花了十年时间弄清楚的人吧。
祝好
Jonas,Sliplane联合创始人之一Sliplane
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章