AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

数字化时代,网易数帆是如何做基础软件创新的?

  • 2022-04-19
  • 本文字数:2798 字

    阅读完需:约 9 分钟

数字化时代,网易数帆是如何做基础软件创新的?

“墙高基下,虽得必失。”在构建数字企业大厦的工程中,基础软件的重要性不言而喻。但对于各行各业而言,面向传统经营模式设计的基础软件已经难以支撑数字业务的创新,唯有汲取专业团队的经验,缩短基础软件升级探索的时间,方能排除后顾之忧投入业务和管理的数字化,全心应对全球大环境的风险及行业的不确定性。


2022 年 04 月 15 日-16 日,以“深入基础软件,打造新型数字底座”为主题的首届DIVE全球基础软件创新大会在线上举办,本次大会由 InfoQ 主办,旨在打造基础软件领域内容最丰富、最前沿、最具技术性的行业大会,成为基础软件领域的风向标。网易数帆的两位资深架构师,翁扬慧和向东受邀参加本次大会,分别做了题为《网易数帆在混合微服务架构下的统一治理实践》和《面向未来的分布式存储设计》的演讲,分享了网易数帆在支撑网易业务和服务行业客户过程中沉淀下来的数字化基础软件创新经验。

统一服务治理破解技术碎片化难题


翁扬慧介绍了混合微服务技术架构的存在背景以及当前面临的问题,统一治理需要解决的核心问题和难点,提出了遗留历史业务如何优雅从框架升级至服务网格的思路,分享了网易数帆如何通过产品设计让微服务统一治理更加优雅。



微服务从最早被作为一种架构设计模式提出以来,至今已经有 10 多年的时间,微服务技术被广泛应用在企业的业务架构设计中。从开发框架的技术选型上来看,Dubbo 和 Spring Cloud 是目前主流的两大 Java 语言微服务开发框架选型,但仍有一些企业是基于私有的内部框架,甚至有的还没有完全微服务化。


因为技术的更新迭代,以及业务快速发展,需要引入新的技术来应对复杂的业务场景,导致业务技术架构在演进过程中面临技术的“碎片化”问题,体现在多个方面:


1. 微服务框架难以统一治理,Java 在企业级应用开发中依然占据最大份额,无论是使用 Spring Cloud 还是 Dubbo、gRPC 等,甚至是私有的开发框架,都存在服务治理的需求,不同的微服务框架之间如何实现相互发现,如何进行统一治理是很多企业团队面临的痛点问题。


2. 异构语言难以统一治理,针对不同业务场景,使用不同的开发语言往往更加能发挥语言特性优势,例如使用 C++开发高性能、低延迟的业务,使用 Python 开发人工智能、数据分析类应用,这些异构语言应用也需要进行统一的治理,例如提供流量管理、安全控制等能力;


3. 中间件难以统一治理,不同的微服务技术选择存在不同类型的注册中心,同时还存在例如配置中心、认证中心,还有多种通用的数据和消息类中间件例如 MySQL、Redis、ES、Kafka 等,如何进行有效的统一管理,实现云化的高效、智能运维也是业务团队的诉求之一;


4. 运行环境难以统一治理,随着云原生技术的发展,从物理机到虚拟机,再到容器化的应用运行环境变迁正在成为一种标准演进路线,企业的业务部署也从私有云、公有云,到混合云的模式发展,来解决资源弹性伸缩、业务容灾保障方面要求,不同的基础环境,也需要在业务层进行有效的屏蔽差异,统一治理。


除此之外,还有一些通用的基础技术组件、业务部署架构方面需要有更加统一、标准化的设计诉求,体现在不同技术架构中的不同维度、各个层面。而业务研发团队往往因为要支撑业务发展投入精力在业务开发中,因而存在技术演进过程中带来的各种技术债务,也是当前企业在数字化转型升级过程中面临的痛点。



