您的位置:首页 > 运维架构 > 网站架构

业务越复杂,架构越好用?企业多元化架构构建之道

2019-10-19 09:30 1021 查看

当前,大规模结构化数据呈现爆发式增长。随着 5G 和 IoT 的落地,对企业 IT 系统的性能、可靠性、安全性和扩展性等提出更高的要求。企业如何面对数据洪流,推进智能技术落地、打通和精简架构已成为企业进化的决定性因素。

2019 年 10 月 18 日,DevRun·选择不凡——华为云开发者沙龙走进北京,华为云的 5 位技术专家也针对鲲鹏开发、分布式数据库、ModelArts、IoT 平台、微服务中间件等内容,与现场开发者交流技术难点与解决方案。


1 基于鲲鹏开发的云上多元新架构怎么玩?

当前,国际贸易保护主义形势越发严峻,各企业已将探索全面自主可控的技术作为重要战略,并将重心放在多元化的底层、开发生态和云服务的探索和实践中。今年 1 月,华为基于 ARM 架构打造了自己的鲲鹏处理器,紧接着又基于华为鲲鹏处理器打造了华为云鲲鹏云服务和解决方案。“鲲鹏”一词逐渐在互联网圈内成为热议的焦点。

华为鲲鹏处理器采用 ARM 架构,主要看中其性能独占鳌头, 一个 ARM 核的面积仅为 x86 核的 1/7,而在同样的芯片尺寸下,ARM 的核数是 x86 的 4 倍以上, ARM 的众核架构也更符合分布式业务需求。此外,ARM 应用的场景也在快速丰富,从 2014 年只有存储,如今扩展到网页类应用、云服务、大数据、HPC、分析型数据库、交易型数据库、企业应用等。


华为云鲲鹏凌云计划架构师白雁提到,鲲鹏云提供的多元架构,可以让合适的应用跑在合适的算力之上,开启“术有专攻”的架构选择模式。同时,鲲鹏云支持混合云交付模式,比如华为云提供的 HCS(HUAWEI CLOUD Stack) 方案, 支持鲲鹏、x86 资源池混合部署,以及多厂商软硬件异构纳管。同时,华为云具备多样的计算能力,支持多行业应用,能实现多形态部署,并统一架构、统一 API、统一生态。


当前,鲲鹏的软件栈已包括 web、中间件、数据库、大数据、应用工具、管理监控、编译工具、开发工具、操作系统等。华为云正面向有业务系统云化转型需求、全栈国产化改造需求、产业云快速落地、技术选型或方案培训等企业需求,推出鲲鹏移植相关服务。

而对于应用鲲鹏化改造也并不复杂,主要分为两个维度:一是从云主机、容器部署方面,选择合适的部署方法;二是从开发语言方面,Java、Python、Node.js 等解析性语言可 0 工作量移植,C/C++ 需要重新编译,Windows 强依赖产品需先转化到 Linux 再移植。

2 华为云分布式数据库技术解读与思考

在云计算技术不断成熟的背景之下,云数据库开始崛起,并因为按需扩展、按需付费等特性获得大量中小企业及互联网客户的拥护。Taurus DB 是华为自研关系型数据库,完全兼容 MySQL ,其实例扩容数据可达 128T,并采用计算与存储分离、日志即数据的架构设计,支持 1 写 15 读,性能达到原生 MySQL 的 7 倍。

但随着企业海量数据管理、高并发、高可用、高可扩展性等诉求激增,催生了各种 NoSQL 数据库,NoSQL 的多样化同时也给应用开发者及 DBA 带来了新的挑战。包括业务故障定位难、数据冲突修复南、数据迁移导致的性能降低、故障恢复周期不断增长等。


基于这些问题,华为云数据库高级技术专家宋立勇重点讲述了华为云的解决方案。华为云数据库研发了一款多模 NoSQL 服务 GeminiDB。它是基于华为自主研发的计算存储分离架构的分布式非关系型数据库服务,以 100% 兼容开源接口、多副本强一致性与高可用、多模型一致的运维体验、秒级水平扩展和敏捷弹性伸缩、支持大规模租户的资源共享、首保证的时延和吞吐量 SLA 等特点为设计目标,在性能、海量数据处理、可靠性方面有明显优势。

面向云原生设计,GeminiDB 计算与存储分离架构具有如下特点
  1. 计算和存储资源解耦,独立弹性伸缩

  2. 计算节点全负荷分担

  3. 存储层内置多副本强一致

  4. 分布式共享存储引擎,扩缩容无数据迁移

  5. 存储层提供超低时延数据访问


在计算层,GeminiDB 基于基于开源版本改造,100% 兼容原生接口。存储引擎基于 RocksDB(LSM Tree 结构),支持结合业务特征深度定制调参。设置用户态文件系统,可以高效访问存储。实现 RocksDB 深度定制,秒级分裂弹性扩容,文件系统快照备份恢复,以及基于 WAL 的高效跨 Region 同步(Ongoing)等。

