【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

把越来越多的服务治理好才是当务之急,服务微不微可以慢慢来

  • 2020-04-17
  • 本文字数:1912 字

    阅读完需:约 6 分钟

把越来越多的服务治理好才是当务之急,服务微不微可以慢慢来

最近在和别人的谈话中被问及 “最近忙吗?” 机械化的回答是 “还行吧。”


其实这句话根本就没有经过大脑思考,直接条件反射的出去了。。今天中午吃完饭,又兴冲冲的拿着 IPad 跑去千里之外的星巴克坐着,排队时无意中也听到了一对年轻人如出一辙的对话,我也条件反射的笑出声了


这一笑,联想到了最近所谓“还行吧”的事件上,其实所谓忙,我觉得应该分为 “忙事情” 和 “忙脑子”,也就是做完一个被安排的任务,与发起一个任务让别人去完成。这 2 年我应该都属于后者,所以每天都靠 ‘大运动量+咖啡因’ 撑着,并让自己保持活力与干劲

‘污染’,其实从未停息

作为一家传统金融业务起家的公司,由始至终都选择自研系统,这本身就透漏着一种技术情怀。


不过情怀归情怀,问题还是有不少,咱们先来谈谈这几年随着好买的业务突飞猛进之后,服务(或叫业务系统)建设与管理中所暴露的痛点:


  • 业务条线 - 多:(据不可靠统计)3 个事业群,20+个子系统,150+个应用服务,500+个服务接口

  • 注册中心 - 散:10+个 Zookeeper 集群,做个组合要链一堆 ZK,测试环境更是一把鼻涕两行眼泪

  • 监控方式 - 杂:2 个自主研发的监控系统、ELK、日志分析、端到端…


既然罗列的那么清楚,为什么不去解决它呢?比如说重构不就得了。。来说下为什么这些问题虽然清楚,但却久久不能 “根除” 呢?


1.技术容量与性能并非最大痛点,业务复杂度高带来的治理成本高是当务之急


2.研发资源有限,无法做到在业务高速并行阶段,同时兼顾系统的大规模改造


3.质量关的压力,回归测试依赖于人肉,版本管理带来的隐患等


一口气说了那么多‘问题’,想必身临其境的小伙伴肯定清楚,这些点绝非像文字描述的那样轻描淡写,可谓 “谁做谁知道,感觉真奇妙”


为了寻找突破,我也不断地和小伙伴们一起探索者,另外自从加入 EGO 这半年, 也接触了不少大咖,从某这角度说,上面我所谈到的问题和痛点,是具有普遍性的,只不过大家选择的解决路径不同罢了

‘治理’,先规范下吧

困难永远都在,用我们经常提及的一句话来概括下 “持续污染,持续治理,寻找平衡,夹缝中寻找突破”


通过几轮脑暴,我们打算先从 “dubbo 源码私有化” 开始,那就先谈谈为什么我们要启动 “dubbo 源码私有化”?


在此之前,公司内所有的 dubbo 服务都是“想怎么玩就怎么玩”,也出现了很多的需求和问题,基本都是‘头痛医头脚痛医脚’,解决完就拉倒,所以本次针对这些现象进行以下措施:


  • 版本化:基于最新版本 2.5.3(2012-10-22) ,近 1-2 年,各团队对 dubbo 源码多少修改了一些,版本不一致

  • 避风险:修复一些已知的 bug

  • 技术栈:架构团队对 dubbo 原理较为熟悉,但对源码逻辑、结构及 package tree 不够深入

  • 自定义:通过封装(或变更)底层源码的方式,达到测试 Debug 或技术支持


是的,我们改动了 dubbo 的源代码,并对多条业务线的 dubbo 源码进行了合并及封装、调整,罗列 4 处改动点:



小伙伴们经过 2 周的奋战,用漂亮的身手证明了,dubbo 源码也不过如此而已~

撸起袖子“建平台”

解决了 dubbo 源码私有化,说白了也只不过将原本不标准的流程变得标准了,顺带的解决了几个 BUG,并合了下代码


接下去,为了开展“持续治理”,我们开始基于 Dubbo 建立属于自己的“服务治理平台”~


规划架构设计图:



通过 HRB 平台,帮助我们解决以下问题:


  • 集中化:各接各的 ZK,各用各的 dubbo admin

  • 标准化:APP 名,接口名比较随意,给统计、自动化测试、管理带来困难

  • 强监控:部分业务线使用了 dubbo monitor,无法获取‘RPC 端到端 ’的各项数据

  • 需治理:具不可靠统计,目前 dubbo interface 已超过 500+

  • 洞见性(未来展望):灰度发布、应用分组、限流降级、弹性伸缩等

这么大的‘梦’要几个夜去圆

