开发学校内部使用的平台,该上微服务吗

2019-10-07 17:51:28 +08:00
 shangyes

主要业务比较简单 面向全体的有活动报名、活动日历和活动跟进 面向组织的有活动登记、活动发布、活动认证和总结、导入导出名单 面向管理员的有查看修改各种实体、导入导出名单

感觉体量小,压力不高,上微服务成本不划算, 但是又考虑到后续可能会有拓展业务和接入其他系统的需求,直接一步到位微服务可以减轻将来也许会有的需求

现在不知道怎么抉择,大家怎么看

5960 次点击
所在节点    Go 编程语言
35 条回复
helsonxiao
2019-10-07 21:27:13 +08:00
技术(微服务)的出现是为了解决某个(些)问题,我觉得可以联系整个应用的场景,分析下引入微服务是解决了问题,还是说只赶了时髦,单纯增加了程序开发和维护的复杂性?
TheBestSivir
2019-10-07 21:31:26 +08:00
微服务只是部署层面的拆分,代码层面一样可以做到逻辑的解耦和规划,可以了解一下 DDD

微服务原本是为了组织结构为研发带来的壁垒,推荐可以了解一下康威定律,就会更深刻的理解微服务解决的本质问题是团队分工
[和业务体量、业务复杂度的关系其实没有大多数人想的那么大,只是微服务顺手解决了这些问题而已]

楼上大多数人对微服务几乎只有 [术] 上的了解,对其 [道] 毫无所知

微服务的研发成本、部署成本、维护成本都是显著上升的,正如我们知道的”世界上没有完美的架构“,所以微服务是带来了一些问题,从而解决了一些问题

所以!
总结一下!
你的希望是自己的服务可扩展性和可维护性,你还记得大学课本里面说啥了没?

高内聚,低耦合

微服务只是在部署维度尝试做了这些事
那么微服务高内聚的是什么?是业务
微服务低耦合的又是什么?组织结构和团队

而你的关注点在哪儿?在代码本身,那么这个维度怎么解决呢?就是代码的纵向和横向的设计与拆分,可以好好参考一下 DDD,可以直接用其作为你的战术也可以简单参考一下,anyway,做一下你的领域设计,设计出一个可以运行好多年的架构出来吧。

加油。
jugelizi
2019-10-07 21:32:51 +08:00
当然要上
尽管可能不是很有必要
却是一个方向 系统项目更加清晰
wangyzj
2019-10-07 21:34:33 +08:00
工作上完全没必要,因为你要多投入一个人的成本
自己玩可以

同情被 devops 和微服务深深毒害的你
zjsxwc
2019-10-07 21:39:10 +08:00
大学学生项目,额,
预算低还是算了吧,
难道是一台物理主机来开 N 个虚拟机来跑微服务集群?
如果预算一个机房的话我觉得可以不然没必要。
TheBestSivir
2019-10-07 21:40:26 +08:00
@wizzer 单体的微服务项目,你是对微服务有什么误解么?一个 web 开发脚手架(框架?)怎么就和微服务框架扯上关系了,omg。
charlie21
2019-10-07 22:00:29 +08:00
点破不说破,否则 ... 抹黑微服务?三分钟抬杠大军就在路上,就说你不懂微服务,扣帽子能扣死你

DDD 这种 玩意你既然提了那么最好解释一下
shangyes
2019-10-07 22:36:03 +08:00
@cabing 决定单体了

@TheBestSivir 发现自己确实存在不少误解,其实一开始把微服务当成选项之一就是为了解耦。了解了一下 DDD,确实是一个很好的参考,多谢多谢

@helsonxiao 哈哈其实一是为了积累经验二是减少以后系统增加业务的复杂度,三是赶时髦吧(捂脸

@wangyzj 因为最近很火的亚子,devops 其实只入了个门玩过 jenkins,微服务还没碰过,还是蛮想尝试一下的

@zjsxwc 结合实际,很有道理,我选型的思路过于理想化了
shangyes
2019-10-07 22:37:09 +08:00
谢谢大家的建议 XDDD,决定老老实实单体
wizzer
2019-10-08 09:19:27 +08:00
@TheBestSivir 送你两个字,呵呵
qwab16
2019-10-08 10:58:51 +08:00
单体就够,解耦还是看架构业务领域设计,遇到瓶颈再解决。自己首先对项目有个期望,现在的架构设计是否跟的上未来的业务发展速度,若两年内都不会有很大的发展就没必要上微服务。我的理解技术永远是服务于业务的,只有业务上的发展才能带动技术上的突破。
TheBestSivir
2019-10-08 11:06:48 +08:00
@wizzer 很多时候我们 fail 一个同学的简历就是这样的,一句话就看出一个人是真懂还是假懂。建议看一下 <amp-youtube data-videoid="XjMTDb20O7M" layout="responsive" width="480" height="270"></amp-youtube>,先弄明白什么是微服务,什么场景下使用微服务再说吧。唉,一线互联网在强势输出技术概念的时候,往往都会一个层级一个层级的被扭曲

@charlie21 你说的对,但是我也只是把我的观点带出,至于后续的部分,不是我能完全靠评论解释的通的。而且不抱着一本红书结合手上的复杂业务,是无法完全理解 DDD 的概念的。我们团队也走了两三年的历程才有一些自己的理解
hyperbin
2019-10-08 12:41:18 +08:00
过早的优化是万恶之源
luozic
2019-10-08 13:13:09 +08:00
快速开发,不需要; 慢慢来 吹技术,可以。
shangyes
2019-10-08 15:18:11 +08:00
@hyperbin 经常写着写着想到可以优化,最后的结果就是周期越拖越长而且各种过度设计 TuT

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/606762

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX