我的编程空间,编程开发者的网络收藏夹
学习永远不晚

揭开云原生数据管理的神秘面纱:操作层级

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

揭开云原生数据管理的神秘面纱:操作层级

译者 | 张锋

审校 | Noe

  随着应用容器化的速度加快,Day2服务已经成为一个迫在眉睫的问题。这些Day2服务包括数据管理功能,如备份和灾难恢复以及应用程序迁移。在这个云原生应用容器化的新世界中,微服务通常部署在多个位置(区域、云、本地),同时使用多种数据服务(MongoDB、Redis、Kafka等)和存储技术来存储这些应用状态。

  在这种环境中,传统基础设施或基于虚拟机管理程序的解决方案将很难发挥作用,那么为云原生应用设计和实施这些数据管理功能的正确架构是什么呢?你应该如何分析存储供应商、数据服务供应商和云供应商提供的各种数据管理选项来确定适合你环境和需求的正确方法呢?本文深入探讨了各种数据管理方法在一致性、存储要求和性能等多个属性上的优缺点。

定义一个词汇

  首先,我们将解构和简化技术栈以显示数据可能在云原生应用中的位置。

  在考虑数据管理时,我们可以在上图中显示的一个(或多个)层上进行操作。让我们列举这些层:

  1、物理存储

  该层包括各种存储硬件选型,可以将状态存储在非易失性存储器中,并可选择从NVMe和SSD设备到旋转型磁盘甚至磁带的物理介质。它们有不同的外形尺寸,包括阵列和独立机架服务器。

  物理存储可以位于:

  •   在本地,你可能会遇到来自希捷、西部数据和美光等供应商的存储硬件。
  •   在托管云提供商的数据中心中。虽然你可能永远不会接触物理设备,但你知道它是云的基础架构一部分。

  2、文件和块存储

       该软件层提供文件或块级结构,以实现从底层物理存储进行高效的读写操作。在文件和块这两种情况下,底层存储可以是独立的(本地磁盘)或共享的网络资源(NAS 或 SAN)。

  •        块存储允许你从本地或远程磁盘创建具有低延迟并可通过iSCSI和FiberChannel等协议访问的原始存储卷。云供应商上的块存储实现包括Amazon EBS和GCE 持久性磁盘。
  •        文件存储使用NFS和SMB等协议为文件语义和操作提供共享存储。本地常见的文件存储实现包括来自NetApp和Dell EMC的产品。云供应商上的文件存储实现包括 Amazon EFS、Google Cloud Filestore和Azure Files。

       这一层通常提供快照功能,按照时间点创建卷的副本来进行保护。此外,在 Kubernetes 环境中,该层提供容器存储接口 (CSI) 驱动程序来规范化API,让上层可以使用这些API来调用快照功能。请注意,就所支持的功能而言,并非所有CSI实现都是相同的。

  3、数据服务

       这一层位于文件/块存储实现之上。它提供了各种数据库实现以及日益流行的存储类型,即对象(又名 blob)存储。该层通常与应用程序进行交互,底层数据库实现基于工作负载和业务逻辑来选择。对于基于微服务的应用程序,多语言持久性是一种规范,因为每个微服务都会为当前的工作选择最合适的数据服务。

  一些数据库类型和示例实现的子集包括:

  •   SQL数据库:MySQL、PostgreSQL、SQL Server
  •   NoSQL数据库:
  •   键值存储:Redis、BerkeleyDB
  •   时间序列数据库:InfluxDB 、Prometheus
  •   图数据库:Neo4j、 GraphDB
  •   宽列存储:Cassandra、Azure Cosmos
  •   文档存储:MongoDB、CouchDB
  •   消息队列:Kafka、RabbitMQ、Amazon SQS
  •   对象存储1:Amazon S3、Google Cloud Storage、Minio

       这些数据库还有几个托管实例,称为数据库即服务 (DBaaS) 系统。这些通常包括上面列出的数据库类别之一,有时可以提供自动扩展,同时满足即服务 ( -aaS ) 业务的消费经济。DBaaS系统的示例包括 Amazon RDS、MongoDB Atlas和Azure SQL。

       从数据保护的角度来看,每个数据库实现都提供了一组特定的实用程序( PostgreSQL的pg_dump或WAL-E,MongoDB的mongodump等)来备份和恢复数据。值得注意的是,在一致性、恢复颗粒度和速度方面,许多实用程序具有不同的功能。无论它们是作为独立实用程序提供还是作为即服务产品的一部分提供,通常仅限于特定的数据库实现,或者至多是一种数据库类型。

  4、有状态应用

       应用程序层是业务逻辑所在的地方,在云原生世界中,应用程序通常基于现代敏捷开发并作为分布式微服务实现。几乎所有应用程序都有一个需要持久化的状态。虽然有多种存储应用程序状态的模式,但我们需要在有状态的 Kubernetes 应用程序的上下文中将以下信息作为一个原子单元来持久化和保护:

  •   应用程序数据:跨各种数据服务、块和文件存储实现分布在多个容器上。
  •   应用程序定义和配置:应用程序镜像和相关的环境配置分布在各种 Kubernetes 对象中,包括ConfigMaps、Secrets等。
  •   其他配置状态:包括CI/CD流水线状态、发布信息和关联的Helm部署元数据。

  上图为一个有状态应用程序的示例,它突出显示了一些需要保护的组件和相关状态。需要注意的是,对于实际部署,应用程序由数百个这样的底层组件组成。此外,在云原生架构中,保护的原子性单元需要是应用程序与底层数据服务或存储基础设施层。如前所述,这是因为应用程序的状态包括分布在多个物理或虚拟节点和数据服务中的应用程序数据、定义和配置。

