资源成本降低70%!华为MetaERP资产核算的Serverless架构实践

资产核算是指在一定的财务周期,对企业拥有的房屋建筑物、机器设备、商标权和专利权等资产的取得、折旧和处置的会计核算,反映企业固定资产、无形资产的增减变动和价值分摊活动。华为资产核算产品,支撑企业资产从获取到处置全生命周期的管理和交易核算,在资产使用寿命内遵循会计准则和税法折旧的要求系统地计提资产折旧费用。

华为集团资产核算场景非常复杂,具备以下四大特点:

数据海量

管理的固定资产和无形资产的数量多达200多万项;

涉及国家多

覆盖国际会计准则和全球170多个国家的会计准则和税法政策要求;

业务流量不均衡

平时业务流量少,月末结账场景流量巨大,特别是在季结、年结时,1~2小时内需完成200多万笔资产折旧、300多万的分录生成;

原先业务是基于关系型数据库构建,这套架构能很好地解决数据一致性控制,但强依赖数据库性能,在业务数据流量不均衡的情况下,系统计算资源无法实现弹性伸缩。平日业务数据流量小时,系统资源大量闲置未得到有效利用,一旦遇到业务冲刺、月结等数据洪峰,系统资源又无法弹性扩容,导致业务数据积压,严重影响业务处理效率。

  • 服务弹性慢,业务峰值处理性能不足:在月底、年底结账期,批量导入导出等任务集中生成,服务CPU资源利用率会瞬间突增至50%到100%不等。服务弹性能力较弱,启动时延超过了1分钟,一旦出现预留资源不足的情况,极易影响业务性能,导致无法在1~2小时内完成百万级资产核算业务的处理;

  • 周期性集中处理型业务,预置资源利用率低:以批量上载、资源折旧两个业务为例,虽然平时很少使用,但为了保证服务随时可用,仍然需要保持最低配置在线,业务平均资源利用率不到2%。随着资产核算业务的不断演进、微服务数量增加,资源成本问题被进一步放大;

  • 业务上线周期长,运维压力大:业务开发人员不仅要关注业务逻辑,还要额外考虑高并发等极端场景的处理,开发工作量大,问题多。在业务上线前需提前采购、配置硬件资源,日常运行时,不同服务弹性策略不同,需投入大量精力进行资源类的运维工作。业务的版本上线时间达到月级,无法快速响应客户需求;

为了进一步优化资源成本、简化服务开发,实现应用的现代化的转型,MetaERP资产核算业务决定采用华为云函数工作流 FunctionGraph试点Serverless化服务改造:

1、全自动弹性,算力随叫随到,轻松应对流量波峰

资产核算业务相关服务采用Java开发,改造为函数后,面临冷启动的问题。通过创新的进程级快照加速方案,应用直接从初始化后的快照进行运行环境恢复,从而跳过复杂的框架启动、业务初始化阶段,助力资产核算业务冷启动时间缩短到7秒,相比之前一分钟的启动时延,性能提升10倍。同时,FunctionGraph按请求并发量全自动弹性,无需再手动扩缩容,弹性速度实时匹配业务量,轻松应对流量波峰。

2、无请求时不需启动业务实例,资源成本降低70%

函数实例随请求自动扩缩容,在没有请求时,实例会缩容到0。基于此能力,针对批量上载、资源折旧类业务场景,减少了最小预置实例资源,资产核算业务Serverless化改造后常驻实例资源降低75%,月均资源消耗降低70%,收益显著。

3、存量业务无缝迁移,新业务开发运维效率提升3倍

资产核算存量业务基于SpringBoot等微服务框架开发,直接改造为原生函数方式工作量非常大。为此FunctionGraph提供了Springboot等框架兼容能力,服务只需集成统一SDK,并进行少量配置文件修改,即可完成改造,实现微服务平滑Serverless化。同时,对比传统微服务框架,FunctionGraph内置心跳检测、服务治理等能力,使能业务更聚焦。

同时,新业务使用华为云函数工作流 FunctionGraph开发,可拆解粒度更小、开发并行度更高。函数本身依赖后端数据库、消息队列等服务,需要集成多个SDK才能实现访问,开发复杂度高。对此FunctionGraph提供了统一对接后端链接能力(ServiceBridge),简化业务访问后端服。

