在笔记本电脑上运行 S3?MinIO 彻底改变了一切

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00S3 的账单可能变得极其昂贵,应用程序产生的大量数据使得每次上传和下载
00:00:05都变得非常沉重。大多数开发者认为对象存储只意味着一件事:云端。
00:00:09但这并不总是真的。如果你能在自己的笔记本电脑上运行一个兼容 S3 的对象存储呢?
00:00:15这就是 Mini I/O 的用武之地。它速度极快,兼容 S3,且几乎可以在任何地方运行,
00:00:20甚至可以在你的 Mac 本地运行。在接下来的几分钟里,我将向大家展示三件事。
00:00:25如何安装和运行它,为什么开发者在使用它,以及像这类工具的现状。
00:00:30[音乐]
00:00:35如果你想削减云端成本或简化开发流程,这可以为你省去很多
00:00:39烦恼。以下是它真正解决的问题。大多数开发者和团队都在应对同样的三个
00:00:45问题:云端账单难以预测;数据距离使用它的应用太远;
00:00:51以及需要快速本地存储的 AI 工作负载。Mini I/O 为我们提供了另一个选择。我们获得了 S3
00:00:57兼容性、强大的性能以及无需依赖云端的完全控制权。
00:01:01它非常适合本地开发、原型设计、RAG 流水线、媒体、备份等所有场景。而且,没错,
00:01:07你可以本地运行整个系统,无需 VPS,无需云账号。现在,先做一个快速声明,
00:01:12其 GitHub 仓库现已归档并处于维护模式。所以我们不能永远只用这一个工具。
00:01:17他们已将重点从 Mini I/O 转向 Mini I/O AI Store,但 I/O 功能依然存在。
00:01:24我们还可以继续使用它相当长一段时间并获得实际收益。如果你喜欢能加速
00:01:29工作流的工具,请务必订阅。我们一直有视频更新。
00:01:32好了,让我看看这有多简单。我已经在我的 M4 Pro 上通过一个 Docker 容器
00:01:37运行了 Mini I/O。首先,我连接它并运行 MC alias set local。
00:01:44我将添加我的本地主机,并暂时使用他们提供的登录凭据。然后我可以创建一个桶,
00:01:50我们可以称之为 MC, MB local demo bucket。接着我就开始上传一些文件,
00:01:55图片、文本、JSON。首先是图片,然后我可以做一个简单的文本文件。
00:02:02最后,让我们在这里添加一些 JSON 数据。现在,如果我列出所有内容,瞧。结构清晰,
00:02:08就像 S3 一样。现在是大多数人真正关心的部分。我运行这段 Mini Python
00:02:14脚本。它仍然使用 Boto3,与 AWS 的代码风格完全一致。没有任何变化。
00:02:22在浏览器中,它就在 localhost 上。打开桶。我可以展开文件夹。
00:02:27点击图片,就能看到预览。这感觉就像 S3,只不过它运行在你的笔记本电脑上。
00:02:33那么 Mini I/O 到底是什么?基本上,它是一个支持亚马逊 S3
00:02:39API 的对象存储服务器。所以你可以沿用所有已知的知识。我们可以使用相同的 SDK、相同的命令、
00:02:46相同的思维模型,但它不再受限于 AWS,而是随处运行。Docker、
00:02:53Kubernetes、裸机、边缘计算,或者就像我这里一样直接在笔记本上运行。这在现在比
00:02:59以往更重要,因为随着时间的推移,我们的应用数据量只会越来越大。因为当
00:03:05你的计算机在这里而数据在别处时,我们要为此支付高昂的代价,
00:03:10体现在延迟和云端成本上。Mini I/O 改变了这一切。它让存储更靠近工作发生的地方。
00:03:17这就是为什么这种方案在开发和测试中如此有用。虽然不是为了生产环境,
00:03:22但在那两个阶段它表现卓越。就我而言,我正在本地运行它,这使得它非常适合在
00:03:27触及生产环境之前构建和调试数据密集型应用。当然,我们确实还有很多其他
00:03:33选择。比如使用 AWS S3,你可以获得完全托管的存储和大规模扩展能力。但同样,
00:03:40代价是成本、各种费用,而且你会被锁定在 AWS 中。使用 Ceph,你可以获得很棒且
00:03:46可扩展的体验,但运行起来更复杂。组件更多,开销更大。现在,一个常见的模式
00:03:52可能看起来像这样:我可以在本地开发时使用 Mini I/O,在测试环境使用 Mini I/O 或 S3,
00:03:57在生产环境使用云端。这是可行的,因为你的本地设置仍然匹配你的应用已经或将要使用的 S3 模型。
00:04:03所以,如果你的应用处理大量数据,Mini I/O 在开发阶段就非常有意义。
00:04:10好了,现在让我说点实在的。你应该使用它吗?嗯,
00:04:15它部署简单(单二进制文件或 Docker)、具有强大的 S3 兼容性,而且速度极快。
00:04:21如果你要传输大量数据,避免流量费用是一大优势。但问题是,
00:04:26你在这里看到的开源版 Mini I/O 在 AGPL 第 3 版协议下仍然是免费的。
00:04:33它非常适合演示、本地开发和原型设计。再次强调,他们已经
00:04:38将重心转向了 Mini I/O AI Store。那里面包含一个针对单节点的免费层级,但是
00:04:43他们现在为集群、高可用性以及所有其他高级功能增加了付费层级。
00:04:48所以对于学习、本地开发和小型项目来说,这非常酷,很好。但对于生产
00:04:53集群,你可能需要 AI Store 或 Ceph、Garage 等替代方案。所以,如果是在
00:04:59本地开发或仅仅是实验阶段,它是值得的;但如果你从第一天起就需要完全托管的基础设施或
00:05:04内置的高可用性,那可能就不值得了。我们还是可以坚持使用其他的。Mini I/O 或 AI Store 免费版
00:05:11为你提供了 S3 风格的存储、强大的性能以及对数据的完全控制,且无需
00:05:16立即支付云端溢价。你现在就可以像我一样在笔记本电脑上尝试一下。
00:05:21如果你喜欢像这样能加速工作流的开源工具和编码技巧,
00:05:25请务必订阅 Better Stack 频道。我们下个视频再见。

