写点什么

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

  • 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:03635

评论

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

腾讯云 CODING 快速应用中心,让您 10 分钟轻松玩转 AIGC

CODING DevOps

观测云产品更新 | 优化 SSO 管理、新增监控器类型、优化场景等

观测云

数据可视化 单点登录 监控器

HypeX Labs:充分释放加密资产的潜力

股市老人

AI 画图,DALL.E 3 正式发布!全面解读 OpenAI 公告

豆哥

openai AI绘画 DALL.E 3

INFINI Labs 产品更新 | Easysearch 优化字段压缩提升写入速度,Console 优化数据迁移和校验等功能

极限实验室

INFINI Console easysearch

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

大瞿科技

Mojo——会燃的 AI 编程语言

CODING DevOps

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

BlockChain先知

低代码助力软件开发

树上有只程序猿

软件开发 低代码 可视化开发

OPPO ColorOS,重建用户和折叠屏的“亲密关系”

脑极体

OPPO

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

石头财经

文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题

福大大架构师每日一题

福大大架构师每日一题

Android端自定义铃声

MobTech袤博科技

智能推送

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

股市老人

人工智能:科学、医疗、工业的未来之光

测吧(北京)科技有限公司

测试

手帐怎么做?推荐这10款手帐达人都在用的好用软件!

彭宏豪95

效率 科技 在线白板 办公软件 笔记软件

Linux远程管理工具

芯动大师

Android推送问题排查

MobTech袤博科技

智能推送

体育赛事直播系统解决方案,将娱乐、互动和传播融合于一体

软件开发-梦幻运营部

酷克数据发布HD-SQL-LLaMA模型,开启数据分析“人人可及”新时代

酷克数据HashData

第4期 | GPTSecurity周报

云起无垠

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

西柚子

Python 条件和 if 语句

小万哥

Python 程序员 软件 后端 开发

亚太手游市场规模超百亿,华为游戏中心助力伙伴实现持续增长

最新动态

性能测试中数据处理经验分享

FunTester

3DCAT实时云渲染赋能聚好看科技,打造3D沉浸式互动视频云平台

3DCAT实时渲染

云渲染 实时渲染 实时云渲染

来看看 Discourse 3.2.0.beta2 版本添加的新功能

HoneyMoose

快速入门SRPC

1412

c++ 开源 workflow srpc 脚手架

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