ServiceBridge也天然具备弹性能力,当访问量激增时自动进行扩容。基于原生函数开发模式,可实现天级业务上线、免资源运维,以资产核算为例,业务上线时间从94人天(传统的应用构建流程)降低至30.5人天,大大提升了开发和运维效率。

首战告捷——持续推进MetaERP应用现代化

华为云函数工作流FunctionGraph将持续打造通用Serverless技术竞争力,致力解决Java服务启动慢、弹性能力不足等问题,使能负载在硬件资源的“细粒度”复用,以提高资源的利用率。同时提供与“硬件无关”的编程抽象和系统服务,简化分布式应用的开发、部署和运维。

MetaERP资产核算业务Serverless化后性能未劣化,常驻实例资源降低75%,月均资源消耗降低70%,成本优化收益明显。同时服务上线时间降至30.5人天,提升了开发运维效率。

接下来,华为云函数工作流FunctionGraph将持续围绕“极简架构、极高质量、极低成本、极优体验”的目标,持续技术创新,助力MetaERP Serverless化,用技术力量提升企业服务质量、效率、体验。

图片

在2023年7月25日,由中国信息通信研究院(以下简称“中国信通院”)和中国通信标准化协会联合主办的2023可信云大会上,华为云函数工作流FunctionGraph凭借此最佳实践荣获“可信云2022-2023年度云原生-Serverless技术最佳实践”。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/9684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速锐得智能汽车车身域CANFD控制芯片MCU接口电路原理图

CAN总线技术不仅涉及汽车电子和轨道交通,还涉及医疗器械、工业控制、智能家居和机器人网络互连,这些行业对CAN产品的稳定性和抗干扰能力都有很高的要求。 上篇我们讲了在汽车CAN FD上,数据出错可能导致数据位被错误地解析为填充位&#xff0c…

MyBatis源码剖析之二级缓存细节

MyBatis是一个流行的Java持久化框架,它提供了许多功能,包括支持一级缓存和二级缓存。 一级缓存是默认开启的,它是在SqlSession层面的缓存。在同一个SqlSession中,如果执行了相同的SQL语句,那么第二次执行将从缓存中获取…

求整数中的最大值

才用打擂台的形式,先放一个数max在擂台上,然后每个数都上去和他比较,如果上去的那个数比max大,那么就把max替换成那个数站在擂台上,依次比较,直到所有数都比较完后,站在擂台上的那个max就是最大…

2023年深圳杯数学建模C题无人机协同避障航迹规划

2023年深圳杯数学建模 C题 无人机协同避障航迹规划 原题再现: 平面上A、B两个无人机站分别位于半径为500 m的障碍圆两边直径的延长线上,A站距离圆心1 km,B站距离圆心3.5 km。两架无人机分别从A、B两站同时出发,以恒定速率10 m/s…

玩转ChatGPT:Custom instructions (vol. 1)

一、写在前面 据说GPT-4又被削了,前几天让TA改代码,来来回回好几次才成功。 可以看到之前3小时25条的限制,现在改成了3小时50条,可不可以理解为:以前一个指令能完成的任务,现在得两条指令? 可…

Hadoop优化