Key Takeaway

通过在本地笔记本电脑上运行兼容 S3 API 的 MinIO 容器,开发者可以在不产生云端账单的情况下构建数据密集型应用和 AI 工作负载。

Highlights

MinIO 提供与 Amazon S3 API 完全兼容的本地对象存储环境,开发者可以使用相同的 SDK 和 Boto3 代码进行开发。

在 M4 Pro 笔记本电脑上通过 Docker 容器运行 MinIO,可实现零流量费用的海量数据传输与测试。

MinIO 的开源版本遵循 AGPL v3 协议,适用于本地开发、原型设计以及 RAG AI 流水线等场景。

MinIO 官方已将重心从原有项目转向 MinIO AI Store,原 GitHub 仓库现已进入维护模式。

MinIO 本地部署省去了云端 S3 昂贵的上传下载费用,并解决了数据与应用之间的网络延迟问题。

Timeline

云端存储的局限性与本地化需求

  • 云端 S3 账单会随着应用产生的大量数据上传下载而变得极其昂贵。
  • 数据与应用之间的物理距离导致高延迟并阻碍 AI 工作负载的效率。
  • MinIO 允许开发者在不依赖云账号的情况下获得完全的存储控制权。

大多数开发者误认为对象存储只能在云端运行。实际上,无法预测的云端账单和延迟问题使得本地化存储成为必要。MinIO 填补了这一空白,它不仅支持 S3 兼容性,还特别适合原型设计、备份和媒体处理等需要快速本地存储的场景。

MinIO 的快速部署与 Boto3 兼容性演示

  • 使用 MC 命令行工具可以在本地快速创建桶并上传图片、JSON 或文本文件。
  • MinIO 在本地 9000 端口提供直观的浏览器管理界面,支持文件预览和目录结构查看。
  • 现有的 AWS Boto3 Python 脚本无需修改代码即可直接连接本地 MinIO 实例。

通过 Docker 容器在 M4 Pro 上运行 MinIO 展示了极简的配置流程。开发者只需通过别名设置连接本地主机,即可像操作 S3 一样操作本地磁盘。这种一致性意味着从开发环境迁移到生产环境时,代码逻辑可以保持百分之百的同步。

MinIO 的技术架构与适用场景

  • MinIO 可以在 Docker、Kubernetes、裸机及边缘计算等多种环境运行。
  • 本地开发和测试阶段使用 MinIO 可以显著降低调试数据密集型应用时的成本。
  • 对比 Ceph 等其他私有云存储方案,MinIO 的单二进制文件部署模式更具优势。

随着应用数据量的增长,存储必须更靠近计算发生的地方。虽然 Ceph 提供了强大的可扩展性,但其复杂的组件增加了运维开销。MinIO 的优势在于轻量化,使得在本地开发阶段匹配云端模型变得简单且高效。

项目现状、许可协议与选型建议

  • 开源版本 MinIO 依然在 AGPL v3 协议下免费提供,但官方重心已转向 AI Store。
  • AI Store 针对单节点提供免费层级,但集群和高可用性功能现在需要付费。
  • 如果项目第一天就需要完全托管或内置高可用性,传统的 S3 依然是更稳妥的选择。

对于学习、本地实验和小型项目,MinIO 的免费版依然表现出色。然而,随着项目进入生产集群阶段,开发者需要权衡是选择付费的 AI Store 还是转向 Ceph、Garage 等替代方案。在开发阶段,利用 MinIO 规避流量溢价是优化工作流的关键手段。

Community Posts

View all posts