当前位置: 首页 > news >正文

从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望

作者:金峰(项良)、朱永林、赵世振(寰奕)

公司简介

杭州热联集团股份有限公司成立于 1997 年 10 月,是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务,业务品种涵盖钢铁原料、钢铁产品及以铜为主的有色金属等。

2023 年,热联集团实现销售总量 9634 万吨,销售收入 2555 亿元,业绩增长 50%。

2016-2023 年,公司连续八年蝉联中国钢贸企业百强榜综合榜前三。入选国务院国资委“双百行动”企业名单,以及浙江省政府“凤凰计划”名单,被列入浙江省首批内外贸一体化“领跑者”培育企业。

目前热联集团的网点建设遍布国内 31 个城市及境外 17 个国家和地区,业务范围覆盖全球 52 个国家和地区。在全球钢铁、橡胶等大宗商品贸易行业,“热联”品牌享有优异的商业信誉和企业形象。

业务高速发展下面临的挑战

早期,热联自主研发了一系列垂直业务功能系统,包括大宗贸易相关的资金管理和交易系统(如保融资金管理系统、投资系统、量化交易系统等)、企业内部管理相关系统(如 HR 系统、报销系统、企业招投票系统等)、企业经营管理相关系统(如自研 ERP、租赁 SAAS 系统),以及物流交付相关系统(如配送系统、TM、WMS)。这些系统部署在 IDC 的自建 K8S 中,采用微服务架构,通过 Spring Cloud + Nacos 实现微服务应用间的远程调用和服务发现,并使用 APISIX 作为南北向网关,实现统一的认证、鉴权和入口流量管控。

然而,随着业务的迅速发展和品牌的日益壮大,原有的技术架构逐渐显露出多方面的瓶颈和挑战:

  1. 软件迭代效率低下: 由于所有业务都部署在 IDC 中,每次新业务上线或系统扩容时都需要经过复杂的招采流程,导致交付周期漫长,业务人员对效率问题怨声载道,运维人员也倍感压力。
  2. IT 运维难度大: 开源技术产品的复杂性要求运维人员具备较高的专业技能。例如,Nacos 和 APISIX 的安全漏洞修复和版本升级给运维人员带来了不小的挑战,尤其是出现问题后排查过程非常复杂。
  3. 稳定性难以保障: IDC 中的服务器和网络设备需要专门的供应商和 ISV 来维护,且面临设备过保等问题。部分开源中间件存在稳定性风险,特别是 APISIX,其部署架构包括控制台、服务端和 ETCD 三个组件。ETCD 作为核心中枢,负责存储和推送所有路由规则,一旦崩溃会导致整个网关不可用。由于 ETCD 的运维复杂且问题排查困难,每次崩溃后只能基于备份恢复并重启网关。
  4. 资源成本高: 热联的业务具有明显的峰谷特性,非工作时间段请求量极低。但由于招采流程复杂且对稳定性要求高,机房中长期需要冗余一定的机器资源,增加了运营成本。

为了解决这些问题,热联组建了一个由资深技术专家和运维人员组成的研究小组,对市场上的各种解决方案和多家云厂商进行了全面调研和比较,希望找到一套能够实现以下目标的云厂商:

  1. 核心技术必须是自主可控并且支持信创。
  2. 无缝的迁移现有的基础架构到完全符合云原生标准的技术栈,同时确保业务过渡时的无损。
  3. 在微服务架构的 Paas 层中间件和数据库等产品是业界权威且产品自身有很高的可靠性,并且经历了多年的市场验证。
  4. 灵活性至上,符合业界的主流规范、兼容开源,且提供较强的开放能力,企业可以根据自身的具体情况和标准自主定制,不受平台限制。

最终,热联在阿里云的专家团队的帮助下,找到了一条相对可行的解决路径,阿里云提出的全栈上云+云原生解决方案不仅可以满足热联提出的所有研发、运维和稳定的要求,还为企业未来的技术发展提供了强大的支持和灵活的扩展性。

热联的核心业务系统从 IDC 全栈迁移到阿里云后,稳定性提升了 100% 、研发效率提升了 30% 、综合成本下降了 50%

微服务架构的性能与稳定性提升

为了提升研发效率和稳定性、热联的核心业务系统都是微服务架构,开发语言以 Java 为主,并且全面拥抱了 Spring Cloud 的生态。一直以来热联对微服务技术都有比较高的追求。因此在云平台的选型上,微服务技术的相关产品需要满足高开放性、高成熟度、高普及度、高可用,四条标准缺一不可。

阿里云上的 MSE(微服务引擎)源自阿里巴巴微服务架构的最佳实践,是一个面向业界主流开源微服务生态的一站式微服务平台,提供注册配置中心、云原生网关、微服务治理和分布式任务调度能力。在高可用性方面自 08 年诞生以来历经了多年双十一考验。云上的商业化产品均是多可用区容灾架构,承诺可用性 SLA 99.95%。在高成熟度和高普及度方面,MSE 的注册中心 Nacos 和云原生网关 Higress 在开源社区都有比较强的影响力,并且产品的创始人团队稳定,出现问题后能第一时间找到专业的技术人员兜底。

因此,MSE 的 Nacos 和云原生网关就成了微服务技术平替的最佳选择。

APISIX 迁移到云原生网关

首先是网关的迁移,阿里的专家们在充分了解的热联 APISIX 的用法后,针对与我们目前 APISIX 上的所有功能用法,云原生网关都给出了功能对标文档和使用实践。

在迁移测试过程中,阿里的专家们,针对与我们提出的任何问题都能第一时间响应并快速解决问题,最典型的是在自定义认证鉴方面,原有热联使用的是 APISIX 的 forward-auth,forward-auth 插件实现鉴权比较灵活,用户可以任意定义鉴权服务并暴露鉴权服务的 url,然后鉴权完成后,可以通过 request header 把 clientip、目标路由的 url、token 都传递下去,而现有云原生网关默认的自定义鉴权无办法很好的满足需求,如果想用起来需要我们做一些代码改动。在了解到了我们的问题以后,阿里的专家们只用了 2 天时间就为我们提供了成熟且稳定的 ext-auth 插件,用于实现个性化的自定义鉴权。

在完成所有功能验证后,热联准备把全部流量迁移到云原生网关时,阿里的专家们为我们提供了平滑切流方案。

通过 DNS weight 的方式热联把所有网关流量都切到了云原生网关以后,再也没有出现过莫名其妙崩溃的问题,网关的可用性达到了 100%。 为什么能够取得这么好的结果呢?主要得益于以下几点:

  1. 云原生网关孵化自阿里内部,经过历年大促的验证,积累了一套高可用保障方案,从研发时、运行时、变更时来控制风险提升稳定性,在每个阶段各自有手段去保证其高可用目标。

  1. 可扩展性对于软件的重要性毋庸置疑,相比 APISIX 使用的 Lua 扩展机制,云原生网关既可以支持 Lua 扩展,同时也支持 Wasm(WebAssembly)扩展,Wasm 插件天然支持 C++、Rust、Golang、JS 等多语言编写,原生提供插件热插拔与插件配置热更新能力,毫秒级生效,配置变更对长连接无损,且 Wasm 插件运行在安全沙箱中,插件自身的漏洞或者异常崩溃不会影响网关宿主进程,对于异常崩溃的插件也提供了自恢复机制,无需人工干预。

在性能上,目前随着网络安全愈加受重视,现在互联网上已经普遍使用 HTTPS 进行传输加密,在网关侧,用于实现 HTTPS 的 TLS 非对称加密算法是占用 CPU 资源的大头。针对此场景,云原生网关使用了 CPU SIMD 技术实现了 TLS 加解密算法的硬件加速,通过压测数据表明云原生网关采用软硬一体的加速方案相比普通 HTTPS 请求 TLS 握手时延降低一倍,极限 QPS 提升 80% 以上。

在运维效率上,整体提升了 50%, 这主要得益于云原生网关本身是全托管、免运维的。无论实例的开通还是版本的升级亦或是规格的扩缩容都很方便,同时又提供了定时+按指标的弹性能力。令人惊喜的是云原生网关同阿里云上的数字证书管理、注册中心、微服务治理、ARMS、SLS 等产品都做了深度极成。