1.Datanode管理多块数据盘 1.理解 其实就是扩展Datanode空间,之前一个盘,现在加一个盘或者多个盘, 2.优点: 1.提高容错(避免硬盘损坏全部数据丢失)2.实现数据分离模式存储(框架本体与数据分离,集群出现问题数据可进行单独恢复,这样也是提高容错) 3.配置(临时挂…

认识雪花id

首先,个人理解,雪花id不是全球的,它只能保证一个分布式服务的范围内的ID是不重复的. 一.SnowFlake 雪花算法 SnowFlake 中文意思为雪花,故称为雪花算法。最早是 Twitter 公司在其内部用于分布式环境下生成唯一 ID。在2014年开源 scala 语言版本。 雪花算法的原理…

SpringBoot实战(二十三)集成 SkyWalking

目录 一、简介二、拉取镜像并部署1.拉取镜像2.运行skywalking-oap容器3.运行skywalking-ui容器4.访问页面 三、下载解压 agent1.下载2.解压 四、创建 skywalking-demo 项目1.Maven依赖2.application.yml3.DemoController.java 五、构建启动脚本1.startup.bat2.执行启动脚本3.发…

uniapp 微信小程序 预览pdf方法

效果图: 1、在小程序中 // #ifdef MP */ 是区分运行的环境,在小程序中可使用如下方法uni.downloadFile({url: item.link,//文件地址success: function (res) {var filePath res.tempFilePath;uni.openDocument({filePath: filePath,showMenu: false…

多线程面试题--线程池

目录 介绍 线程池的核心参数/执行原理 核心参数 执行原理​编辑 常见的阻塞队列 ArrayBlockingQueue和LinkedBlockingQueue区别 如何确定核心线程数 线程池的种类有哪些 创建使用固定线程数的线程池 单线程化的线程池 可缓存线程池 “延迟”和“周期执行”的线程池 总…

理光310/320/325系列激光打印机加粉后不换芯片清零方法

设置步骤: 依次按停止107开始键进入维修模式, 按下键两次选择Engine Maintenance,点OK键进入, 按上键选择Refill mode项后点OK键, 按下键选择到Pure refill mode后点Ok键(默认是Auto refill mode), 然后按两次后退…

【MySQL】索引是什么东东?

书中的目录,就是充当索引的角色,方便我们快速查找书中的内容,所以索引是以空间换时间的设计思想。 索引和数据位于存储引擎中,MySQL默认的存储引擎是InnoDB。 1 为什么MySQL采用B树作为索引? 1.1 其他数据结构为什么…

PostgreSQL--实现数据库备份恢复详细教学

前言 这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:RodmaChen PostgreSQL--实现数据库备份恢复详细教学 一. 数据库备份二. 数据库恢复三. 存留问题 数据库备份恢复功能是每个产品所需的,以下是简单的脚本案例&a…

3-Linux实操

Linux实践操作 开关机、重启、用户登陆注销关机&重启用户登陆和注销 用户管理添加用户修改用户密码删除用户查询用户信息切换用户查看当前用户用户组的添加和删除用户和组相关文件 实用指令指定运行级别init 命令帮助指令文件目录类时间日期类搜索查找类🔍压缩和…

Java获取调用当前方法的方法名和行数(亲测可行)

有时候一个方法被很多方法调用了,但是在调试应用程序的时候,需要知道是哪个方法调用它的,方便定位bug问题。否者,比较难以理清和解决一些bug问题。 适用:任何适用java语言编程的地方,java后端和android端。…

实用人工智能 2.0,在线“学习、探索和构建”ML 模型

人工智能爱好者过去需要在一个好的GPU上投资数千美元才能“动手”进行机器学习,但现在一个简单的网络浏览器就足够了。总部位于硅谷的非营利组织PracticalAI最近发布了“PracticalAI2.0”,该平台包括TensorFlow 2.0Keras中的说明性机器学习课程&#xff…

嵌入式管理程序

在功能强大的计算机中使用虚拟机管理程序的想法是众所周知的。它有利于同时使用多个操作系统,并提供了可以在其中部署未修改的旧版软件的虚拟化环境。虚拟机管理程序在现代嵌入式系统中也占有一席之地。本文考虑了嵌入式管理程序的特性,它可以提供的功能…

【计算机网络】2.1——物理层(编码波形、奈氏准则和香农公式计算)

物理层 基本概念 概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流 为数据链路层屏蔽了各种传输媒体的差异 数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么 物理层协议主要任务 机械特性 指明接口所…

计算机网络最基础知识介绍

OSI和TCP/IP是很基础但又非常重要的知识,很多知识点都是以它们为基础去串联的,作为底层,掌握得越透彻,理解上层时会越顺畅。今天这篇网络基础科普,就是根据OSI层级去逐一展开的。 01 计算机网络基础 01 计算机网络的分类 按照网络的作用范围:广域网(WAN)、城域网(MA…

uniapp:手写签名,多张图合成一张图

要实现的内容&#xff1a;手写签名&#xff0c;协议内容。点击提交后&#xff1a;生成1张图片&#xff0c;有协议内容和签署日期和签署人。 实现的效果图如下&#xff1a; 1、签名页面 <template><view class"index"><u-navbar title"电子协议…