当前位置: 首页 > web >正文

五件应该被禁止自行托管的事情(5 Things That Should Be Illegal to Self Host)

李升伟 编译
在这里插入图片描述

我爱自行托管。我运营一个Docker托管平台,让每个人都能自行托管。我认为每个开发者都应该知道如何部署自己的东西。

但即使是我也有限制。

当自行托管从“赋权”变成“你为什么要这样折磨自己”的时候,就到了一个分界点。并不是所有事情都需要运行在你的5美元VPS上。有些事情最好留给超大规模企业或其他人,而不是你自己。

所以这里是我的黑名单:五件在我看来应该被禁止自行托管的物品,除非你纯粹是为了学习或者你在运营自己的大陆。

1.邮件服务器

自行托管邮件就像试图在挫败中赢得奥运金牌一样。可靠地发送出站邮件就像是包裹着SPF记录、DKIM密钥、rDNS和声誉分数的黑色魔法。一旦出错,你的邮件就会进入Gmail的垃圾邮件文件夹或者更糟的是悄无声息地被丢弃。
无论你的Postfix配置有多好都无关紧要。如果你不是已经在有多年声誉的热门IP上运行,你会遇到麻烦的。只需使用Postmark、Mailgun、SES或其他类似的服务即可。将来你会感谢自己的决定。

除非你只是给自己发送可爱的项目状态更新邮件,否则这可能是为真实应用做出的最糟糕的决定之一。

2.对象存储(Object Storage)

在这里插入图片描述

像MinIO和SeaweedFS这样的S3克隆工具让自托管对象存储看起来很容易实现。当然启动它们是很容易的。但是保持数据安全和持久性?那完全是另一码事。

对象存储的全部意义在于持久性。AWS有11个9的持久性是有原因的——他们会在数据中心之间进行复制(这些数据中心你可能永远也看不到)。而你?你可能在一个Hetzner盒子上运行着一个单节点MinIO实例——离永久遗憾只有一步之遥了。

还有规模经济的问题。超大规模企业可以负担得起将对象存储做得非常便宜——而你则不能做到这一点。

3.你自己的CDN(内容分发网络) AWS CDN

在这里插入图片描述

有些人正在构建他们自己的CDN——我不确定为什么他们会这样做,但他们确实存在了人会将服务器部署在两个位置并称之为全球边缘网络,然后 wonder为什么他们的延迟在南美洲那么糟糕。 CDN不仅仅是nginx加上缓存;它们涉及到路由、缓存、清除、TLS终止、源站保护、防护盾牌以及数十个边缘位置等复杂问题。 你不可能在一个周末的项目中伪造这一切。 只需使用Cloudflare或CloudFront或Bunny即可。 你的用户会因此而爱你!

4.软件包注册库(Package Registries)

我明白你们的意思:你们想要拥有自己的供应链;你们不相信Docker Hub;你们想要一个私有的注册库。 但除非你是像Sliplane这样的实际平台提供商, 否则你可能不需要自托管你的注册库。 Docker Hub, GitHub Container Registry以及云服务提供商的注册库存在都是有原因的:它们工作良好, 速度快, 而且不会在你磁盘填满时丢失层。 你可以自托管这个软件包注册库, 但你真的需要这么做吗? 可能并不需要吧!

5.DNS服务器(DNS Servers)

这件事简直应该是一种犯罪行为才对啊!

除非你在构建自己的顶级域名(你能做到吗)或者在娱乐目的下深入研究DNSSEC领域, 否则在生产环境中完全没有理由运行你自己的DNS服务器。 从值得信赖的人那里购买你的域名; 使用管理型DNS提供商; 他们将处理冗余性、延迟任何播送以及DDoS保护等问题, 这样你就不用操心了。 你那可爱的小BIND9容器是不可能经受住僵尸网络的攻击的; 而且当DNS崩溃时, 整个系统也会随之崩溃下去!

最后的话:

我不是说自行托管是坏事;相反,我很喜欢。它的一部分成为优秀工程师的部分就是知道什么不应该自己搭建。
这些五项内容都是经过实战检验的基础设施层,当作为服务来使用时既便宜又快又可靠,但在没有专业知识的情况下自我搭建则会陷入混乱之中。合理利用时间吧,把有趣的事情留给自己,把其他事情留给那些已经花了十年时间把它做对的人吧!

干杯,

Jonas, Sliplane联合创始人

原文链接:https://dev.to/code42cate/5-things-that-should-be-illegal-to-self-host-3d21

http://www.xdnf.cn/news/6475.html

相关文章:

  • 【MySQL】基础知识
  • 线程的两种实现方式
  • 云服务模型深度解析:IaaS、PaaS 和 SaaS
  • DevExpressWinForms-TreeList-基础概念介绍
  • 《Java 大视界——Java 大数据在智能电网分布式能源协同调度中的应用与挑战》
  • 面试题:请解释Java中的垃圾回收机制(Garbage Collection, GC),并讨论不同的垃圾回收算法及其优缺点
  • 涨薪技术|0到1学会性能测试第65课-SQL捕获阻塞事件
  • HashSet
  • python打卡打印26
  • Github 2025-05-15 Go开源项目日报 Top10
  • 基于IBM BAW的Case Management进行项目管理示例
  • 单物理机上部署多个TaskManager与调优 Flink 集群
  • 【GESP】C++三级模拟题 luogu-B3849 [GESP样题 三级] 进制转换
  • MCP Server On FC 之旅2: 从 0 到 1 - MCP Server 市场构建与存量 OpenAPI 转 MCP Server
  • AWS Elastic Beanstalk控制台部署Spring极简工程
  • 小刚说C语言刷题—1088求两个数M和N的最大公约数
  • 动态规划-状态压缩DP
  • Spring 框架 JDBC 模板技术详解
  • Apache JMeter API 接口压测技术指南
  • Kafka如何实现高性能
  • 2025长三角杯数学建模C题思路分析:遇见“六小龙
  • VSCode CMake Debug
  • 【docker】--数据卷挂载
  • Unity3D开发AI桌面精灵/宠物系列 【六】 人物模型 语音口型同步 LipSync 、梅尔频谱MFCC技术、支持中英文自定义编辑- 基于 C# 语言开发
  • 如何安全配置好CDN用于防止DDoS与Web攻击 ?
  • 全面解析机器学习与深度学习中的模型权重文件格式与应用场景
  • 解决 Antd 日期组件国际化失败或者 TypeError: clone.weekday is not a function 问题
  • VSCode CMake工作流
  • Java并发编程:synchronized机制
  • Redis--基础知识点--26--过期删除策略 与 淘汰策略