Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!

手把手教你用Copilot插件在Obsidian里免费接入DeepSeek-R1(附硅基流动API密钥获取) 本文详细介绍了如何通过Copilot插件在Obsidian中免费接入DeepSeek-R1模型,实现智能知识管理。从硅基流动API密钥获取到插件配置,再到高级功能调优和实战应用技巧,手把手教你打造AI驱动的个人知识库。 阅读详情

352f252a71241c87a87d3074baa68ee8.gif

文|赵云兴,葛志刚

仁励家网络科技(杭州)有限公司架构师

专注 to B 领域架构

本文 2111 字    阅读 5 分钟 

背景     

Background

人力家由阿里钉钉与人力窝共同孵化,致力于为企业提供以薪酬为核心的一体化 HR SaaS 解决方案,加速对中国人力资源服务行业数字化赋能。

人力资源软件通常由多模块组成,如人力资源规划、招聘、培训、绩效管理、薪酬福利、劳动关系,以及员工和组织管理等。随着业务发展,部分模块进入稳定期,仅需少量维护投入。例如,一个早期有 20 人研发的项目,现在拆分为 5 个应用。尽管产品成熟,但由于客户需求随竞争、业务和政策变化,仍需每年投入部分精力进行迭代。

长时间以来,我们一直面临着以下问题,而苦于没有解决方案:

  • 系统资源浪费:5 个应用支撑的业务,我们在生产环境为每个应用部署了 3 台 2C4G 的 Pod,一共是 15 个 Pod 的资源。

  • 迭代运维成本高:因为业务的复杂性,经常需要多个应用同时改动,部署等待周期长,单应用部署时间在 6 分钟左右。

在过去,我们已经探索过以下方案:

  • 压缩工程:通过排除冗余的 jar 依赖,降低镜像大小。但空间有限,整个应用 jar 包只能从 100+M 减少到 80+M,整个镜像依然有 500M,能节省的部署等待时间有限。

  • 单 ECS 上部署多应用:我们需要为这个应用做特别的定制,譬如监听端口要支持多个;部署脚本也要特别定制,要支持滚动发布,健康检测不同的端口,一段时间以后运维容易搞不清整个部署方案,容易出现运维事故。

初见成效   

Benefit

直到在某个月不黑风不高的夜晚,我们在最大的程序员交友网站上遇到了 Koupleless 团队。看完框架的介绍,我们立刻明白,Koupleless 就是我们要寻找的解决方案。

经过近两个月的敲敲打打,模块成功瘦身了,其中最大的模块的 jar 也只有不到 4M。应用部署的体积从 500M 一下子降到了 5M 以下,具体可见下图~

8c72de0e150570f633be49968a900675.png

瘦身以后模块的 jar

但高兴不过一天,我们在「如何把 Koupleless 部署到生产环境」上遇到了难题。因为我们没有专门的运维团队,部署都是开发人员通过阿里云的云效流水线,直接把镜像推送到 K8s 的 Pod。但这样改了以后,我们迎来了一连串待解决的问题……

  • 模块要不要流量,还是直接通过基座处理流量?

  • 如何在单独部署模块的时候先把基座的流量摘掉?

  • 发布成功以后如何做健康检查?

  • 如何重新开放基座流量?

Koupleless 的生产环境部署 

Koupleless on Prod

在这里要特别感谢 Koupleless 团队的伙伴,给了我们很多专业的建议和方案。最终,我们选择了以下部署方案:

3eb4aa7977bccb7d29cdb7f7994bd0ce.png

整体方案是,在基座上增加监听 oss 文件变化自动更新部署模块,卸载老版本模块安装新版模块,所有流量由 nginx 进入,转发到进程 tomcat (基座和多个模块复用同个 tomcat host),并在基座上控制健康检查和流量的开关,主要工作是在基座上扩充一些能力:

1、基座支持配置自身运行的必要条件,譬如需要模块 A、B、C 都安装成功才能放流量进来;

2、检查 oss 目录,自动安装最新的模块版本,并做健康检查;

3、实现 K8s 的 liveness:用来在基座部署的时候判断基座是否成功启动。只要基座启动成功,即返回成功,这样基座可以走后续的安装模块逻辑;

4、实现 K8s 的 readiness:主要控制外部流量是否可以进来。因此这里需要判断所有必须安装的模块是否健康,并且对应的流量文件 A_status 等是否存在(该文件是一个空文件,在滚动发布的时候开关流量的时候用)。

小 Tips

目前 Koupleless 优化了静态部署和健康检查能力,能够直接满足我们的需求:

  • 静态部署:在基座启动成功后,允许用户通过自定义的方式安装模块;

  • 健康检查:在基座启动成功且用户自定义安装的模块启动后,Koupleless 框架将原生 SpringBoot 的 readiness 配置为 'ACCEPTING_TRAFFIC',用户可以通过探测 readiness 决定是否让流量进入。

以下是 K8s 上的配置图:

  • 就绪检查和启动探测:

194618cfc18323b884406b928b232d53.png

  • 在 Pod 上增加云存储的挂载:

f9ad4504f155bba4dc7975455a02f626.png

模块动态部署时需要考虑两个问题:怎么感知新的模块并部署?在模块部署的前后怎么通过健康检查,控制基座流量?

我们的方案大概如下:

1、模块通过流水线,直接 jar 上传到一个 oss 目录;

2、基座上增加配置,配置基座承接流量的必须安装的模块,以及对应模块的健康检查地址;

3、基座监听 oss 文件夹的变化,来决定是否重新部署模块(譬如有更晚的/更大的版本的模块上传到了 oss);

4、基座部署模块前,先摘流量(可以通过删除一个空文件来实现,结合上一步 K8s 的 readiness 逻辑,空文件删除以后,readiness 检测不通过,流量就不会进来。但模块是存活的,防止有耗时的线程还在运行);

5、安装好模块以后,把删除的文件写上,就可以开流量了;

6、集群下,基座通过 redis 来控制 Pod 不会出现并行安装,保证流量不会断;

7、基座提供就绪检查:就绪检查只需要判断基座起来了就可以。

存活检查是比较关键的一步:

a.判断第 4 步的空文件是否存在

b.需要判断所有必须安装的模块都可以访问

小 Tips

目前 Koupleless 优化了健康检查能力,能够在模块动态安装/卸载之前关闭流量,将 readiness 配置为 REFUSING_TRAFFIC,并允许用户配置模块卸载前的静默时长,让流量在静默时期处于关闭状态。在卸载的静默时长结束、旧模块卸载完成、全部模块安装成功后,readiness 才会配置为 ACCEPTING_TRAFFIC 状态。

总结  

Conclusion

在以前,单个模块升级发布一次要 6 分多钟。

f84b9d0eb207c1db8650d6f2fc4a6d4c.png

而改造后,升级单个模块只需要把编译后的 jar 上传到 oss 即可。

2545a0795fc636fbb23f5eec646567b1.png

最终的效果,通过一组简单的数字对比就可以看出差异:

  • 在服务器资源上,以前需要 15X2C4G,现在只需要 3X4c8G,节省了 18C36G 的服务器资源;

  • 在单个模块的发布时间上,我们从之前的 6 分钟降低到了 3 分钟;

  • 在单个模块的部署资源上,我们从 500M 降低到了 5M。

再次感谢 Koupleless 团队伙伴的专业支持,特别是有济、立蓬。当我们在改造过程中遇到一些个性场景的兼容性问题,他们都能快速响应,让我们整个升级改造时间大大缩短。

通过升级 Koupleless 架构,人力家实现了多应用的合并部署、并行研发、轻量集中部署,大大降低了运维成本。

天下架构,分久必合,合久必分。而 Koupleless,让架构演进(分合)更丝滑🥰

fad049d94bde9e87033ce8cb282de7f5.png

从 CDS 到对外接口:彻底吃透 SAP Business Service Definition 与 Service Binding SAP ABAP开发中的Business Service(业务服务)已成为连接数据模型与外部消费的关键枢纽。Service Definition定义了要暴露的CDS实体,而Service Binding则负责将定义绑定到具体协议(如OData V2/V4)并发布为可消费服务。这种分层设计实现了同一服务定义在不同协议间的复用,符合SAP的解耦技术路线和Clean Core原则。从CDS视图到最终服务的完整链路清晰:先定义CDS模型,再通过Service Definition暴露实体,最后用Service Bi 阅读详情