先从成本的角度说下各方的配合与投入:


  • 对于平台研发而言,主要的研发资源将投入在管理中心上(预计 4 周时间),着重满足多业务线、多视角的用户体验、数据体现等热点

  • 对于应用研发而言,由于对 dubbo 完全兼容和适配,将无需接入

  • 对于测试与运维而言,只需通过 3 项工作即可实现平滑过渡:

  • 替换 dubbo 包(HRB SDK),修改配置(集成配置中心)

  • 迁移 ZK 至新 ZK(两种方案:“一把切:全 dubbo 应用服务覆盖”与“逐步切:挑选应用” )

  • 将 dubbo Admin 下线,使用 HRB 开始工作


多想想,方法总是有的


对于好买来说,今年应该是推行‘平台化’以来的第 2 个年头,有时抬头看看,会觉得很累,路途漫漫,可当你回头看看走过的路,将会觉得成就满满


有时我们会抱怨,因为 A 条件不成立,所以无法达到 B 目标,其实只要我们多想想,多琢磨琢磨,哪怕是一条缝,应该也会有水珠滴落,只不过有太多的时候我们没有去关注,总觉得无在乎罢了


本文转载自头哥侃码公众号。


原文链接:https://mp.weixin.qq.com/s/SjBepU1Bn_0IePrr2k5GQQ


2020-04-17 15:03513

评论

发布
暂无评论
发现更多内容

java多线程总结

Studying_swz

6 月 优质更文活动

整合开源治理经验,共谋开源社区发展|2023开放原子全球开源峰会开源社区治理与运营分论坛即将启幕

开放原子开源基金会

开源 开放原子全球开源峰会 开源社区治理与运营

推动开源与商业共生共赢 | 2023开放原子全球开源峰会开源商业化创新发展分论坛即将启幕

开放原子开源基金会

开源 开源商业化 开放原子全球开源峰会 开放原子

奇点云举办“数据进化论”数智科技大会,发布数据云七大场景

奇点云

业务场景 奇点云 数智科技大会

AWS CodeWhisperer 上手初体验安装与使用

宇宙之一粟

Python 代码编辑工具 CodeWhisperer 6 月 优质更文活动

动态修改coreThread线程池拓展

FunTester

最近几年,国内好多家实体企业都开始用上低代码了,它有什么好?

优秀

低代码 数字化

以安全为底线 共迎机遇和挑战|2023开放原子全球开源峰会可信基础设施技术分论坛即将启幕

开放原子开源基金会

开源 开放原子全球开源峰会 可信基础设施技术

轻量级分布式日志追踪-Tlog快速入门

javalover123

分布式 日志 Skywalking spring-boot Tlog

自动驾驶≠速度与激情

白洞计划

自动驾驶

推动体系建设 助推融合发展|2023开放原子全球开源峰会软件物料清单(SBOM)分论坛即将启幕

开放原子开源基金会

开源 开放原子全球开源峰会 软件物料清单(SBOM)

C语言编程语法—文件读写

智趣匠

C语言 二进制 6 月 优质更文活动

2个原因解答:为什么网络安全缺口大,招聘却很少?

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

华为云发布面向消费终端的企业云原生白皮书,开辟移动时代的云原生路径

脑极体

云原生

以AI为灯,照亮医疗放射防护监管盲区

飞桨PaddlePaddle

人工智能 深度学习 百度飞桨

初步了解RNN, Seq2Seq, Attention注意力机制

Studying_swz

6 月 优质更文活动

地图实火!断货加印,限时折扣抢购通道开启

融云 RongCloud

社交 融云 泛娱乐 出海 wicc

从 PMO 的视角,看如何从 0 到 1 搭建研发效能体系?

思码逸研发效能

研发效能

人脸面部表情识别技术的挑战和未来发展

来自四九城儿

Web智慧化工三维可视化管理系统

2D3D前端可视化开发

三维可视化 工业组态 物联网系统 数字孪生技术 智慧化工

如何用Smartproxy住宅代理IP抢购潮牌鞋子?住宅代理抢购限量款式

摘星星的猫

设计模式总结(二):结构型模式

Studying_swz

6 月 优质更文活动

几分钟上线一个应用,这个神器我爱了!

引迈信息

低代码 JNPF 办公神器

OpenYurt 即将亮相 EdgeX+OpenVINO 开发者生态大会

阿里巴巴云原生

阿里云 开源 云原生

系统稳定性与高可用保障

得物技术

架构 高可用 稳定性

【Netty】「NIO」(一)认识 ByteBuffer

sidiot

后端 Netty java‘ 6 月 优质更文活动

Vue-事件基本使用

不觉心动

6 月 优质更文活动

smartproxy印度住宅IP代理,帮助您的海外业务打造网络无障碍桥梁

摘星星的猫

软件测试/测试开发丨学习笔记之Mark标记测试用例

测试人

程序员 软件测试 自动化测试 测试开发 测试用例

浅谈低代码平台的开发优势

这我可不懂

低代码 应用开发 JNPF

2023-06-06:给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言, 其左右子结点分别位于 (row + 1, col -

福大大架构师每日一题

golang rust 福大大

把越来越多的服务治理好才是当务之急,服务微不微可以慢慢来_语言 & 开发_头哥侃码_InfoQ精选文章