在存储层,GeminiDB 基于华为分布式存储技术,大规模存储资源池,优化面向 Append-Only 数据操作,同时支持 AZ 内 / 跨 AZ 多副本强一致。可以实现对基于裸金属服务器硬件的专属存储池的高效访问。既支持超低时延访问(100us),又支持介质多样化( NVMe,In-Memory)。

GeminiDB 的应用场景

游戏:兼容文档数据库协议,游戏应用可以将一些用户信息,如用户装备、用户积分等存储其中。游戏玩家活跃高峰期,对并发能力要求较高,集群可以应对高并发场景。其优势在于支持内嵌文档以应对数据峰值压力 。

IoT:多模 NoSQL 服务 GeminiDB 兼容 Cassandra 接口,拥有超强写入性能,专为密集写入而设计。它适用于各种不同的行业,例如制造业、物流业、医疗保健业、房地产业、能源生产业、农业等。无论传感器类型如何,都可以很好地处理传入数据,并为进一步的数据分析提供了可能。其优势在于超强的写入性能和弹性扩展能力。

互联网:多模 NoSQL 服务的快速读写和高可扩展特性使其适用于具有产品目录、推荐、个性化引擎等功能的电子商务网站和娱乐网站,可用于存储访问者的活动,有利于分析工具快速访问数据,为用户生成推荐。其优势在于超强的写入性能和大数据分析。

金融:多模 NoSQL 服务 GeminiDB 结合 Spark 等大数据分析工具,可应用于金融行业的风控体系,构建反欺诈系统。其优势在于可结合 Spark 等工具进行实时的反欺诈检测。

除此以外,GeminiDB 的特性也非常适用于工业制造、气象等多个场景场景。

3 ModelArts 带你体验 0 代码构建 AI 模型

深度学习引发了新一轮的 AI 浪潮,也逐渐成为各大互联网巨头加速扩张生态的重要能力之一。但对于很多企业来说,AI 的引入门槛太高,包括昂贵的算力、人才的高要求、数据的高质量等。就国内市场来看,已有不少企业布局机器学习云平台并对外提供服务,帮助小型团队快速将机器学习用于实际业务中。

ModelArts 是华为全栈全场景 的一站式 AI 开发平台,其最初是从华为内部衍生出来的一个产品。因为华为内有很多算法工程师、AI 开发工程者,也经常被繁多的 AI 工具安装配置、数据准备、模型训练慢等问题困扰,于是,他们将这些问题的解决方案积累下来,最后做成了 ModelArts 这个平台。华为云 EI 布道师、华为开源中心算法专家王龙步老师在现场带领大家动手体验了这一过程。


ModelArts 提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成,及端 - 边 - 云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期 AI 工作流。


在数据处理方面,ModelArts 已支持 7 种类型的数据集标注,包括图像分类、物体监测、声音分类、语音内容、语音分割、文本分类、命名实体等,并支持点、直线、虚线、折现、圆、矩形框、多边形等多种标签工具。

ModelArts 支持各种 AI 场景,如计算机视觉、自然语言处理、音视频场景等;支持图片、文本、语音、视频多种标注任务,如图片分类、对象检测、图片分割、语音分割、文本分类等场景的数据标注任务;同时支持面向自动驾驶、医疗影像、遥感影像等领域标注的数据处理和预标注。

此外,ModelArts 已实现智能标注:使标注效率提升 70%,基于主动学习和预置模型,系统边标边学,越标越准;使标注质量有保障,用户可自建团队,灵活控制标注任务分发和质检策略;可以灵活进行数据管理,支持增量式导入、训练集导出、多版本管理、难例管理等。

在模型训练方面,ModelArts 支持零编码自动学习。同时基于开源或行业数据集配以 30+ 预置模型,可达到一键训练。

在模型部署方面,ModelArts 已实现 AI 模型的自动部署上线,支持各种部署场景的一键部署,并进行在线推理、批量推理、边缘推理和端侧推理。在线推理可以实现高并发,低延时,弹性伸缩,并且支持多模型灰度发布、A/B 测试;批量推理可以处理大量数据,实现高效分布式计算;边缘推理可与 IEF(智能边缘平台)深度整合,并基于华为自研 Ascend 芯片进行高效推理;端侧推理则可做到端云协同、一键部署,同时也基于 Ascend 芯片进行高效推理。支持各种部署场景,既能部署为云端的在线推理服务和批量推理任务,也能部署到端,边等各种设备。

在 AI 市场方面,ModelArts 的 AI 市场提供了常用数据集,列举了其他用户共享的模型、API,开发者可以使用他人分享的信息快速构建模型。同时也可以将自己的 API 或模型发布至 AI 市场,共享知识。

4 基于华为智能 IoT 平台,快速构建行业应用