结论

  从备份/恢复和应用程序可移植性的角度来看,一个好的数据管理解决方案需要将整个应用程序视为原子性单元,这使得传统以管理程序为中心的解决方案不再适用。我们还展示了一个简单的技术栈图,从各种数据服务、块和文件存储以及跨本地和云实现物理存储的角度显示应用程序状态实际所在的位置。这定义了一个基本范畴,使我们能够深入了解云数据管理的操作层级。

  附注

  有些人可能争辩认为对象存储应该与文件/块属于同一层。在本文中,对象存储将被视为另一种具有键值接口的数据服务,如果需要,可以在Kubernetes中运行。

  原文链接:https://dzone.com/articles/demystifying-cloud-native-data-management-layers-of-operation

译者介绍

张锋,51CTO社区编辑,长期从事技术顾问工作,专注于运维/云原生领域,精通网络疑难故障分析,有很丰富的大型银行运维工具建设实践经验。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

揭开云原生数据管理的神秘面纱:操作层级

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

揭开云原生数据管理的神秘面纱:操作层级

本文讨论了跨多个属性 (包括一致性、存储需求和性能) 的各种数据管理方法的优缺点。
云原生2024-12-01

揭开ASP Docker的神秘面纱:洞悉底层原理

:ASP Docker是微软为.NET应用程序开发的容器化平台。它使开发人员能够轻松地打包和部署他们的应用程序,而无需担心底层基础设施。本文将深入探讨ASP Docker的底层原理,帮助您更好地理解其工作原理。
揭开ASP Docker的神秘面纱:洞悉底层原理
2024-02-14

PHP SPL 数据结构:揭开数据操作的神秘面纱

PHP SPL 数据结构为数据操作提供了强大的工具,通过高效的数组和队列实现,它们简化了复杂数据的处理和操作。本文将深入探讨 SPL 数据结构的特性、优点和使用案例。
PHP SPL 数据结构:揭开数据操作的神秘面纱
2024-02-16

数据库深层探秘:揭开审计的神秘面纱

数据库审计:揭开神秘面纱
数据库深层探秘:揭开审计的神秘面纱
2024-03-10

揭开操作系统升级补丁的神秘面纱

操作系统升级补丁:揭开神秘面纱
揭开操作系统升级补丁的神秘面纱
2024-04-03

揭开 DML (数据操作语言) 的神秘面纱:解锁数据库操作的奥秘

数据操作语言(DML)是一门强大的计算机语言,允许用户创建、检索、更新和删除数据库中的数据。它是一种面向数据库应用程序的编程语言,用于管理和操作数据库中的数据。
揭开 DML (数据操作语言) 的神秘面纱:解锁数据库操作的奥秘
2024-02-12

揭开数据库触发器的神秘面纱:深入探索触发器的运作机制

数据库触发器是一种数据库对象,它可以自动执行某些操作,对数据库中数据的改变做出相应反应。触发器主要用于确保数据库数据的完整性和一致性,并简化某些任务的执行。
揭开数据库触发器的神秘面纱:深入探索触发器的运作机制
2024-02-08

揭开服务器操作系统安全升级的神秘面纱:全方位解析如何保障网络安全

服务器操作系统安全升级是保障网络安全的重要一环,本文将全方位解析如何通过升级服务器操作系统来保护数据,提升安全性。
揭开服务器操作系统安全升级的神秘面纱:全方位解析如何保障网络安全
2024-02-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录