网易数帆轻舟微服务团队,在多年的内外部客户支撑过程中,尤其在微服务和云原生技术领域,积累了大量的经验和最佳实践,并且沉淀了一套面向企业级的微服务统一治理平台。通过业界领先的无侵入式微服务治理技术、双引擎多模式统一治理、中间件 PaaS 化管理等来解决企业在架构升级过程中面临的技术难题,通过提供一站式的微服务平台控制台,助力企业用户以最小的改造、使用成本快速实现业务的统一治理,从而让业务团队更加关注于专业领域的业务开发,提升企业整体的研发效率,实现成本优化。


此外,翁扬慧还在本次分享中指出,轻舟微服务团队近年来,在金融行业做了不少的优秀案例,并且总结沉淀了金融行业经验。通过提供全站式的分布式技术能力底座,以及两地三中心、异地多活等业务架构支撑能力,来帮助传统金融企业实现核心业务的分布式技术改造升级,从而实现去 IOE,最终达到全栈技术国产化、自主可控的终极建设目标。

面向未来的分布式存储设计


向东结合网易数帆开源云原生软件定义存储软件 Curve 的研发背景、应用场景介绍了分布式存储架构的最新发展,如何通过合理的设计达成设计目标,存储优化的细节,以及 Curve 的发展方向和演进等。Curve 是一个分布式的存储系统,它包含两部分 CurveBS 分布式块存储系统和 CurveFS 分布式文件存储系统,目前 CurveBS 已经在公司内部广泛应用,CurveFS 在开发演进当中。



在存储和计算分离的趋势不断发展过程中,越来越多的云上应用依赖存储与计算分离的架构。存算分离能够深度优化资源实现计算和存储资源的弹性扩展,按需分配。Curve 就是为了满足存算分离的需求而诞生的云原生存储系统,具备高性能、易运维、云原生特点。


网易数帆选择自研 Curve 存储系统主要有三个原因:


  1. 缺乏代码量少自主可控的统一分布式存储系统,Ceph 代码量达到 100W+,要完全熟悉和掌握非常困难;

  2. 现有开源存储系统出现故障时,对上层应用影响大,运维难度高,Ceph 采用强一致性协议,会导致系统出现故障时 I/O 频繁抖动;

  3. 现有开源存储系统无法提供更高的性能,在通用硬件下满足核心应用场景的需求。


易运维主要的核心挑战是如何有效提升系统的可用性以及可靠性,当系统发生故障的时候,既能保证数据的一致性同时也把故障的影响降低到最小。为了达成 CurveBS 的易运维目标,网易数帆采用了 RAFT 协议。使用 RAFT 协议不仅能保持数据的一致性,同时也能降低写 I/O 的响应延迟,它只需要大多数副本复制请求成功返回就可以表示数据写入成功。


为了提升数据的可靠性,网易数帆在拓扑结构上采用了故障域的概念,同时在数据分布方面使用了 copyset 算法,来保证当故障发生时,数据丢失的概率最低。当存储系统在线升级时采用了特殊的客户端设计来保证存储系统的在线升级。



要达成 CurveBS 的高性能目标,三大板斧主要是降低底层 I/O 的写放大、提升 I/O 数据的吞吐率、降低 I/O 的延迟。网易数帆采用了 ChunkFilePool 预先创建文件池的方式降低 I/O 的写放大,并使用 DataStrip 数据条带类似 Raid 的方式来提升数据的吞吐率,使用 zerocopy 来降低 I/O 数据拷贝引起的开销。


相比于 CurveBS 来说,CurveFS 需要面临更复杂的负载以及更多样化的应用场景,例如:兼顾性能与容量的机器学习场景、快速跨云弹性发布的业务场景、低成本大容量需求的业务、中间件冷热数据自动分离、S3 和 POSIX 统一访问需求。


网易数帆的方案是首先在元数据层面保证文件元数据的性能与空间线性可扩展、使用 RAFT 协议保障在系统故障时的数据一致性和可用性、使用多层 cache 来提升数据和元数据服务的性能。目前 CurveFS 已经支持了底层的 S3 对象存储,并能对外提供 POSIX 兼容的文件服务,网易数帆存储团队还在优化 CurveFS 的性能,正在开发支持接入 CurveBS 块存储。

2022-04-19 16:043340

评论

发布
暂无评论
发现更多内容

500行代码手写docker-实现硬件资源限制cgroups

蓝胖子的编程梦

容器 k8s ,docker Cgroups #k8s

基于WebGPU的AI原生3D引擎迎来新机遇!Orillusion在GOTC上演讲!

Orillusion

开源 渲染引擎 元宇宙 webgpu AIGC

GitHub发布即百万!字节内网超实用 java性能优化手册,star超十万

Java你猿哥

Java ssm jvm调优 Java性能优化

如何避免写重复代码:善用抽象和组合

阿里技术

Java 代码实战

设计模式之模板方法模式

越长大越悲伤

设计模式

量子程序设计基础 | 从经典计算到量子计算

TiAmo

量子计算 经典计算

华为云UniXcoder-VESO-v1问鼎CodeXGLUE榜单第一名

华为云PaaS服务小智

算法 代码 华为云 代码语义

一块显存为 12GB 的 GPU 卡能够在CST 时域求解器仿真的最大网格数是多少?

思茂信息

cst cst使用教程 cst操作 cst电磁仿真 cst仿真软件

GitHub上开源24小时获星96K的,从零到实战Java架构师成长手册

Java你猿哥

架构 架构师 高可用架构 高性能架构 高可扩展

前端开发如何更好的避免样式冲突?级联层(CSS@layer)

vivo互联网技术

CSS 级联 @layer

2023数博会丨软通智慧发布“一屏统揽”TongView 数字政府慧治平台解决方案

说山水

硬核!阿里2023版Spring全家桶进阶笔记流出,堪称Java跳槽神器

Java你猿哥

spring Spring Boot spring security Spring全家桶 Spring Cloud Aliababa

引领下一代云计算技术的变革:无服务器架构

xfgg

云计算 severless

深度理解:Redis Hash(散列表)实现原理

Java你猿哥

redis 开源 ssm hash 散列表

5月书讯 | 《这就是ChatGPT》来了!

图灵社区

数学 书单 书单推荐 GPT

Solaris Network:BSC上首个链上合成资产解决方案

鳄鱼视界

刚入职的后端开发问我SpringBoot如何跨域配置?我表示

Java你猿哥

Java Spring Boot ssm 跨域

如何将千亿文件放进一个文件系统,EuroSys'23 CFS 论文背后的故事

百度Geek说

数据库 云计算 百度 企业号 5 月 PK 榜

创建矢量图形:Patternodes 3 免激活版

真大的脸盆

Mac Mac 软件 矢量图形创作 创建矢量图形

使用 Node.js、Socket.IO 和 GPT-4 构建 AI 聊天机器人

devpoint

node.js websocket GPT-4

5月书讯 | 《这就是ChatGPT》来了!

图灵教育

数学 书单 GPT

Health Kit文档大变样,一起尝鲜!

HarmonyOS SDK

HMS Core

MatrixOne 助力开启分布式计算格局新征程

MatrixOrigin

分布式数据库 HTAP MatrixOrigin MatrixOne 矩阵起源

大语言模型技术原理

NineData

AIGC ChatGPT AI大语言模型 大语言模型 技术原理

从7天到1天,Kyligence 和亚马逊云科技助力欣和提高数据应用价值

Kyligence

数字化转型 指标平台

为什么要用线程池?

javacn.site

4 种 MySQL 同步 ES 方案,yyds!

Java你猿哥

Java MySQL sql elasticsearch Binlog

解锁人机交互新技术 华为开发者联创日·全栈AI黑客松大赛等你来

说山水

如何科学地利用MTTR优化软件交付流程?

SEAL安全

DevOps MTTR 企业号 5 月 PK 榜

阿里架构组分布式架构技术使用心得:全在这一份文档里面了

Java你猿哥

架构 分布式 ssm 分布式架构 安全架构

一次错误的解码处理导致Netty堆外内存泄漏问题的分析

Java你猿哥

Java Netty ssm RSS 逻辑

数字化时代,网易数帆是如何做基础软件创新的?_文化 & 方法_网易数帆_InfoQ精选文章