T
traeai
登录
返回首页
Stack Overflow Blog

没有愚蠢的问题:什么是云计算以及为什么大家都在用它?

7.5Score

TL;DR · AI 摘要

文章解释了云计算的基本概念及其广泛应用的原因,强调其如何简化基础设施管理并降低启动成本。

核心要点

  • 云计算本质上是使用他人计算机资源,无需自建数据中心。
  • Docker 和 Kubernetes 是实现容器化和自动化部署的关键技术。
  • 云服务如 AWS 提供了弹性计算资源,降低了企业初始投入成本。

结构提纲

按章节快速跳转。

  1. 介绍云计算的基本定义和其在现代技术中的重要性。

  2. 解释云计算的概念,并对比传统数据中心的管理方式。

  3. 讨论 DockerKubernetes 如何改变软件部署方式。

  4. 说明 AWS 等云平台如何提供弹性计算资源。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Cloud Computing
    • Definition
      • Using someone else's computer
    • History
      • Traditional Data Centers
      • Cloud Migration
    • Key Technologies
      • Docker
      • Kubernetes
    • Cloud Providers
      • AWS

金句 / Highlights

值得收藏与分享的关键句。

#云计算#AWS#Docker
打开原文

标题:不问傻问题:什么是云计算,为什么大家都这么做?

URL来源:https://stackoverflow.blog/2026/05/15/no-dumb-questions-cloud-computing/

Markdown内容: 在本期“不问傻问题”中,Phoebe 邀请了 Stack Overflow 基础设施团队的技术负责人 Josh Zhang,他负责管理我们所有的云基础设施。他向她介绍了云计算和数据中心,CPU 与 GPU 的区别,以及将 Stack Overflow 迁移到云端实际上需要做些什么。

Phoebe Sajor: Josh,你能用最简单的话告诉我……什么是云计算?

Josh Zhang: 用最简单的话来说:别人的电脑。历史上人们会自己运行自己的数据中心。这意味着你需要从一家公司租用空间,管理自己的互联网,然后管理自己的机架,购买硬件,所有这些刷新周期。这需要很多专业知识。你需要一个硬件工程师。然后你需要有人把软件安装到硬件上。你需要采购合同。对于试图创业的人或者不想管理这些并被限制在某个地点的人来说,这非常繁琐。因此,云计算的承诺是,你不需要处理这些事情。它是软件驱动的。所以,你不需要有人来下订单、接收订单、安装机架,然后在通过软件访问之前做大量物理工作。你只需要通过云界面声明并配置它。这使得小型公司能够更快地启动并获得通常需要较高前期投入的基础设施访问权限。

PS: 我知道容器和节点是云计算的基础,但它们到底是什么?数据是怎么进入它们的?背后是如何运作的?

JS: 容器是一种新的软件打包单位。在很久以前,你会有一个服务器,然后在上面安装操作系统,无论是 Linux 还是 Windows,然后你直接在操作系统上安装你的软件。软件会有包依赖项。例如,我们是一个 .NET 公司,所以我们需要在服务器本身上安装 .NET,然后在上面运行软件。问题是这非常昂贵。你有一个完全配置成特定方式的服务器,只为一个应用程序服务。后来出现了虚拟机的概念。于是你把单个服务器分成多个较小的服务器,通过划分资源。这样你可以把一个物理服务器分成更小的部分,因为应用程序通常不需要整个服务器的资源量。这给你带来成本节约和空间节约。

这是下一步的逻辑发展。但之后人们意识到虚拟机非常庞大。你必须在每个虚拟机上安装操作系统。这重复且你并不需要全部。因此,Docker 的概念就产生了,用于打包软件。你使用一个非常最小的操作系统安装,通常是某种非常小巧的 Linux 发行版。然后你可以添加包到其中,并且它可以在自己的容器中运行,不会干扰你需要运行的其他软件。你可以在同一台计算机上运行多个 Docker 应用程序,它们之间不会互相干扰。而不是把服务器分成多个小服务器,你现在是把服务器分成多个微型的、自包含的应用程序运行空间。这就是 Docker 所做的。

但是你仍然需要一些东西来协调这一切,因为 Docker 只是单独的应用程序和如何打包它。因此,协调被称为 Kubernetes。Kubernetes 基本上就是如何利用服务器来运行不同的 Docker 应用程序。然后还有 pod 的概念。在物理服务器上,如果你想要在上面运行一个应用程序,如果这个服务器死了,你的应用程序也会死。在可靠性方面,你会说:“好的,我想运行两个服务器。” 这很昂贵,但这样如果一个死了,另一个仍然存在。这叫做冗余。但当你转向 Docker 层时,这就叫做 pod。你有相同的应用程序并排运行——一个 pod 有两个——因此,如果一个应用程序死了,只是 pod 中的两个之一。另一个仍然运行。这就是 Kubernetes 协调的类型。

PS: 这确实很有道理。你之前说过云计算基本上就是“使用别人的电脑”。这意味着什么?我们是不是只是在 AWS 的电脑上运行一切?

JS: 所以当亚马逊开始搭建他们的数据中心时,他们意识到他们有很多额外的容量和额外的服务器。于是他们说:“嘿,我们有很多没用的空闲空间。这些只是闲置的服务器。如果我们能给人们访问这些额外的空间,因为我们已经要投资基础设施成本了?” 这就是 AWS 被分拆出来的原因。想法是,你正在借用他们服务器的一小部分来运行你的应用程序。你利用了亚马逊的规模,因为他们从主要制造商那里购买服务器,从而获得更好的价格。他们基于此提供你一点折扣,并且可以从他们本来就会有的空闲服务器中获利。

JS: 是的。所有的云服务提供商都在为容量而挣扎,因为还有一次转变。以前,每个人都使用标准的Intel或AMD CPU进行计算。这些CPU已经变得非常专用,每单位的CPU数量也增加了。所以在数据中心领域,这是一个大机架,每个机架包含一定高度的单元。它们都被标准化为所谓的“单位”。标准服务器可以是两到三个单位,但它们变得足够小,以至于一个单位可以有128个CPU,甚至256个CPU。这太多了。它们还可以在里面装入大量RAM,这意味着在很小的空间里,很多人可以共享这种计算能力。这一直持续了很长时间。

然后AI热潮来了,每个人都不得不转向GPU,基本上是NVIDIA的处理器。这些芯片极其耗电,但它们也很大,因为这是另一种类型的计算能力。这些芯片实际上非常大,我认为即使是最小的也是三到四个单位高度的服务器。它们不能容纳相同的容量,因为AI所需的计算能力密度不同于传统的CPU计算能力。

所以你谈论的是那些一直在良好运行的数据中心,它们一直在应对一切。现在它们必须考虑所有这些更大的服务器,需要更多的空间、更多的电力需求和更多的冷却需求,而这些都在它们已经拥有的相同空间内。这就是为什么出现了数据中心热潮。每个人都必须建造更多的空间,获取更多的电力,等等,以便容纳大家现在使用的这种新型计算设备。

PS: 我记得我之前在Stack工作时,听到有人说,如果我们无法找到一种方法让芯片具有更高的容量,我们所有人都会陷入困境,因为我们无法处理互联网上存在的所有数据。所以,听起来AI正在进一步推动这一点,因为它使用了如此多的计算能力。在我们回到云计算之前,我可以问你……CPU和GPU有什么区别?听起来GPU比CPU更强大。

JS: CPU是非常通用的。所以每台计算机都有一个CPU,因为它是一个通用的处理单元。CPU代表中央处理单元。简而言之,它处理的是二进制数据,即0和1,是或否。它可以做任何事情,但不一定特别擅长某一件事。最初,GPU用于渲染图形,比如视频游戏,NVIDIA是该领域的先驱之一,并开发了能够很好地进行数学运算的GPU,特别是矩阵数学。NVIDIA发现,“我们可以将这种矩阵数学的力量应用于处理AI工作负载。”AI工作负载涉及大量的矩阵数学。因此,GPU专门用于此。如果你告诉GPU去做CPU擅长的事情,它会非常缓慢地完成。但是,因为它专门擅长这种特定形式的数学运算,而当前的计算空间就在这里,所以大家都转向GPU。当前的趋势非常依赖于矩阵数学。虽然仍然需要标准CPU计算来支持我们的正常应用,但目前技术空间中使用了大量的GPU来处理数据并生成模型。这就是占据大部分空间的原因。

PS: 我喜欢。我刚刚学到了很多。回到云计算。听起来云计算的一大好处可能是更便宜。这是真的吗?

JS: 不是。当我们转向云计算时,有一位高级主管说:“在云计算中,肯定能扩展的就是你的账单。”我至今仍然这么说。云计算的承诺是更多的灵活性。你可以快速地扩展和缩减。如果我们是在数据中心,如果需要更多容量,我必须打电话给Dell买一台新服务器。它要花很长时间才能送到我那里,然后我还要把它安装到机架上,然后配置软件。整个流程非常漫长。在云计算中,如果我想获得更多计算能力,我只需输入一条命令,几分钟后我就有了更多的计算能力。这就是它的运作方式。

理论上,如果你非常聪明地启动和关闭资源,只使用你需要的资源,可能接近数据中心运行的成本。但在整体上,你可以选择不购买新硬件,只要旧硬件仍然运行良好。你还可以通过其他方式优化成本。但据我实际经验,它并不比运行数据中心便宜。你只是以不同的方式分配资源。要运行数据中心,你需要一个人了解硬件和硬件安装。这些人非常专业,只做这一件事。如果你在云端,一个普通工程师就可以处理大多数工作负载。因此,你不需要有专门处理某一件事的人。

PS: 我明白了。所以主要的好处是灵活性,扩展能力。这就是为什么每个人和他妈妈都转向了云计算。现在我们可以更容易地构建东西,而无需现场有人。以前你是这样,对吧?你进去检查,确保所有东西都正常,如果出问题,你检查。你会真的去查看所有硬件机架,看看哪些在工作,哪些没在工作吗?

JS: 那些东西变得非常专业,但我们有监控软件和其他工具。我住在市中心,离数据中心只有20分钟车程。那很舒服。但我还是不想为了没有理由而浪费这次旅行。硬件制造商给你监控软件,甚至还有预测软件,它会说:“根据这个硬盘的行为,它很可能在一段时间内就会失败。”所有这些都已经非常成熟了。

PS: 从物理数据中心迁移到云端的过程是什么样的?需要多长时间?你如何准备?看起来是怎样的?我们最近刚在Stack完成这个过程,所以我了解得很多。

JS: 说实话,数据中心的发现是最重要的部分。在任何公司里,可能会有某些正在运行的东西,你根本不知道。你需要弄清楚你关心的东西和你不关心的东西。然后你开始迁移它们,并且必须找到云中的等价物。例如,在我们数据中心里,我们有负载均衡器,而它是以数据中心为中心方式进行配置的。我们必须找出它的云中等价物。有一些一对一的云中等价物,但这样做效率低下且成本高昂。有些人会通过直接在云中按比例配置服务器来粗暴地解决这个问题,但这会导致额外的成本。因此,我们对每一个应用程序进行了分类,决定哪些要迁移,哪些不迁移,并尝试找出迁移的正确路径。

Kubernetes 是其中之一。我们拿出了我们的应用程序,并必须将其更新为容器化。这意味着从开发人员到部署的每一个环节都必须变成“云原生”。这便是转换过程。然后是迁移。我们进行迁移的方式是将云视为一个第三数据中心。我们在最前面有一个负载均衡器,基本上会问:“流量应该去哪?” Stack Overflow 实际上是在两个数据中心运行的——一个在纽约,一个在丹佛。我们说:“现在,云中也有一个。”然后我们慢慢将服务迁移到云中并进行测试。我们基本上只是逐步将流量指向云,并监控流量和其他遥测数据。这就是迁移。我简化了很多内容,因为实际上它极其复杂。如果我能做得非常出色,我可能可以开一家咨询公司并赚很多钱,因为它很难。参与的人很多,但这就是高层次的想法。一旦你完成了迁移,说实话,剩下的就相对简单了。有很多供应商会来取走你的硬件。基本上我们就是这样做的。我们卸下了设备,并支付给他们处理。所有东西都必须安全地处置,所以我们都把它压碎了。因此,我们甚至不需要特别小心。最后,我们只是剪断电缆,把东西扔来扔去。这有点有趣。

PS: 对于像我这样的新手来说,还有其他关于云计算需要注意的地方吗?

JS: 很多数据中心其实离你想象的更近。很多只是普通的仓库——巨大的旧仓库,你只是认为它们是普通的仓库。我们的数据中心其实位于新泽西城17层的摩天大楼里,可以看到自由女神像,这非常奇怪。

PS: Stack Overflow 的所有数据都在看着窗外,盯着自由女神像。我得以后注意一下建筑物上的空楼层,虽然我肯定不会被允许进去。

JS: 是的,进入数据中心其实非常有趣。它们安全性极高。他们使用指纹和虹膜扫描以及人形陷阱。

PS: 这就像是秘密特工的事情。

JS: 确实如此。

AI 可能会生成不准确的信息,请核实重要内容

没有愚蠢的问题:什么是云计算以及为什么大家都在用它? | Stack Overflow Blog | traeai