简单保存

简单保存

在 SaaS、IaaS 和开源软件之间,可以快速轻松地启动承诺解决给定技术或业务问题的无数解决方案中的任何一个。由于利用定义明确且一致的 API 的库、框架和应用程序之间的无缝互操作性,现代开发世界承诺任何代码都可以在任何地方运行。

开发人员、数据分析师和基础架构团队拥有比以往更多的工具。然而,许多人对尝试通过手动和自动化流程将所有内容拼接在一起所面临的挑战感到不知所措。          

这个问题对企业来说尤为痛苦。InfoWorld 最近的一篇文章,复杂性正在扼杀软件开发人员,描述了企业必须涉足的泥潭:

“从在单一架构中构建应用程序……到将它们分解为多个微服务、打包到容器中、使用 Kubernetes 编排并托管在分布式云环境中的转变,标志着我们软件复杂性水平的明显飞跃”  

甚至还有一个术语 - 云复杂性 - 以及来自德勤的随附的云复杂性成本计算器构成云原生生态系统的 1,000 多个服务的云原生计算基金会 (CNCF) 景观是该问题的直接证据 - 这些都是云原生解决方案。这还不包括三大云(AWS、GCP、Azure)各自提供的 200 多项服务。

云原生不必很复杂

这里的错误选择是选择本身会导致复杂性。它不是。开发人员和架构师可以选择并不复杂的框架和服务——即使有无数的选择。这是降低复杂性的关键——明智地选择并选择云原生。

原因之一是大多数云原生应用程序本身并不复杂。诚然,这是一个连续统一体,但 Kubernetes 的内在复杂性并不植根于 Kubernetes,而是陷入了非云原生世界的泥潭,使用连接器和插件做一些不自然的事情来尝试和集成非云原生应用程序。正如我们在无数教程中看到的那样,如果它是云原生的,即使像对象存储即服务这样的东西也很容易。

保留遗留基础设施当然是有原因的,我们并没有提出其他建议,但前进的道路和降低复杂性的方法是为应用程序、基础设施和工作流的云原生实现制定一条道路。此时大多数遗留应用程序可以在云平台上运行,但它们未能利用云原生软件提供的可扩展性、可扩展性、互操作性和可移植性。试图通过构建 API 支持和其他扩展作为在它们之上运行的微服务来将它们硬塞进云原生架构中会产生不必要的复杂性。将遗留代码干扰到容器中可能是实现云原生优势的第一步,因为这样容器就可以由 Kubernetes 编排。但是,从长远来看,您会增加复杂性,因为开发人员在管理依赖项的同时努力维护和改进代码库。

相比之下,云原生应用程序被构建为作为微服务运行。每个微服务都有自己的功能,微服务通过API进行通信,形成完整的应用。将每个功能分解为核心本身就是简单性。在基于微服务的应用程序中,代码及其功能几乎总是比在大型单体应用程序中更清晰地定义和组织。

云原生应用程序不仅仅是一组微服务。容器是一种抽象,它为在其中运行的微服务代码提供操作系统和其他依赖项。容器消除了在微服务运行的任何地方维护依赖关系的要求。我们现在已经简化了应用程序和底层依赖项。

Kubernetes 是关键

Kubernetes 建立了一个基础设施,为它编排的容器提供硬件资源和服务。这简化了向微服务提供监控、报告、身份验证和加密等服务。这些服务不需要为每个应用程序单独安装,而且由于环境是云原生的并且它的所有部分都是 API 驱动的,所以应用程序不需要手动编码来包含这些服务。

应对软件复杂性的技巧

整体现在是一个流动的分布式应用程序。结果是运动部件的数量呈指数增长。然而,每个活动部件都已简化。在每一步,开发人员都需要与引入复杂性的冲动作斗争,而不是奖励简单性。去除微服务之间的依赖关系。尽管手动过程看起来像是一个绝妙的拼凑,但它们必须被简化并用代码代替。使用 Kubernetes 及其声明式 API以一致的方式           管理一切——服务、代理、网络、存储。

一旦复杂性最小化并最大化一致性,您就可以通过自动化实现运营效率。可重复和可预测的流程很容易实现自动化以遵循最佳实践,因此应用程序可以弹性扩展而不会出现运行时意外。通过确保跨 Kubernetes 集群的一致配置和应用程序设计来简化。    

选择有助于简化的支持对象存储。对象存储是一项基础的云原生技术,但并非所有解决方案都相同。当心带有添加的对象存储接口的遗留存储设备——根据定义,设备在多个平台上不一致且不可用。相反,请查看为云原生实现而设计和构建的对象存储。MinIO 软件定义的对象存储提供了一个简单、精简、高性能的解决方案,可以在从裸机到任何 Kubernetes 发行版的任何地方运行,为开发人员和基础架构团队提供一致的 API 驱动体验。  

简单是我们 MinIO 的核心价值观之一。从产品的设计、代码、文档和支持到我们在网站和博客上使用的语言和设计,我们所做的一切都追求简单和极简主义。我们的团队致力于构建软件定义的对象存储,它是 AWS 之外速度最快、可扩展性最强且实施最广泛的 S3 兼容存储 - 并为您提供易于使用的工具,例如 MinIO Client (mc) 和MinIO Kubernetes Operator来管理它。

我们对简单性的不懈追求意味着云架构师拥有坚实的云原生对象存储基础,他们可以在此基础上构建、部署和操作应用程序。MinIO 是一个 100 MB 的微型二进制文件,可以在任何地方运行,通过一致的云原生和 S3 兼容接口提供高性能对象存储。MinIO 的强大功能与其简单性密切相关。我们将其构建为可在任何云、数据中心、开发人员笔记本电脑、专用边缘设备、裸机或 Kubernetes 以及任何组合上运行——包括功能强大且易于配置的复制功能,可自动保持多个 MinIO 集群同步.

简约简约

乍一看,对于那些具有企业 IT 思维的人来说,云原生世界可能显得过于复杂,但云原生变得复杂的唯一方式就是我们以这种方式实现它。核心云原生元素并不复杂——它们简单、直接、一致且可移植。云架构师必须依靠极简主义来减少出错的机会,提高正常运行时间并实现跨多个云、数据中心和边缘的弹性可扩展性。MinIO 提供了所有这些以及更多,使其成为出色的对象存储解决方案,可作为高性能、可靠和可扩展的云原生架构的基础。只需下载 Docker 映像或单个二进制文件,然后执行它,即可在几分钟内安装和配置 MinIO。配置选项和变体的数量保持在最低限度,导致系统管理任务几乎为零,故障路径极少。升级 MinIO 是通过一个命令完成的,该命令是无中断的,并且会导致零停机时间——降低总拥有成本。

下载 MinIO,亲眼看看云原生软件的外观、感觉和操作是多么简单、强大。


上一篇 下一篇