/srv/irclogs.ubuntu.com/2019/05/09/#ubuntu-cn.txt

=== loveFluffy1 is now known as loveFluffy
=== qiao|afk is now known as qiao
=== toxync11- is now known as toxync11
mk3548208本周要加税到25%了06:30
violetzijingcherrot, 大佬啊有问题请教08:24
violetzijingcherrot, 我想做一个微服务间接口依赖的分析工具,有什么好的建议吗?类似我改动了服务A内接口a的调用的函数,服务B的接口b调用了服务A中的a,然后我能改动a之后我能知道服务B的接口b会受到影响08:26
violetzijingcherrot, 粗糙的想法一个静态代码分析,一个是用什么已知的调用栈走一遍然后过滤08:26
imadpervioletzijing: 自己维护一个有向图?08:28
cherrotvioletzijing: 竟然搞起静态分析了。。08:28
imadper人肉维护?08:28
cherrotvioletzijing: 没搞过,没思路。但微服务不应该打破向下兼容08:29
violetzijing人肉维护不如代码08:29
violetzijing人懒,而且人会离职08:29
violetzijingcherrot, 我们打破了两次08:29
violetzijingcherrot, 一次 P1 一次 P208:30
violetzijing不能再出了08:30
cherrotvioletzijing: 补充单测可行么08:30
cherrotvioletzijing: 因为就算有依赖关系,又能起什么作用么?08:30
violetzijingcherrot, 不行,服务太多了,而且没有服务间统一的单测08:31
violetzijingcherrot, 开发大家肯定只看自己的,出问题就开始杀别人了08:31
violetzijingcherrot, 起码有个调用链,有个 warning 吧08:31
cherrotvioletzijing: 顶多知道这个改动可能影响到a,b,c服务,但具体会不会产生影响,你也分析不出来08:31
violetzijingcherrot, 我们昨天的 bug 就是服务 A 修改了升级了,服务 B 并没有考虑到影响,没有升级,当然这也是接口变动直接导致的08:32
cherrotvioletzijing: 预发布升级过程中发现不了么08:32
violetzijingcherrot, 我现在改我被别人依赖的接口的时候都是跑去挨个问一遍他们有没有问题,而且随时可能有新的服务调用到我的接口,我如果不去主动搜索或者别人来问我,我可能是不知道的08:33
violetzijingcherrot, 巧的就是条件巧,预发布的时候没发现08:33
cherrotvioletzijing: 我猜go应该有静态分析工具列出包依赖,你过滤出rpc相关的包应该就能出依赖图了08:34
violetzijingcherrot, 可以,我去探索一下08:35
cherrotvioletzijing: 我们更麻烦,所以向下兼容是要仔细考虑的,但之前测试没覆盖的case出了问题也只能认。很多策略上的假设隐含打破了向下兼容,但代码上不容易看出来,没办法。08:35
cherrotvioletzijing: 重点还是得放在API的设计review阶段。如果拿不准有没有影响,就宁愿用新接口,升级rpc版本,这样切割的更干净。如果想废弃老接口的支持,只用广播一遍就行了。08:37
cherrotvioletzijing: 这样大家的依赖关系就是“你有没有依赖我的v2版本的接口“,而不是”你有没有依赖我v2接口里的xxx特性“08:37
cherrot只增不改不删08:38
violetzijingcherrot, hmm 接口改动我们吃了这次亏肯定会注意了,现在还怕的就是逻辑改动了 lol08:38
cherrotvioletzijing: 看来你现在只需要一个“我要做改动了应该广播给谁”的工具 :D08:41
* cherrot 说起向下兼容就绝望08:41
violetzijingcherrot, 差不多的东西08:43
violetzijingcherrot, 二十多个微服务,身体受不了啊08:43
violetzijingcherrot, 我们的 service 还是处在调用链下层的,大家都来调用08:43
cherrot随手一搜还挺多~ https://www.google.com/search?q=go+dependency+graph&oq=go+dependency+graph08:46
ubrl⇪ f: go dependency graph - Google Search08:46
violetzijingcherrot, cool08:49
=== toxync11- is now known as toxync11
=== qiao is now known as qiao|away
=== loveFluffy1 is now known as loveFluffy

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!