Soft_Job 板


LINE

微服务似乎可以改善一点这方面的问题 系统开发有点像是公司还很小的时侯 当你公司还很小的时侯 某个职员要当客服 又要兼仓管 又要兼销售 所以这个职员可以拿到各种不同的数据 当公司开始变大以後 就会有财务部 客服部 商品部 每个部门的数据再也不像小公司时可以任意取得 每个部门内部各自处理管理 其他部门不用管另一个部门也不用知道他们怎麽管理 部门之间的沟通要透过窗口或部长 当系统一开始小的时候 就像小公司校长兼撞钟 一包系统可以同时去存取会员资料与商品资料与物流资料 当系统变大以後 其实也应该像小公司变大公司那样划分不同部门 把各个不同性质的资料抽出来变成微服务 这样的好处就是减少耦合 服务内部不管如何改变 只要对外保持一致就不用担心 如果有那种万年不用更动的服务 那就让他安静的待在角落 不要管他 新进人员也不用花心力去理解那个服务 每个服务很小 小就代表容易理解也容易测试也容易改动 不同部门的资料互相隔离 也更安全 一间公司变大很自然就会划分成各个部门 一个系统变大非程式人员却不容易理解为什麽要拆开成不同包 想像有一间 5000人的大公司 每个人都可以任意去各部门拿资料拿数据 而任何部门有任何变动都要想办法去确定这5000人都确定这个变动 这就是程式的世界 系统写久了 5000支程式是有可能的 任何变动都要确定这5000程式没受影响 那改起来就是灾难 自然而然很不想去乱动 或者动不动就想重写 用公司变大去解释或许可以让人理解 公司变大了要有不同部门 可以把部门的小变动固定在某个部门内 不会去影响全公司 当然微服务要弄起来也要有一些成本 所以小公司才校长兼撞钟 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.170.183.199 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1699539414.A.6D2.html
1F:→ MoonCode: 别 11/09 22:52
2F:→ tsao1211: 你用过微服务? 11/09 23:46
3F:→ a12838910: 好奇 台湾的公司 用微服务的多吗… 11/10 00:27
4F:嘘 tzouandy2818: 冗言赘字太多 11/10 01:22
5F:推 abccbaandy: 2023了还在吹微服务,面试都很少提这东西了 11/10 01:28
6F:嘘 qwer338859: 没那屁股别吃那泻药 11/10 01:35
其实我不是在讲很严格的微服务 微服务如果单论工具的话 其实spirng cloud 出的工具 大概花一点时间学不会太难 工具主要是提供服务之间的沟通与发现 其实就是一些工具设定 但我觉得微服务主要的难点有二个 一个是 服务怎麽切 以及 系统小时候你没机会用微服务 系统大的时成本太大 服务怎麽切有一个作法是DDD 里面又延伸很多术语 DDD是早於微服务的 我也不是全部都懂就不多说了 DDD的副标是 软体核心复杂度的解决方法 我觉得这个才是治本的作法 有很多管理复杂度的作法 比如说去code review 人员教育 都是比较事後 且要公司有余裕的条件下才能做的治标作法 我是觉得程式会乱是出於每个人的思考都是不同的 还有时间压力 所以要靠事後的管理来维持程式的不混乱是很难的 而且成本不小 可以提昇品质 但很难维持 换个主管说不定政策就变了 有的程式是老鸟写的 早已离职 有的程式是菜鸟写的 没办法写的好 时间压力下能动就上线是台湾公司常态 另外程式的写法有百百种 不同的思考也可以完成相同的目的 这也是程式的一种乱 既然乱是改变不了的 那我们就不该想的是让他不乱 而是说乱是一定会乱的 但是控制他的大小 就像你有一个像汽车一样大的毛线球 非常紊乱而且预期汽车毛线球还会一直长大 VS 你有300颗棒球大小的毛线球 而主要核心的毛线球可能十来颗 你控制的不是乱 而是大小 很小的毛线球再怎麽乱你也有能力救 另一个难题就是系统很大时才要改微服务 比如说把会员服务抽出来(不同DB) 你以前捞会员资料是用sql捞 现在要改用token串api接json 那可能5000支程式里有几百支直接间接用到的程式都要改 花半年改了以後 老板问你花半年的时间 系统怎麽没有任何变化 所以我也不是鼓励大老系统去改这个 而是说 作法上概念可以往这方面接近 例如新的业务就不要再加在原来的大老系统上 总之 我不是在讲很严格定义的微服务 而是在说 控制系统越来越大越来越乱的方法 可以有两个维度 一个做法是专注在让它不要乱 另一个是专注在让它不要长大 想办法让他不要长大 小东西就算乱 也乱不到那里去 有天你想好好整理 小东西也是看得到隧道的光亮 控制大小是利用框架与工具 控制品质则是主管与人的思考教育 我是觉得控制大小才是长远的解决之道 但也不是说两者冲突 其实也可以并行 只是在不同时间点的优先顺序不同
7F:推 yamiodymel: 看得出来你大概也知道微服务有多雷 11/10 03:06
8F:推 mozume: 会有原原po问题的千万别用微服务,连单体服务都搞不好的 11/10 06:05
9F:→ mozume: 上微服务只会是灾难 11/10 06:05
10F:推 DrTech: 不管是服务还是微服务,你的概念就是模组化把解偶合,减少 11/10 08:10
11F:→ DrTech: 每次变更需要处理的工作量而已。 重点是人的头脑有没有这 11/10 08:10
12F:→ DrTech: 种概念:没有这种工作概念,不管你是用什麽服务,微服务, 11/10 08:10
13F:→ DrTech: 还是把自己搞死。 11/10 08:10
14F:→ DrTech: 这就是为什麽,有些人觉得:怎麽可能专案完成越多,事情与 11/10 08:12
15F:→ DrTech: 压力越多。有些人觉得,专案完成越多,事情越多的差异。不 11/10 08:12
16F:→ DrTech: 同的人,做事情的观念决定了一切。 11/10 08:12
17F:推 devilkool: 我只写过服务而已,原来微服务过气了吗 11/10 09:12
18F:推 lazarus1121: 微服务我觉得只有server挂掉有差 11/10 09:26
19F:→ lazarus1121: 其他还是看开发习惯吧 11/10 09:26
20F:嘘 WTS2accuracy: 微服务大部分都是拿来嘴炮的 会用的少之又少 11/10 09:39
21F:→ WTS2accuracy: 多的是没多少成效甚至比不拆还惨 11/10 09:40
22F:→ WTS2accuracy: 别网路文章看一看就高潮吹上天 实际没这麽简单 11/10 09:42
23F:推 sniper2824: 差低 11/10 10:16
24F:推 happy8649: 推原po,讲得很好 11/10 11:15
25F:→ happy8649: 感觉很多人只是没遇过微服务>单体的状况 11/10 11:15
26F:→ happy8649: 或是没在成熟的微服务体系待过而已 11/10 11:15
27F:→ happy8649: 微服务在处理的并不只是程式的问题 11/10 11:15
28F:→ happy8649: 但可能大部分台湾公司的业务大小就是不会需要微服务吧 11/10 11:17
29F:→ mirror0227: 微服务不就是你原本只要管一个服务 拆开之後变成要管 11/10 11:31
30F:→ mirror0227: 10个微服务 11/10 11:31
31F:推 srwhite: 我们公司拆完之後发现外部耦合变得有点严重XD 11/10 11:35
32F:→ srwhite: 想改api都不确定会不会哪里有别支呼叫 11/10 11:35
33F:→ srwhite: 不过应该是可以从文件管理层面解决 11/10 11:36
34F:推 tsaigi: 说微服务是嘴炮的 应该是忘了加”在台湾” 这个条件 11/10 12:20
35F:推 hegemon: 楼上, Amazon影音串流那边都写文章说把微服务换回单体反 11/10 12:22
36F:→ hegemon: 而省很多钱了 11/10 12:22
37F:→ airtsubasa: 微服务用在机台单一方面还可以啦 因为改动不大 通常也 11/10 13:07
38F:→ airtsubasa: 只会丢资料收资料 11/10 13:07
39F:推 abccbaandy: 上面那个管10个微服务的,代表跟本不需要拆 11/10 13:09
40F:推 Litfal: 根本问题还是内聚力和粒度阿 11/10 15:31
41F:推 jason222333: 推 11/10 15:43
42F:→ WTS2accuracy: 微服务跟单体是权衡取舍 无脑推的根本实际经验吧 11/10 17:26
43F:→ WTS2accuracy: *没实际经验 11/10 17:27
44F:推 shvanta: 推 11/10 17:28
45F:→ viper9709: 推DrTech 11/10 17:51
46F:推 dan114021: 微服务如果乱切或是没有搞懂系统未来的走势很容易 11/10 18:42
47F:→ dan114021: 陷入微服务架构的缺点,微服务有些优点没被提到, 11/10 18:42
48F:→ dan114021: 实作的语言执行的系统都不需要考量其他服务。当然 11/10 18:42
49F:→ dan114021: 在小公司或是一个人负责一堆微服务的时候会觉得用 11/10 18:42
50F:→ dan114021: 单体的方式开发比较快,比起开API给其他微服务呼叫 11/10 18:42
51F:→ dan114021: ,单体内call function在开发上快多了 11/10 18:42
52F:推 yamagishi: 软体就是会成长,不可能避免的 11/10 20:24
53F:→ yamagishi: 不要乱就像你说的不能每一个人都有相同的存取权限 11/10 20:24
54F:→ yamagishi: 所以才有部门这种东西做为权限的最小单位 11/10 20:24
55F:推 yamagishi: 你後面补充的DDD那些就一种管理方式 11/10 20:28
56F:→ yamagishi: 对於一些team来说合适,有些不合适 11/10 20:28
57F:→ yamagishi: 跟review还有人员教育比起来,更偏重文化的部分 11/10 20:28
58F:→ yamagishi: 你这边的举例可以说是相当不合适 11/10 20:28
59F:推 happy8649: DDD放在这里不会不适合吧?DDD很大部分就是在探讨doma 11/10 21:19
60F:→ happy8649: in boundary/bounded context的拆分 11/10 21:19
61F:→ happy8649: 再说它不只是一种管理方式,它是一种软体工程中的设计 11/10 21:19
62F:→ happy8649: 方式 11/10 21:19
63F:→ TSMCfabXX: 「任何部门有任何变动都要想办法去确定这5000人都确定 11/10 22:12
64F:→ TSMCfabXX: 这个变动」不用啊, 制造部最大, 他说了算 11/10 22:12
综合说一下想法 我没在国外待过所以只是猜想与浅见 国外会流行微服务应该是因为流量 因为微服务被设计成很容易自动扩展 而微服务可以针对核心流量业务去扩展 比如购物网站的流量可能集中在商品服务 那会员服务就没必要用相同的规模去扩展 针对某服务更有效率的扩展 也更省钱 国外有流量的公司自然也有人手去做微服务 就变成正的循环 而台湾2300万人很少有大到需要去做微服务的流量 没有流量也就没钱请够多的IT去搞微服务 之所以没提微服务的其他优点 是因为我也不是在在推微服务 而是在讲越来越大 越来越乱的系统该怎麽处理比较好 程式的很多概念都很像 只是名词不一样 实务作法不一样 但这些不同也是很关键的不同 比如说模组化也是一种拆分重用 但还是不一定能避免混乱 例如新人根本不知道有这个模组 或者老人知道 但不想用这个模组 可能觉得要再加工嫌麻烦之类的 自己直接写方法处理比较快 久而久之类似的模组与方法一堆 也是乱 还是要依靠教育训练与老鸟的品德 但如果从物理上就去阻绝 资料根本不在相同的DB上 这才能更有力量去阻绝混乱 观念会红起来一定有他的道理 如果台湾因为流量没那麽大就舍弃这个观念就有点可惜 如果原生目的不是为了处理流量 未来也不会 那就不用做很严格完整的微服务 但可以去接近 不同业务 不同AP 不同DB 用物理阻绝混乱 在人类的世界 如果一个公司成长到十几人 而不划分部门就容易查觉混乱 权责问题 安全问题 命令传导混乱 自然而然就会把人划分成不同部门工作 但一些没写过程式的主管却不容易理解程式为什麽会乱 你改一个变动 理论上要测过所有的程式 都还不一定能保证没问题 改一个变动要确认5000支程式都没受影响 VS 改一个变动只要确认50支程式没受影响 这是工作心理健康问题 50支程式你会更愿意去把它变得更好 5000支程式你会想说不要乱动 能跑就好 或者你会想说 我搞懂这5000支程式都要半年以後了 不如我们重写某一块比较快 所以保持服务尽量小 那应该是很自然的 权衡取舍 就像小公司校长兼撞钟 大公司有不同部门那样 如果你是永远的小公司 或者你是大公司但业务固定不会扩展 作业流程万年不变 那其实也没必要特意再花时间去划分不同部门 的确是不适用所有的情况 ※ 编辑: chal (1.170.183.199 台湾), 11/11/2023 00:05:00
65F:→ brucetu: 感觉你以为划分了部门就不会乱 11/11 12:51
66F:→ brucetu: 你再去看一次原篇第一段提出的问题,根本不是任何开发方 11/11 12:52
67F:→ brucetu: 法可以解决的 11/11 12:52
68F:→ brucetu: 给你一套神级开发方法,你就能一人扛整个公司的全部系统 11/11 12:53
69F:→ brucetu: 开发加维运吗 11/11 12:53
70F:→ brucetu: 整篇我只看到纸上谈兵吹微服务好处,无视微服务本身的开 11/11 12:56
71F:→ brucetu: 发成本,你真的用过? 11/11 12:56
72F:→ brucetu: 这种吹观念实际上对读者没帮助的文章网路上一堆 11/11 12:57
73F:→ brucetu: 跟推广企业引入大数据就可以怎样怎样,没什麽差别 11/11 12:58
74F:→ brucetu: 有听过自从引入微服务,公司裁了几个工程师节省成本的? 11/11 13:01
75F:→ brucetu: 应该都是成本反而更高 11/11 13:01
76F:推 jack0204: 有哪个开发流程是为了节省成本的? 11/11 14:38
77F:嘘 L90156: .......一群井蛙,没实作过微服务的,不懂真的可以闭嘴!! 11/11 15:46
78F:→ L90156: 偶然看到这版,进来看一下,思维水准都太低端了... 11/11 15:47
79F:→ alihue: 楼上不要只会嘴,发一篇有水准的来看看啊 11/11 16:35
80F:推 s06yji3: 他一定不会发的啊(摊手) 11/11 20:10
81F:推 GinginDenSha: 有人在说Amazon那篇文章,那篇根本上是因为要反覆在 11/12 12:39
82F:→ GinginDenSha: workflow framework 中不同step 重复存取object sto 11/12 12:39
83F:→ GinginDenSha: rage 的资料,所以可能耗费多余的IO跟cost,但重点 11/12 12:39
84F:→ GinginDenSha: 还是想清楚step 的切分、工具及情境的使用,并不是 11/12 12:39
85F:→ GinginDenSha: 说一定monolithic 就一定好。 11/12 12:39
86F:嘘 hegemon: 不管选择走哪条路都要先想清楚需求跟人力呀,不是像很多 11/12 13:33
87F:→ hegemon: 人那样无脑微服务. 每个场景都有各自适用的方法 11/12 13:33
88F:推 fullout: 推概念解说 11/13 22:04
89F:→ alan3100: DDD是切分方式不是管理办法 讲引入微服务成本更高多半是 11/14 02:48
90F:→ alan3100: 没devops 没自动化後面维运管理爆炸 11/14 02:49
91F:→ alan3100: 开发流程不为了成本是为了啥? 陨石开发就好啦 11/14 02:52
92F:推 drakd4d: 微服务大多只是解决政治问题而已 11/14 19:19
93F:→ drakd4d: 成本很高的 11/14 19:20
94F:→ gpctv: 77楼,很凶喔! 11/15 15:02
95F:推 MIM23: 微服务後还要用APIM控管API,事情会越来越多 11/17 22:10







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP