深夜无聊看了下知乎,突然看到这个问题,没想到居然是 19 年就提出的。
JAVA 大军,开始把目光从 spring cloud 转向 k8s 甚至 k8s+istio 了么? - 知乎 https://www.zhihu.com/question/345497663
鉴于最近学了一点点 k8s ,算是对云原生有了一点了解,虽然还没学 service mesh , 但也大概明白了这个问题,至少个人感觉 k8s 本身就可以替代 服务注册发现中心,k8s 也天然支持负载均衡了。
而且上家公司(外包),甲方也一直说是云原生什么的,我那时不懂,以为就是服务上云,加入 k8s 管理。 现在想想 之前服务其实都是用 springboot 单体架构,调用上下游接口也是通过 k8s 暴露的 api 用 feign 去 call 的,这是不是就是知乎这个问题说的一种方式呢。
但是看现在招聘市场,其实很多 jd ,提到分布式 springcloud 还是主流,虽然也有很多说要有 k8s 经验的,但我不知道他们是把 k8s 当成是运维工具还是 另类的分布式架构呢。
ps:我主要用的 java ,所以只知道基于 SpringCloud 的这种分布式架构
![]() |
1
kuanat 94 天前 ![]() 我没在工作中见到从传统架构渐进式过渡到云原生的成功案例,甚至没有听说过。所以就我个人的经验来说,在非云原生架构上加入 k8s 基本上只是当作运维工具来用,或者迁移一部分比如配置管理之类的功能过去。我理解造成这种现状的原因主要还是迁移对于团队技术要求太高了,在权衡过迁移成本和风险之后,大多数团队可能会选择重写。
传统架构中很少有真正意义上的分布式,多数业务的实现都是大单体应用,无法像微服务那样以非常细的粒度对功能模块进行拆分。所谓分布式的实践大多数停留在主从复制、负载均衡的层面上。k8s 之类的平台是将开发和运维的工作进行解耦,开发者(理想情况下)不再用关心运维层面的事情。实现的方式本质上是尽可能暴露应用内部状态,让数据流动公开化,最终的结果就以微服务的形式表现出来。 简单总结就是,我不看好任何形式的架构层面的迁移。要么坚守传统架构,要么从零开始云原生,我也不相信换个软件框架就能实现过渡。 |
![]() |
2
xuanbg 94 天前
所谓云原生其实也就那样,并没有高明到哪里去。k8s 确实能提供负载均衡、注册中心、配置中心等功能,你可以用,也可以不用。微服务确实好,但前提是你的团队要搞得定自动化运维。最不济也得是半自动,不然就是给自己找麻烦。
总之,适合自己的才是最好的,没必要被别人牵着鼻子走。 |
![]() |
3
imzcg2 94 天前
其实在人员,钱,技术不到位的情况下,大部分在工作的人都是在以公司名义拿公司工资写自己简历上的商业项目,最后都会变成分布式单体...也即模块是你写,你调,治理也是你来治理,加班也是你来加
|
4
crackidz 94 天前
工作只是从一群人手中转移到了另外一群人手中而已。但是往往这期间大部分人属于搞不明白,就像 OP 提到的那种,一遍搞着 Spring 全家桶,一边只用 K8s 跑个服务,美其名曰我云原生了。云原生个蛋蛋,你还不如只用 Docker 呢给人减减负。
|
5
laminux29 94 天前
传统分布式架构,不仅是主流,而且会长期一直是主流。
原因很简单,集中式架构,软硬件太昂贵,大部分信息化的项目都买不起,只有银行、电力等大企业,对硬件的可用性有极端要求的,才用得起这种旗舰型集中式架构的软硬件。 |
![]() |
7
xueyuehua OP |
8
laminux29 94 天前
@xueyuehua 我说的集中式架构的硬件,指的是典型的 IBM Z 系列服务器(旗舰机)。这种机型,就算是 CPU 都能做成冗余的,能允许部分 CPU 故障。这种系统,不需要程序员对信息化系统进行分布式设计,因为它支持把多个 CPU 、内存,动态的划分给单个虚拟机。
|
9
laminux29 94 天前
@mark2025 不是。我说的集中式,指的是,应用、中间件、数据库等等,每一类只需要一台虚拟机即可,甚至可以在单台虚拟机里部署所有的应用、中间件、数据库。这种模式极大地方便程序员进行开发、排错。服务器能够自动进行硬件扩容与调优。
|
![]() |
10
C02TobNClov1Dz56 94 天前
@laminux29 #9 听说小红书海外还砍掉了分布式架构, 就用单纯的分表分库扩充了几十个库, 刨除负载均衡的部分, 服务和中间件基本都是单体架构来着
|
11
kzfile 93 天前
我发现我们公司的 k8s 只是当做一个大 docker 来用,很多业务其实只能单节点跑,多节点会发生业务逻辑错乱
|
12
laminux29 93 天前
@chengyiqun 因为单体架构省钱。开发、调试、部署,都非常方便高效。
|
![]() |
13
LoliconInside 93 天前
我感觉搞出云原生这套理念最大的目的还是为了屏蔽底层细节,让开发者专注于业务代码的编写,把业务无关的代码工作都下沉到基础设施层统一提供,Serverless/FaaS 基本可以看作最终完全体;在这一愿景下,云+K8s 是最完美的实现载体。但话又说回来,没有一套架构可以适应所有的业务结构,架构设计和技术选型最终还是要根据业务需求和现实情况来走的。
|