相关推荐

用5毫欧采样电阻实现高精度电流检测?数字可调电源控制板的硬件设计陷阱

本文深入探讨了在数字可调电源控制板设计中,如何利用5毫欧采样电阻实现高精度电流检测。从微小信号放大电路设计、采样电阻布局与热管理,到电源切换与电池管理电路优化,提供了全面的硬件设计解决方案和实用技巧,帮助工程师规避常见设计陷阱,提升系统性能。

wdx0123456的博客 1030

高效降本|深度案例解读 Koupleless 在南京爱福路的落地实践

文|祁晓波南京爱福路汽车科技基础设施负责人主要研究微服务、可观测、稳定性、研发效能、Java 中间件等领域。本文4812字 阅读12分钟Koupleless(原 SOFAServerless)自 2023 年开源以来已经落地了若干企业,这些企业也见证了从 SOFAServerless 到 Koupleless 的品牌&技术能力迭代升级。随着 Koupleless 1.0 的重磅发布...

金融级分布式架构 1612

python 抖音采集_python爬取抖音视频的实例详解

import requestsimport jsonimport reimport osfrom pprint import pprint as ppimport queueclass DouYin:header = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*...

weixin_35795675的博客 1864

Koupleless 内核系列 | 一台机器内 Koupleless 模块数量的极限在哪里?

梁栎鹏(立蓬)蚂蚁集团技术工程师云原生领域工程师就职于蚂蚁集团中间件团队,参与维护与建设蚂蚁 SOFAArk 和 Koupleless 开源项目,参与内部 SOFAServerless 产品的研发和实践。本文4873 字,预计阅读12 分钟本篇文章属于 Koupleless 进阶系列文章第三篇,默认读者对 Koupleless 的基础概念、能力都已经了解,如果还未了解过的可以查看官网(...

金融级分布式架构 1571

Android逆向实战:通过smali/baksmali动态注入DEX逻辑

本文详细介绍了在无源码条件下对Android应用进行动态逻辑注入的实战方法。通过使用smali和baksmali工具对DEX文件进行反编译、修改与重打包,实现在目标方法中插入自定义代码(如日志打印),并分享了定位目标、处理寄存器、避免常见错误的实用技巧与避坑指南。

weixin_29008691的博客 364

运算放大器测试方法-输入失调电压

由于运放输入回路的不对称性,在输入端将产生一定的误差信号,从而限制运放信号灵敏度。通常用输入失调电压(VOS)、输入失调电流(Ios)和输入偏置电流(IB)表示。运放有四个主要特征:输入失调特征、开环特征、共模特征及输出特征。其放大倍数较大,由于外界的影响,即使运放的输入端产生较小的输入信号,经过放大,在输出端也会产生较大的误差。为能精确测量其性能,一般采用辅助运放进行测试。下面着重讲了运放的主要参数及如何精确测量这些参数。文中DUT代表被测运放,A代表辅助运放。

weixin_46135931的博客 1万+

成倍降本增效,提升企业竞争力!SOFAServerless 品牌升级为 Koupleless,重磅发布 1.0 版本...

如果你是企业经营者,在为企业降本增效而发愁;如果你是企业的开发、运维或架构同学,在日常工作中被开发效率、交付问题等困扰……欢迎来了解 Koupleless(原 SOFAServerless)!现在,Koupleless 重磅发布了 1.0 版本!那么,Koupleless 是什么?又将如何为你解决以上问题?除了以上这几种情境,Koupleless 还有哪些能力呢?欢迎你来社区探索发现。(文末点击「...

金融级分布式架构 1322

Cobalt Strike4.0安装包(内附中文版)

1.什么是 Cobalt Strike Cobalt Strike 是一个为对手模拟和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁 者的后渗透行动。 Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、W...

梦之序章的博客 2万+

单体应用协作开发太难?Koupleless 带来拆分插件,帮你抽丝剥茧提高协作开发效率!...

梁栎鹏(立蓬)蚂蚁集团技术工程师云原生领域工程师就职于蚂蚁集团中间件团队,参与维护与建设蚂蚁 SOFAArk 和 Koupleless 开源项目,参与内部 SOFAServerless 产品的研发和实践。本文4603 字,预计阅读10 分钟background你的企业应用协作效率低吗?明明只改一行,但代码编译加部署要十分钟?多人开发一套代码库,调试却频频遇到资源抢占和相互覆盖,需求上线...

金融级分布式架构 1253

意图识别和纠错问题

可想而知,错误的意图识别会带来多大的负面影响。基于词典,就是对用户query内容和词典内容进行比对,比较常见的方式是序列标注问题里用的最大逆向匹配,通过这种方式找到词典里的实体词,匹配触发了自然就有意图了,而在词典匹配的时候,不是使用链表之类的来构造匹配结构,而是使用搜索树的结构,这种匹配的复杂度最低,速度也快,两者结合,其速度甚至比很多模型要快得多(基本上1ms以内就能完成),fasttext速度非常快,但是textcnn之类的其实就已经达到ms级别以上,bert甚至在10ms级别。

TURING.DT 4573

搭建问答系统

数据描述 import docx import jieba from gensim.models import Word2Vec import os import numpy as np import pickle as pk import warnings from copy import deepcopy warnings.filterwarnings("ignore") from mu...

微信号:RunsenLiu 1840

Koupleless 可演进架构的设计与实践|当我们谈降本时,我们谈些什么

文|赵真灵(花名:有济)Koupleless 项目负责人蚂蚁集团技术专家本文3424字 阅读10分钟本篇文章属于 Koupleless 进阶系列文章第四篇,默认读者对 Koupleless 的基础概念、能力都已经了解,如果还未了解过的可以查看官网(https://koupleless.io/)。进阶系列一:Koupleless 模块化的优势与挑战&我们是如何应对挑战的进阶系列...

金融级分布式架构 873

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SOFA Weekly|SOFA 开源七周年报名、社区本周贡献、本周推荐阅读

rchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!📅 时间:2025/04/26 14:00-17:00。2050 大会(杭州)·

金融级分布式架构 149

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SOFA Weekly|实习生暑期特辑、社区本周贡献、本周推荐阅读

rchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。开源之夏经验分享|SOFARPC 社区郑佳莉:开源的收获不止代码。SOFA WEEKLY | 每周精选。筛选每周精华问答,同步开源进展。

金融级分布式架构 139

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SOFA Weekly|SOFAStack 开源七周年倒计时 1 天、社区本周贡献、本周推荐阅读

rchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。活动参与指南 | SOFAStack 开源七周年『七年同行,依然热爱』📅 时间:2025/04/26 15:00-18:00。筛选每周精华问答,同步开源进展。

金融级分布式架构 183

SOFA Weekly|SOFARPC 、SOFABoot 发布新版本,社区本周贡献

rchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。SOFARPC v5.13.5 版本发布。SOFARPC v5.13.4 版本发布。SOFA WEEKLY | 每周精选。

金融级分布式架构 260

SOFA Weekly|Koupleless 社区会议回顾、社区本周贡献、本周推荐阅读

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 229

使用koupleless实现模块化开发与多模块静态合并部署

koupleless是蚂蚁开源的基于sofa-ark的模块化研发框架GitHub - koupleless/koupleless: 模块化研发框架,运维调度系统,帮助应用解决研发运维系列痛点问题,省资源、秒级启动、灵活部署、快速需求交付等,并帮助存量应用低成本演进到 Serverless 模式;问题表象:在模块中rpc泛化调用时登录人信息没有传递下去,使用ServiceConfig动态暴漏rpc服务时也有这个问题。

qq_33606378的博客 1506

如何在一个基座上安装更多的 Koupleless 模块?

梁栎鹏(立蓬)蚂蚁集团技术工程师云原生领域工程师就职于蚂蚁集团中间件团队,参与维护与建设蚂蚁 SOFAArk 和 Koupleless 开源项目,参与内部 SOFAServerless 产品的研发和实践。本文 2773 字,预计阅读 7 分钟本文属于 Koupleless 进阶系列文章第五篇,默认读者对 Koupleless 的基础概念、能力都已经了解。如果还未了解过的可以在文末「阅读原文」查看...

金融级分布式架构 1251

Koupleless 是一种模块化的 Serverless 技术解决方案

Koupleless 是一种模块化的 Serverless 技术解决方案,它能让普通应用以比较低的代价演进为 Serverless 研发模式,让代码与资源解耦,轻松独立维护,与此同时支持秒级构建部署、合并部署、动态伸缩等能力为用户提供极致的研发运维体验,最终帮助企业实现降本增效。随着各行各业的信息化数字化转型,企业面临越来越多的研发效率、协作效率、资源成本和服务治理痛点,接下来带领大家逐一体验这些痛点,以及它们在 Koupleless 中是如何被解决的。

920

涂鸦智能落地 Koupleless 合并部署,实现云服务降本增效

文|八幡、朵拉杭州涂鸦智能技术专家主要研究微服务与可观测、消息引擎、任务调度、数据层中间件等领域。本文 5389字 阅读15分钟当前涂鸦通过 Koupleless 的静态合并部署能力,很好地解决了资源浪费问题。为了进一步提升研发效率,涂鸦与 Koupleless 正在开发动态合并部署能力,为公有云大规模合并部署打下基础,也为未来更长远的 Serverless 能力提供基座。Kouplele...

金融级分布式架构 1482

Koupleless 助力蚂蚁搜推平台 Serverless 化演进

文|陈铿彬(花名:阿歹)蚂蚁搜推技术专家本文5211字 阅读10分钟背景介绍蚂蚁推荐平台 Arec(Ant Recommender Platform, 后续简称 Arec)是针对蚂蚁搜索、推荐、营销以及投放等业务特点建设的在线算法 FaaS 平台。它是由支付宝通用推荐平台 RecNeptune(中文称: 海王星)演进发展而来,目前在蚂蚁内部服务了支付宝、数金、网商、国际等多个部门的搜...

金融级分布式架构 1583

SOFAArk与Koupleless:模块化架构如何提升微服务研发效率10倍?

在微服务架构盛行的今天,开发者们常常面临服务拆分过细导致的运维复杂、资源浪费和部署效率低下等问题。SOFAArk作为一款强大的类隔离组件,结合Koupleless模块化技术体系,为解决这些痛点提供了全新的思路。本文将深入探讨SOFAArk与Koupleless如何通过模块化架构提升微服务研发效率,让开发团队专注于业务创新,实现效率的飞跃。 ## 一、SOFAArk:微服务模块化的基石 🧱 S

gitblog_00953的博客 704

Koupleless 2024 年度报告 & 2025 规划展望

赵真灵花名:有济Koupleless 负责人蚂蚁集团技术专家Koupleless 社区的开发和维护者,曾负责基于 K8s 的应用研发运维平台、Node/Pod 多级弹性伸缩与产品建设,当前主要负责蚂蚁及开源社区模块化应用架构演进和 Serverless 相关工作。本文4389 字,预计阅读8分钟时光匆匆又是一年。2024 落幕之际,我们对过去这一年做了回顾与总结,不仅是对一年以来每一位在 ...

金融级分布式架构 976

SOFA Weekly|SOFAServerless & Layotto 社区会议预告、社区本周贡献、SOFA 办公室摇人系列...

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 235

Koupleless 内核系列|模块化隔离与共享带来的收益与挑战

文|赵真灵(花名:有济)Koupleless 项目负责人蚂蚁集团技术专家本文 3724 字 阅读 10分钟本篇文章属于「Koupleless 进阶系列文章」之一,默认读者对 Koupleless 的基础概念、能力都已经了解,如果还未了解过的可以查看官网(https://koupleless.io/docs/introduction/intro-and-scenario/)。在 Kouple...

金融级分布式架构 896
上一篇: KCL v0.10.0 重磅发布 - 更稳定流畅的工具链和 IDE 体验,全新的 KCL Playground !
下一篇: HTNN 如何斟酌出更好的插件扩展机制
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值