物联网 (IoT)是数字化转型的下一阶段。根据华为 GIV(全球产业愿景)报告预测,2025 年全球联接的设备数将达 1000 亿, 5G、云、IoT、AI 的融合应用正在塑造一个万物感知、万物互联、万物智能的世界。

对于企业来说,IoT 平台不仅仅是把物联网设备和软件模块紧密的结合在一起,更重要的是增加了平台参与者之间的关联,也加强了流程、工具、数据方面的管理。除了部署成本外,企业要获取“物联接”的红利,需要解决数字感知、联接和商业价值闭环的问题。

华为 IoT 生态服务产品经理谢冲提到,面对物联网挑战,从架构取向的趋势可以看到,现在整个物联网基本上呈现一个“烟囱式”,转变架构的替代,逐渐会向聚合式的架构去发展。聚合是整个行业发展的一个必然趋势,聚合才可以通过平台来统一物的语言,让物更有价值。


作为 ICT 与 IoT 领域的核心推动者,华为致力于解决产业物联网的共性难题。在技术层面,华为云 OceanConnect IoT 云服务汇聚华为的关键技术积累,聚焦”Access + Insight + Action“使能行业服务,解决设备协同管理、数据分析成本高、行业差异性大等问题。在垂直领域方面,华为深耕重点行业,与车联网、智慧交通、智慧物流、智慧城市、智慧工业的龙头企业联手,从技术、政策、生态等多个维度深度融合,共同应对行业转型挑战,合理推动产业物联网发展。


5 微服务架构中的一致性实践

在开发或软件架构的过程中,经常会遇到一致性的问题。尤其是在微服务架构下,每个微服务都有自己的数据库,导致微服务架构的系统不能简单地满足 ACID,我们就需要寻找微服务架构下的数据一致性解决方案。

传统情况下,当一个事务要跨越多个分布式服务时,开发者想到的第一个方案就是两阶段提交——2PC。在这个过程中,事务协调者(事务管理器)给每个参与者(资源管理器)发送 Prepare 消息,如果参与者有可用资源,对数据加锁,如果所有参与者都返回成功,就执行第二阶段,否则,执行回滚操作。

由于数据库通常比业务服务更难扩容,而两阶段提交需要依赖于数据库实现,并且对数据加锁,所以性能较低,应用并不是十分广泛。


那么,如何保证微服务架构中的数据一致性?华为云 PaaS 团队架构师王启军老师提到了几个方面:

1、可靠事件通知模式

该模式下,一种通知模式是同步事件,即主服务完成后将结果通过事件(以消息队列为主)传递给服务,进而完成业务流程,达到主服务与服务间的消息一致性。另一种是异步事件,即业务服务和事件服务解耦,需要将提交失败的事件进行重试,目前业界多数采用本地消息表 +MQ 的方式来进行重试,但也因此对数据库产生压力。

2、使用 Saga 保证微服务的最终一致性

Saga 将一个跨服务的事务拆分成多个事务,每个子事务都需要定义一个对应的补偿操作。通过异步的模式来完成整个 Saga 流程。具体操作是将项目创建流程拆分成多个 Saga,并为 Saga 分配一个事务管理器。当服务启动时,会讲服务中所有的 SagaTask 注册到管理器中。在业务执行时,执行状态可以通过事务管理器进行查看。

3、TCC/Try Confirm Cancel 模式

在 TCC 模式下,当一个服务提交失败时,可以做到完全补偿,且在补偿后不留下补偿记录。这样可以在业务层处理时,平衡数据库的压力。但其代价也在于增加了业务的复杂度,需要提供相应的 Try、Confirm、Cancel 接口等。

4、华为云分布式事务服务—DTM

DTM 是华为云分布式事务管理中间件,它的具体步骤是,先由实物发起者向 DTM 集群申请注册一个全局事务的 ID,并透传到所调用的事务参与者中,事务参与者利用饿到的 ID 向 DTM 集群注册申请一个分事务 ID,在事务参与者完成资深业务逻辑后,将结果上传至 DTM 集群,并示意分支事务结束,在后续完成 TCC 二阶段后,DTM 集群通稿事务发起者全局事务结束。具体流程如下图所示:


最后,王启军老师总结:不是所有的地方对一致性要求都这么高,要根据自己的业务需求来选择一致性的模型。一致性没有绝对的,更严格的一致性只是降低概率而已,更高的一致性需要更高的成本,需要企业综合考虑。

本次 「DevRun·选择不凡」华为云开发者沙龙走进北京,将华为云核心的研发成果和能力开放共享给现场开发者,实现技术布道。华为云愿与开发者一同成长,碰撞出新的火花。


6 最新预告

10 月 25 日,“DevRun·选择不凡,华为云开发者沙龙 2019”将在长沙继续与开发者见面,5 位来自华为云的资深技术专家,将分别从数据库、云会议、AI、沃土数字平台、微服务等话题方向,为开发者分享华为云的技术实践与开发心得。在长沙的朋友们,点击原文链接报名吧~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: