diff --git a/_drafts/Article/Translation/new-internet.md b/_drafts/Article/Translation/new-internet.md index 126381f..f5f73e4 100644 --- a/_drafts/Article/Translation/new-internet.md +++ b/_drafts/Article/Translation/new-internet.md @@ -1,9 +1,200 @@ --- title: The New Internet date: 2024-07-31T13:20:27.506Z -authorURL: "" +authorURL: "https://tailscale.com/blog" originalURL: https://tailscale.com/blog/new-internet -translator: "" +translator: "tianheg" reviewer: "" --- +_Avery Pennarun 是 Tailscale 的首席执行官和联合创始人。这篇文章的版本最初是在公司全员大会上提出的。_ + +我们不太在公共场合谈论 Tailscale 的宏伟愿景,以及我们真正存在的原因。通常我更倾向于关注现在存在的东西,以及我们接下来几个月要做的事情。未来可能会让人分心。 + +但越来越多地,我发现公司开始购买 Tailscale 不仅仅是因为它现在能做什么,而是因为它们期望它在未来能做大事。他们是对的!让我们换个角度看看大局。 + +但首先,让我们回到我们开始的地方。 + +## 老的 + +大卫·克劳肖的第一篇帖子,阐述了我们在二十年代末很久以前所做的事情,叫做《[记住局域网]((https://tailscale.com/blog/remembering-the-lan/))》,讲述了他在 1990 年代从事网络工作的经历。 + +我有坏消息:如果你还记得在 1990 年代使用局域网,你可能已经老了。在 Tailscale 这里,我们中有相当多的人记得 1990 年代的局域网。与许多其他初创公司相比,这是一个年龄差距。这个年龄差距使 Tailscale 不同寻常。 + +创业公司任何不寻常的地方都可能是优势或劣势,这取决于你如何利用它。 + +## 成熟 + +这是“老的”的另一种说法,但含义不同。 + +我是一个喜欢看到事物光明面的人。年老也有不利之处,比如我可能不能再像 1997 年编写我的第一个 VPN——隧道视觉(Tunnel Vision)时那样连续编码 40 小时。但年老也有优势,比如我们可能有足够的经验,第一次就做对事情,用更少的时间。有时候。如果我们幸运的话。 + +也许,你知道,如果你足够老,你已经看到技术周期轮回了几次,你开始看到一些模式。 + +那就是我们,我和 Davids,当我们开始 Tailscale 的时候。我们看到的是,自 1990 年代以来,很多事情都变得更好了。计算机的速度实际上快了数百万倍。现在可以成为程序员的人数是原来的 100 倍,因为他们不再只局限于 C++和汇编语言,而且现在有更多的人拥有某种计算机。再加上应用商店、支付系统、图形。所有这些都是好东西。 + +但是,事情也变得更糟了。许多对开发者来说曾经很容易的日常事务,现在变得困难了。这是出乎意料的。我没有预料到这一点。我原本以为到现在为止我可能已经失业了,因为编程会变得如此简单。 + +相反,技术行业已经演变成一个绝对的混乱局面。而且情况越来越糟,而不是变得更好!代码的复杂度现在如此之高,以至于我们认真考虑在其上使用LLMs,以便在难以理解的框架中编写难以理解的代码,这样我们就不必这么做了。 + +我们这些年长的人能看到这一点。 + +都是可以修复的。事情不必是这样。 + +在我能够告诉你我对未来的愿景之前,我必须告诉你我认为哪里出了问题。 + +## 不扩大规模 + +现在的程序员对成功没有耐心。他们在编写第一行代码之前就开始为十亿用户做计划。实际上,现在我们甚至在他们不知不觉中就训练他们这样做。他们所学的一切知识都围绕着扩展。 + +我们一直在陷入这个陷阱,可以追溯到计算机科学家开始教授大 O 符号的时候。在大 O 符号中,如果你使用不当,哈希表据说比数组快,几乎对于你想做的任何事都是如此。但实际上,情况并非总是如此。当你有十亿个条目时,也许哈希表更快。但当你只有 10 个条目时,它几乎从不是。 + +人们很难接受这个观点。他们一直在选择可以扩展的算法和架构,即使不扩展,不同的东西可能会快数千倍,而且也更容易构建和运行。 + +即使我自己也几乎不敢相信我刚刚说了数千次“更简单”,而且我并没有夸张。 + +我最近读了一篇文章,有人夸耀使用 Kubernetes 扩展到每月 50 万次页面浏览。但那是每秒 0.2 个请求。我可以用手机,在电池供电的情况下提供服务,而且大部分时间都会处于休眠状态。 + +在现代计算中,我们容忍长时间的构建,然后是 Docker 构建,上传到容器存储,以及程序运行前的多分钟部署时间,甚至在日志输出上传到您可以查看的地方之前还有更长的时间,所有这些都是因为我们被欺骗了,认为一切都必须扩展。人们对于部署到最新的初创容器托管服务感到兴奋,因为它只需要几十秒就可以推出,而不是几分钟。但在我 1990 年代的慢速计算机上,我可以运行一个 Perl 或 Python 程序,它在毫秒内启动,并每秒提供超过 0.2 个请求,并且立即将日志打印到 stderr,这样我可以一遍又一遍地编辑-运行-调试,每分钟多次。 + +我们是怎么来到这里的? + +我们来到这里是因为有时候,确实有人需要编写一个需要扩展到成千上万甚至数百万后端的程序,所以它需要所有那些……东西。而一厢情愿的想法让人们甚至想象最不起眼的仪表板有一天也可能变得非常受欢迎。 + +事实是,大多数事物都不需要扩展,也永远不会需要。我们为那些事物创建了 Tailscale,这样你就可以把时间花在真正需要扩展的事物上。那些占据了每个开发者 90%时间的长尾工作。即使是那些制造出能够扩展到数十亿用户的产品的公司的开发人员,他们大部分时间也都花在不需要扩展的事物上,比如仪表板和表情包生成器。 + +作为一个行业,我们把所有时间都花在了让困难的事情变得可能上,而没有花时间[让简单的事情变得容易](https://www.amazon.com/Learning-Perl-Making-Things-Possible/dp/1491954329)。 + +程序员们都陷入了困境。只要听听任何专业开发者的话,问问他们有多少时间是真正用来解决他们开始工作时设定的问题的,以及有多少时间是花在繁琐的开销上的。 + +这也是真的。我们在 Tailscale 的开发者体验比平均水平要好。但即便如此,我们大体上也有相同的体验。现代软件开发大多是繁琐的开销。 + +## 互联网 + +实际上,我们并没有将 Tailscale 视为一家网络公司。起初,网络并没有太多地涉及到其中。 + +实际上发生的事情是,我和大卫聚在一起,我们说,看。问题是开发者们一直在扩展他们不需要扩展的东西,结果他们的生活很糟糕。(对于大多数程序员,你可以想象这里的“用一把钞票擦眼泪”的表情包。)我们需要解决这个问题。但是怎么做呢? + +我们考虑了很多选择,和很多人进行了交谈,所有问题背后都有一个根本原因。那就是互联网。事情过去很简单。还记得局域网吗?但后来我们把局域网连接到了互联网,然后防火墙和攻击者越来越多,事情从那时起就一直在慢慢恶化。 + +当我们探索过度复杂性的世界时,其中大部分具有我们可能称之为没有本质复杂性的特点。也就是说,问题可以在没有复杂性的情况下解决,但出于某种原因,我们使用的解决方案无论如何都很复杂。例如,日志系统。它们只是将文本从一个地方流到另一个地方,但不知何故需要 5 分钟才能显示出来。或者编排系统:它们是程序,其唯一的工作是运行其他程序,Unix 内核已经很好地完成了这项工作,只需毫秒,数十年来一直如此。人们堆积了一堆乱七八糟的东西。但是这些乱七八糟的东西可以被移除。 + +除了网络。 + +你不能在没有网络的情况下构建现代软件。但互联网让一切变得困难。这是因为网络具有本质的复杂性吗? + +嗯,也许吧。但也许只有当你基于错误的假设构建它时,它才会变得复杂,这些错误的假设导致了错误的问题,然后你不得不去掩盖这些问题。这就是旧互联网。 + +而不是在 OSI 模型的最顶层添加更多层来试图隐藏问题,Tailscale 正在构建一个新的 OSI 第三层——一个新的互联网——基于新的假设,这些假设从一开始就避免了问题。 + +## 多米诺骨牌 + +如果我们修复互联网,一连串的多米诺骨牌可能会倒下,我们将达到技术进化的下一个阶段。 + +如果你想了解任何特定经济体系中的瓶颈,看看谁能够收取租金。在技术世界中,那就是 AWS。当然,苹果也在销售流行的笔记本电脑,但你可以选择购买不同的笔记本电脑或不同的手机。微软曾经是一切的守门人,但你不再有 Windows 的锁定,除非你选择这样。那些“网络是新的操作系统”的 2000 年代初的人们最终赢了,我们只是忘了庆祝。 + +但是解放并没有持续很长时间。如果你部署软件,你很可能要向 AWS 支付租金。 + +这是为什么?计算,对吧?AWS 提供可扩展的计算资源。 + +嗯,你可能会这么想。但是很多人以更便宜的价格出售计算资源。即使是中档的 Macbook,其 SSD 每秒可以处理的交易量是所谓的快速云本地磁盘的 10 倍或 100 倍,因为云服务提供商同时将那个磁盘卖给 10 个或 100 个人,同时向你收取全价。你为什么要支付过高的费用,而不是将你的关键任务网站托管在你的超快 Macbook 上呢? + +我们都知道为什么: + +## IPv4 + +位置,位置,还是位置。你因为云服务提供商的计算能力而支付昂贵的租金,因为你自己的计算机不在合适的地方成为一个真正的服务器。 + +它位于防火墙、网络地址转换(NAT)和动态 IP 地址后面,可能还有一个不对称的网络连接,这种连接的中断频率足以让你感到不安。 + +你可以修复网络连接。你可以重新配置防火墙,并通过 NAT 进行端口转发,我猜,如果你幸运的话,你可以支付给你的 ISP 一个过高的费用以获得一个静态 IP,也许还能获得一个冗余的互联网连接,我知道我的一些同事实际上在他们的车库里的架子上做了所有这些事情。但这一切都是很多工作,需要专业知识,而且它远离了你最初想要构建的愚蠢的仪表板或博客或猫视频网站。只需支付一个拥有所有 IP 地址和网络带宽的托管提供商,这要容易得多。 + +然后,如果你打算付钱给某人,而且你是一家严肃的公司,你最好从一些严肃的人那里购买,因为现在你必须在他们的设备上托管你的东西,这意味着他们可以访问……一切,所以你得相信他们不会滥用这种访问权限。 + +你知道吗,买 AWS 从来没有人被解雇过。 + +这是一个 IBM 的类比。我们过去常说,买 IBM 的产品没人会被解雇。我怀疑现在这已经不再是真的了。为什么不呢? + +## 摆 + +我拒绝说钟摆。 + +IBM 大型机仍然存在,而且可能永远都会存在,但 IBM 过去能够在商业计算的每个方面收取租金,现在他们不能了。当微软出现时,他们开始失去影响力,从集中式计算的神那里偷走火种,将其带回给使用每个桌子上、每个家庭中相对较小、功能不足的个人电脑的个人,运行微软软件。 + +我将构建第一个广泛分布的计算系统归功于微软,尽管所有早期的网络都是 sneakernet 的某种变体。 + +我认为我们可以达成共识,我们现在处于一个后微软、以网络为先的世界。整洁。这个世界是像 IBM 那样的集中式,还是像微软那样的分布式? + +\[当我以演讲的形式做这个时,我进行了一次投票:大约是 50/50\] + +所以,坏消息。钟摆又摆回来了。IBM 是集中化的,然后微软是分散化的,现在云+手机世界再次集中化了。 + +我们已经构建了一个庞大的集中式计算机系统,中间有几个大型服务提供商,以及我们桌面和口袋里的一堆哑终端。这些哑终端,甚至是我们的智能手表,按照 20 年前的标准,都是超级计算机,如果我们那样使用它们的话。但它们并不比 VT100 好多少。关闭 AWS,它们就都变成了砖头。 + +很容易让我们自己误以为整个系统是分布式的。是的,我们构建了花哨的分布式共识系统,我们的服务器有多个实例。但所有这些都在云服务提供商上集中运行。 + +这并不新鲜。IBM 在 20 世纪 60 年代就在进行多核计算和虚拟机。现在又是同样的事情,只是多了 50 年的摩尔定律。我们仍然有一个大垄断,可以向每个人收取租金,因为他们是唯一真正重要事物的看门人。 + +## 操作系统 + +抱歉,只是开玩笑。 + +连接性。 + +每个人的观念还停留在 90 年代,那时操作系统很重要。这就是微软如何从 IBM 那里偷走火种并统治世界,因为编写可移植软件非常困难,如果你想...互联...一个程序到另一个程序,如果你想让事情在任何程度上兼容,你必须在同一台计算机上运行它们,这意味着你必须标准化操作系统,那个操作系统是 DOS,然后是 Windows。 + +网络打破了那个垄断。现在 JavaScript 比所有操作系统加起来都重要,而且有一个新元素控制着两个程序是否可以相互交流:HTTPS。如果你可以从一件事物到另一件事物使用 HTTPS,你就可以互联。如果你不能,那就别想了。 + +## 证书 + +HTTPS 本质上是一个集中式系统。它有一个客户端和一个服务器。一个哑终端和一个执行工作的东西。服务器有一个静态 IP 地址、一个 DNS 名称、一个 TLS 证书和一个开放的端口。客户端没有这些东西。如果所有的客户端都消失,服务器可以继续做它想做的事情,但如果服务器消失,客户端就什么也做不了。 + +我们并非有意来到这里,主要是由于路径依赖。我们有安全问题和 IPv4 地址短缺,所以我们增加了防火墙和 NATs,因此连接变成了从客户端机器到服务器机器的单向连接,所以在客户端放置证书没有意义,现在有 10 个不同的原因客户端不能成为服务器,每个人都习惯了,所以我们围绕它设计一切。哑终端和集中式服务器。 + +一旦这种情况发生,当然有公司出现来拥有中心辐射型网络的中心。AWS 在这方面做得比其他任何人都好,公平公正。总得有人这么做。他们赢了。 + +## Taildrop + +好的,快进。我们在过去 5 年中一直在使 Tailscale 成为解决这个问题的方案。每个设备都有一个证书。每个设备都有一个 IP 地址和一个 DNS 名称以及端到端加密和身份,并且可以安全地绕过防火墙。每个设备都可以成为对等体。我们所有操作都没有增加任何延迟或开销。 + +那就是新互联网。我们建造了它!它是未来,只是目前分布不均。对于使用 Tailscale 的人来说,我们已经剔除了 10 层无意义的东西。这就是为什么开发者一旦理解了它,就会如此本能地反应。Tailscale 让互联网按照你原本认为的互联网工作方式运行,在你了解互联网如何工作之前。 + +我喜欢[以 Taildrop 为例来说明这一点所实现的可能性](https://tailscale.com/blog/2021-06-taildrop-was-easy)。Taildrop 是我们在规模还很小的时候花了几个月时间开发的小功能。我们应该花更多时间打磨,使其更加易于使用。但在其核心,它是一个演示应用程序。只要你已经有了 Tailscale,Taildrop 就只是一个 HTTP PUT 操作。发送方向接收方发出一个 HTTP 请求,说“这是名为 X 的文件”,然后发送文件。就是这样。这是世界上最显而易见的事情。你为什么要以其他方式来做呢? + +嗯,在 Tailscale 之前,你没有选择。接收器是另一个客户端设备,而不是服务器。所以它在防火墙后面,没有开放的端口,也没有身份。你唯一的选择是将文件上传到云端,然后再下载它,即使发送者和接收者在同一个 wifi 上并排。但这意味着你要为网络出口、存储和运行任何服务器程序的 CPU 时间支付云费用。如果你上传了文件,但没有人下载它,你需要一个规则来决定何时将其从存储中删除。而且,即使你根本不使用它,你也要支付费用以保持服务器在线。此外,除非加密文件,否则云员工理论上可以访问文件。但你不能在发送者和接收者之间交换加密密钥的情况下加密它。接收者怎么知道有文件在那里等待接收呢?我们需要一个推送通知系统吗?每个客户端平台都需要吗?等等。层层叠叠的垃圾。 + +所有这些垃圾意味着要向云服务提供商支付租金。传输文件——人们在互联网上做的第一件事之一,通过 FTP 免费进行,现在必须付费,因为总得有人支付那笔租金。 + +使用 Taildrop,它不需要花钱。并不是因为我们慷慨地耗尽我们的银行账户来使文件传输免费。而是因为[成本开销完全消失了](https://tailscale.com/blog/free-plan),因为它不是建立在同一退化的互联网上,其他人一直在使用。 + +## 新互联网 + +Taildrop 只是一个例子,一个微不足道的例子,但它是整个类别程序存在性的证明,仅仅因为 Tailscale 的存在,这些程序可以变得简单 10 倍。 + +多米诺骨牌效应始于连接性。缺乏连接性是我们得到中心化的原因,而中心化则是我们为每个小程序支付租金的原因,也是一切变得缓慢、繁琐、复杂且难以调试的原因,就像 IBM 批处理作业一样。我们即将开始让这些多米诺骨牌倒下。 + +对这些可能性的一瞥是为什么我们的用户对 Tailscale 感到兴奋,比他们对任何 VPN 或代理都感到兴奋,因为我们的 VPN 下面有一些东西是其他地方无法获得的。我们正在移除一层又一层又一层的复杂性,使您更容易地工作在您最初想要工作的事情上。不是每个人都看到了,但他们会的。当他们这样做时,他们将能够发明我们在旧的集中式世界中无法想象的东西,就像分布式计算的 Windows 时代使大型机上无法想象的事情成为可能。 + +但有一个问题。如果我们想要解开连接性的乱麻,那么这种连接性必须适用于... + +## 每个人 + +将会有一个全新的拥有者和非拥有者的世界。在 1970 年,你拥有或没有大型机,1995 年你拥有或没有互联网,而今天你拥有或没有 TLS 证书,明天你将拥有或没有 Tailscale。如果你没有,你将无法运行仅在后 Tailscale 世界中工作的应用程序。 + +如果使用 Tailscale 的人不够多,就没有人会开发那些应用程序。这就是所谓的“[先有鸡还是先有蛋](https://apenwarr.ca/log/20201227)”的问题。 + +这就是为什么我们公司的战略乍一看听起来如此奇怪。这就是为什么我们花费如此多的努力免费提供 Tailscale,但也花费如此多的努力让人们将其带到工作中,以及花费如此多的努力开发相关的企业功能,以便高管可以轻松地将其推广到整个财富 500 强公司。 + +互联网是为每个人服务的。你知道,互联网(大写)之前有网络(小写)。它们都失败了,因为互联网是最多样化和包容性最强的。对于建设互联网的人来说,唯一重要的是让每个人都连接上。起初采用速度很慢,然后变快,然后真的很快,今天,如果我买一只手表,它没有互联网连接,那它就是坏的。 + +我们不会建立一个新的互联网,如果家里的书呆子不能玩它。或者大学里的书呆子。或者企业里的员工。或者,你知道,最终每个地方的每个人。 + +## 愿景 + +从这里到那里还有许多步骤。但是,让我们将这些细节留到其他时间再讨论。与此同时,我们做得怎么样? + +嗯,世界上大约有 1/20,000 的人使用新互联网(即 Tailscale)。我们不会停止,直到所有人都使用它。 + +我年纪足够大,还记得当人们嘲笑微软关于在每个桌子上放一台电脑的事情。或者当 TCP/IP 是一个可选的附加组件,你必须从第三方购买。 + +你知道,所有这些都不到 30 年前。我老了,但仔细想想,我没那么老。科技世界变化很快。它可以变得更好。我们才刚刚开始。