软件通常不会被描述为坚不可摧。
特别是那些负责大型分析工作或机器学习工作负载的软件。更常见的词语是“挑剔”、“复杂”,或者在良好的营销情况下是“专业级”(意味着你需要多年的学习和多个认证)。
然而,坚不可摧的软件是活跃的开源软件项目带来的众多优势之一。虽然这对于那些认为开源软件“未完成”或“测试/开发质量”的人来说可能显得违反直觉,但实际上,高度使用的开源软件是市场上经过最充分测试和验证的软件。
让我们从规模开始。MinIO 部署在每个大陆。截至本文撰写之时,Docker 拉取次数超过 2.27 亿次。GitHub 星标超过 16,500 个。从 AAA 到 Zyztm Research 的超过 17,000 个不同的实体,以及数千个位于不可解析 IP 地址背后的实体。每天,这些实体都会投入越来越多的数据。
总计数以艾字节计。
大型实例、小型实例以及介于两者之间的所有尺寸。设备供应商梦寐以求的规模。这种规模是由于任何人都可以下载和运行 MinIO 的结果——从构建在其之上的应用程序的大型全球企业(稍后将对此进行详细介绍)到在银行、医院和零售环境中部署它的小型咨询公司。
接下来是配置。这 17,000 个实体中的每一个都是不同的。即使是单个实体内的实例也各不相同。哪些功能已启用,哪种语言,哪些 API,哪些应用程序,哪些计算和存储硬件,哪些网络,哪些安全,哪种类型的数据。此列表非常长,排列组合接近宇宙中原子数量。
MinIO 必须在所有情况下都能正常工作。如果它无法正常工作,我们将在 Slack、Twitter、Hello 和 GitHub 上收到消息。这就是社区的力量。开源软件并不意味着客户不会提出要求——相反,当他们将 MinIO 构建到其基础设施中时,他们会有一些期望。当他们在另一个供应商的解决方案中看到 MinIO 时,他们希望它在他们的配置中能够相应地执行。这会使软件变得更强大,推动其极限,并扩展其功能。
第三是工作负载。MinIO 是高性能对象存储。这意味着我们不仅要处理传统的用例,如归档、备份和灾难恢复,而且要处理从 AI/ML 和大数据分析到用作云原生应用程序的持久性数据存储的一系列全新的工作负载。事实上,我们许多客户将我们部署用于高性能用例,并决定放弃他们传统的备份存储,因为他们实际上可以免费获得该用例,而高性能应用程序则能够实现这种用例。
在这些工作负载类别中,用例非常深入。例如,AI/ML 包括 Spark、Presto、TensorFlow、H2O.ai、SciKitLearn,仅举几例。同样,MinIO 必须执行,无论是替换 HDFS 还是在 Azure 和 Google Cloud 前面充当 S3 网关。工作负载可能不同,但底层数据的重要性不会改变。
第四是安全。无论是飞行中还是静止状态,对任何存储系统(无论是文件、块还是对象)来说,保护数据都是至关重要的。无数的配置和工作负载以各种可想而知的方式暴露了我们的软件,但我们仍然拥有业界最好的声誉之一。如何做到的?嗯,MinIO 的加密基于可证明安全的加密构建块,这些构建块是开源的。正式证明可确保您没有犯任何概念性错误,而开源实现将揭示任何恶意后门,但也有助于查找潜在的实现错误。 后一点也适用于一般安全机制——例如身份验证和访问控制。总的来说,社区是 QA 的强大来源。他们不断寻找潜在的漏洞,并通过上述渠道将其传达给 MinIO。另一个是部署配置的数量惊人。MinIO 与安全应用程序和密钥管理系统紧密集成,以匹配最严格和最苛刻组织的安全要求。
第五是许可证。由于我们选择了最宽松的 Apache 许可证,因此我们的产品已内置到数十种其他产品中。我们是世界上最有价值的技术公司的开发人员对象存储。我们是医疗保健领域最大参与者之一的对象存储基础。我们是软件定义企业云领域领导者的对象层,我们为数十种其他商业应用程序提供支持。同样,这些都是面向客户的应用程序,涉及数十亿美元的资金,它们由 MinIO 提供支持,并由 Apache V2 许可证启用。
最终结果是,开源使 MinIO 比专有软件更好、更强大、更安全,更具弹性。是的,它会影响利润——当你像我们一样做出如此优秀的软件并且不收费时,你在短期内会产生更少的收入。然而,从长远来看,MinIO 对象存储的采用为我们的客户构建了一个异常坚不可摧的基础——这有助于我们发展业务。