总体架构
Nasu Elasticsearch Serverless(NES) 是纳速云自研的新一代云原生搜索服务,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据搜索服务。
CEO 马华标 原阿里巴巴 Elasticsearch 内核研发负责人 | 蚂蚁集团搜索域一级架构师
“ 纳速云平台起源于阿里系最大的统一搜索中台 ZSearch,由原班人马倾力打造,旨在为广大中小企业提供顶级互联网公司的搜索基础设施, 我们专注于提升开发者体验, 帮您提高开发效率,为你节省再多一秒是我们的核心宗旨。 ”
Serverless on Global Cluster
为实现弹性、高可用性和更低的成本,传统的 Elasticsearch on Paas 体系结构很难满足这些要求,面对在线扩缩容、集群故障、突发场景,一个专业的搜索解决方案往往需要企业付出高昂的成本。如今随着高速网络和新内存技术的发展,分布式数据中心及集中式的全集群管理已成为现实:它将各种组件从单体集群分离到可控的资源池(例如,计算、内存和存储),并通过高速网络将它们连接起来,通过统一的中央调度器全局控制各个分散的集群,以租户的资源形态统一暴露轻量的Serverless接口,极大简化了用户的使用体验。
纳速云全面采用 k8s 对资源和组件进行了定义,允许其快速部署在不同的基础设施云厂商之上。利用云原生的标准化有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统,同时也为跨云容灾、就近访问提供了基础。
- 统一元数据及网关
- 核心计算集群
- 跨云容灾模块
- 基础设施适配层
1. 元数据中心和统一网关
将所有底层ES实体集群抽象为一个可无限扩展的超大集群,搭配路由和队列增加单一集群所不具备的极高可用性。
Global Meta:Nasu Serverlss 拥有自己的元数据,同时会将自身的元数据注册到 Global Metastore,管理全局的租户配额、应用分配、集群映射、调度策略等信息,相当于整个服务的大脑。
Router API Server:API调用总入口,负责将用户请求发送到对应的真实集群中,Router 在运行期会实时接受Global-Meta的调度,动态调整转发策略。例如就近访问,实时将查询转发到物理距离较近的ES真实集群。
Queue:负责削峰填谷和容灾多写。例如底层集群物理宕机,队列保留故障期间的索引写入请求,待恢复后重放。有些时候,Queue也能充当数据缓冲区,在集群升级期间做到写入无损。
统一接口层为用户屏蔽掉集群和基础设施层面的所有细节,从而可以将精力全部专注到自身的业务开发上。
2. 核心计算集群
真实的 Elasticsearch 集群族,注册到元数据中心并接收用户的真实处理请求。
计算资源分配:针对不同的计算类型,在内核层面改造不同的资源分配策略,满足租户复杂的业务请求之间不影响。
高吞吐量计算 (HTC):此类计算类型具备非常多的短作业,同时工作负载聚焦在通信和IO上。这些工作负载有时也被称作高度并行或批处理工作负载。典型示例包括海量 Bulk 写入、数据上传、索引复制等。我们的策略是控制并发度,在资源充足的情况下保障其全速运行。
高性能计算 (HPC):此类计算类型通常单个请求计算量大,并发任务多,工作负载聚焦在CPU及内存上。例如索引构建、查询检索、聚合计算,我们的策略是提升并发度,分配较多的CPU、MEMORY资源,同时搭配C-Breaker 控制熔断。
C-Breaker Computing Kit : 运用云原生容器技术,我们可实时、精确的控制租户的计算资源分配(CPU、MEM),同时也能通过机器学习识别高代价请求(例如超大聚合计算,全表扫描),针对这些危险操作做一些拦截或熔断处理,以此保障服务的安全性。
3. 跨云容灾
跨云容灾是为企业级提供低至秒级RTO和小时级RTO的容灾服务。支持本地容灾,跨云厂商容灾两种容灾场景,可以有效保障数据安全和业务连续性。无需自建灾备中心,云下部署简单、云上资源全自动管理、控制台集中管控。
数据容灾
- 纳速云企业版应用集群自带Snapshot自动备份功能,每隔数小时将数据备份到OSS上。
- 企业客户下载并安装纳速云提供的 Elasticsearch 备份版(携带Snapshot Restore插件)。
- 启动本地集群的auto-restore任务,定时恢复数据。
对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。
业务容灾
- 企业客户下载并安装纳速云提供的 Elasticsearch 实时同步版(携带XDCR插件)。
- 启动本地集群的集群同步任务,实时恢复数据。
4. 基础设施适配层
多云场景意味着我们的架构设计必须具有跨云特性,需要能适配不同的云环境,不依赖特定的云厂商的独有产品。从业务研发视角看,就是统一的解决方案,不需要重复开发的代码来适配底层环境。Kubernetes 在云原生平台基础上进行了基础设施的抽象,它可以同时管理跨多种类型的基础设施和运行环境,并提供了一致的部署和管理体验。
Kubernetes 集群 Federation 可以包含运行在不同云服务提供商,以此实现应用程序和服务可以跨不同的集群和云提供商。纳速云作为中立厂商连接、协调这些基础设施做到统一的安全和可观察性,以满足未来的业务承载。
小结
通过以上的介绍,我们不难发现,Nasu Elasticsearch Serverless 采用了从计算虚拟化,高速网络互联,存储分离架构,分布式文件系统,搜索引擎租户化等全方位的技术手段,可以说是众多热点技术的集大成。正是这些关键技术的整合创新,才使得 Nasu Elasticsearch Serverless 的性能和稳定性有了质的飞跃,同时能让广大用户以最简单的方式用起来。