共计 2949 个字符,预计需要花费 8 分钟才能阅读完成。
“墙高基下,虽得必失。”在构建数字企业大厦的工程中,根底软件的重要性显而易见。但对于各行各业而言,面向传统经营模式设计的根底软件曾经难以撑持数字业务的翻新,唯有吸取业余团队的教训,缩短根底软件降级摸索的工夫,方能排除后顾之忧投入业务和治理的数字化,全心应答寰球大环境的危险及行业的不确定性。
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 存储系统次要有三个起因:
- 不足代码量少自主可控的对立分布式存储系统,Ceph 代码量达到 100W+,要齐全相熟和把握十分艰难;
- 现有开源存储系统呈现故障时,对下层利用影响大,运维难度高,Ceph 采纳强一致性协定,会导致系统呈现故障时 I / O 频繁抖动;
- 现有开源存储系统无奈提供更高的性能,在通用硬件下满足外围利用场景的需要。
易运维次要的外围挑战是如何无效晋升零碎的可用性以及可靠性,当零碎产生故障的时候,既能保证数据的一致性同时也把故障的影响升高到最小。为了达成 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 块存储。