尤其是可观测方面,云原生网关提供了丰富的可观测数据,包括流量全局看板、日志检索、业务 TOP 榜、延迟/失败率/错误码等多种响应指标等,并辅以报警管理,使运维人员对服务的整体状态及异常情况尽在掌握。

开源 Nacos 迁移 MSE

热联通过 MSE SYNC 工具,把开源的 NACOS 服务都平滑的迁移到了商业版上面。

相较开源版的 Nacos,商业版产品在稳定性、性能和运维成本等方面都具备了明显的优势,这也极大的解放了研发和运维人员的生产力,让我们能更加专注业到务开发和运维上。

未来展望

热联集团在进行了云原生架构的升级与探索后,显著提升了业务系统的稳定性和敏捷性。这一转变不仅为公司冲击更高的销售目标奠定了坚实的技术基础,也标志着热联在数字化转型道路上迈出了关键一步。通过采用微服务、容器化等先进技术手段,热联能够更加灵活地响应市场变化,快速迭代产品和服务,满足客户日益增长的需求。

这只是热联云原生之旅的一个起点。随着对云原生技术更深层次的理解与应用,预计未来热联将在以下几个方面实现进一步突破:

  1. 持续增强系统稳定性: 基于云原生的最佳实践,如自动故障恢复机制、弹性伸缩能力等,可以有效降低因突发流量或硬件故障导致的服务中断风险,确保用户享受到无缝连接的优质体验。
  2. 大幅提升运营效率: 利用DevOps理念结合自动化工具链,加快软件开发周期的同时保证高质量交付,使得热联能够在竞争激烈的市场环境中保持领先优势。
  3. 优化成本结构: 通过精细化资源管理和按需付费模式,热联将能够更好地控制IT支出,释放更多资金投入到核心竞争力的构建上。
  4. 促进创新文化形成: 鼓励团队成员积极探索新技术新方法,营造开放包容的工作氛围,激发员工创造力,推动企业不断向前发展。

展望未来,热联将继续深化其在云原生领域的研究与实践,致力于成为国内领先乃至国际一流的全球化大宗商品产业服务商。我们相信,在强大技术支持下,热联定能在全球范围内树立起中国企业的良好形象。

相关文章:

从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望

作者:金峰(项良)、朱永林、赵世振(寰奕) 公司简介 杭州热联集团股份有限公司成立于 1997 年 10 月,是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务&…...

移动零

移动零 1、题目描述2、解答思路 1、题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 2、解答思路 已知数组后端若干元素为0&…...

C#编写的日志记录组件 - 开源研究系列文章

以前编写过一个日志记录组件的博文,这次发布一个修改过的完善版本。 1、 项目目录; 2、 源码介绍; 1) 实现; 2) 使用; 后面的参数为级别设置,只有大于这个级别的才进行日志记录,限制了日志记录的…...

猎板PCB罗杰斯板材的应用案例

以下是几个猎板 PCB 与罗杰斯板材结合的具体案例: 案例一:5G 通信基站天线 PCB 在 5G 通信基站的天线系统中,对高频信号的传输和处理要求极高。猎板 PCB 采用罗杰斯板材,凭借其稳定的低介电常数(如 RO4003C 板材&…...

使用esp32c3开发板通过wifi连网络web服务器

实验基本拓扑就是: esp32c3开发板通过Wifi模块连上局域网,局域网一台服务器通过FastAPI提供8000端口的web服务,在esp32c3开发板中烧录micropython固件,在python交互模式下,连上Wifi模块,并使用socket模块获…...

供应链管理、一件代发系统功能及源码分享 PHP+Mysql

随着电商行业的不断发展,传统的库存管理模式已经逐渐无法满足市场需求。越来越多的企业选择“一件代发”模式,即商家不需要自己储备商品库存,而是将订单直接转给供应商,由供应商直接进行发货。这种方式极大地降低了企业的运营成本…...

Windows docker下载minio出现“Using default tag: latestError response from daemon”

Windows docker下载minio出现 Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded 此类情况,一般为镜像地址问题。 {"registry-mirrors": ["https://docker.re…...

工厂模式-简单工厂模式

1、简单工厂模式 在工厂类的静态方法中,根据要创建产品的type类型,通过if else来返回对应的对象 1.1定义产品抽象接口Product /*** @desc 产品抽象接口**/ public interface Product {void use(); } 1.2 定义具体的产品A和B /*** @desc 产品A**/ public class ProductA i…...

【linux】使用minicom调试串口

在Linux中使用minicom进行串口通信调试,你需要先确保已经安装了minicom。如果还没有安装,你可以使用包管理器进行安装,例如在Debian或Ubuntu系统上使用apt-get,在Red Hat或CentOS系统上使用yum或dnf。 安装完成后,你需…...

C# 异常处理、多个异常、自定义异常处理

C# 异常 异常是为处理异常的发生而设计的,这些特殊情况会改变程序执行的正常流程。 引发或引发异常。 在执行应用期间,许多事情可能出错。 磁盘可能已满,我们无法保存文件。 当我们的应用尝试连接到站点时,Internet 连接可能会断…...

【从零开始的LeetCode-算法】3210. 找出加密后的字符串

给你一个字符串 s 和一个整数 k。请你使用以下算法加密字符串: 对于字符串 s 中的每个字符 c,用字符串中 c 后面的第 k 个字符替换 c(以循环方式)。 返回加密后的字符串。 示例 1: 输入: s "dart&…...

redis linux 安装

下载解压 https://download.redis.io/releases/ tar -zvxf ----redis-7.4.1编译 进入目录下 # redis 依赖c yum install gcc-cmake可能会有问题,所以记得换源# 安装到 /usr/local/redis make PREFIX/usr/local/redis installcd src ./redis-serverredis.confi…...

springboot006基于SpringBoot的网上订餐系统(源码+包运行+LW+技术指导)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…...

【QNX】QNX侧如何抓取日志?

🦋slog2info 是 QNX 实时操作系统中的一个实用工具,用于读取和解析 QNX 的系统日志(System Logger v2,简称 slog2)。 🦋slog2 是 QNX 提供的用于记录系统和应用程序日志信息的服务,它比传统的 syslog 服务更加强大和灵活,能够处理大量日志信息,并提供高级的过滤和检…...

深度学习:计算卷积神经网络中输出特征图尺寸的关键公式

计算卷积神经网络中输出特征图尺寸的关键公式 在设计卷积神经网络(CNN)时,准确计算每个卷积层的输出特征图尺寸是至关重要的。这不仅关系到网络的结构设计,也直接影响参数优化和整体性能。适当的计算可以确保网络层正确连接&…...

【惠州大亚湾】之维修戴尔服务器DELLR730XD

1:广东省惠州市大亚湾某游客服务中心来电报修1台DELL PowerEdge R730xd服务器无法正常开机的问题。听该负责描述这台服务器因为服务中心电力切换导致意外关机,来电后发现就无法正常开机了。所以找到我们希望配合维修。 2:该机器由于特别着急…...

跟我学C++中级篇——Design Patterns的通俗说法

一、设计模式 Design patterns,软件设计模式,它是什么?很多初学者会被这种高大上的东西给唬住。其实,所有的书籍上都说得很清楚,只是它们把这种说法说得很高大上而已。举个简单例子,在抖音上经常可以看到介…...

消息队列原理面试题及参考答案

什么是消息队列? 消息队列是一种在不同应用程序组件或者系统之间进行异步通信的中间件技术。它就像是一个信息的 “中转站”。从技术层面来讲,消息队列主要由消息生产者、消息队列本身和消息消费者这几个核心部分构成。 消息生产者负责创建消息并将其发送到消息队列中。这些消…...

有序数组的平方(leetcode 977)

一个数组&#xff0c;返回一个所有元素的平方之后依然是一个有序数组。&#xff08;数组中含负数&#xff09; 解法一&#xff1a;暴力解法 所有元素平方后再使用快速排序法重新排序&#xff0c;时间复杂度为O(nlogn)。 class Solution { public:vector<int> sortedSqu…...

网页抓取API,让数据获取更简单

网页抓取的过程通常分为以下步骤&#xff0c;尤其是在面对静态网页时&#xff1a; 获取页面 HTML&#xff1a;使用 HTTP 客户端下载目标页面的 HTML 内容。解析 HTML&#xff1a;将下载的 HTML 输入解析器&#xff0c;准备提取内容。提取数据&#xff1a;利用解析器功能&#…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...