后端架构演进:从单体到云原生(零基础小白也能看懂)
开篇:什么是后端架构?为什么它在不断“变脸”?

想象一下,你开了一个小餐馆。最初你自己一个人负责炒菜、洗碗、收银……这就是单体架构。
随着餐馆越来越火,顾客越来越多,你开始雇人分摊工作:有人专门点餐,有人负责厨房,有人打扫卫生……这种分工合作的模式就是微服务架构。
再后来,你可能开分店、上外卖平台、接入美团支付宝支付……这就需要更灵活、可扩展的技术方案,比如用云服务快速部署新功能——这就是我们今天要讲的云原生架构。
本教程将带你从零开始了解后端架构的发展历程,并通过代码示例逐步实践搭建一个从单体到云原生的简单项目。
环境准备:你需要哪些工具?

要想学习后端架构,我们需要先准备好编程环境:
所需工具清单
| 工具 | 用途 |
|---|---|
| Node.js + Express | 搭建 Web 应用 |
| MongoDB / MySQL | 数据库存储 |
| Docker | 容器化部署 |
| Kubernetes (k8s) | 容器编排 |
| Git + GitHub | 版本控制与协作 |
推荐使用 Mac 或 Linux 系统,如果使用 Windows 建议开启 WSL2
安装步骤(以 Node.js 和 Express 为例)
- 安装 Node.js(建议安装 LTS 版本)
- 验证是否安装成功:
node -v # 输出类似 v18.xx.x
npm -v # 输出类似 9.xx.x
- 安装 Express 框架:
npm install express --save
核心概念:后端架构发展的三个阶段

我们可以把整个发展过程分为三大阶段:
阶段一:单体架构(Monolithic Architecture)
通俗解释:
- 所有功能都写在一个程序里(就像一家小饭店)
- 适合小型项目或初学者入门
示例:一个简单的博客系统
// app.js
const express = require('express');
const app = express();
app.get('/posts', (req, res) => {
res.json([
{ id: 1, title: "Hello World" },
{ id: 2, title: "My First Post" }
]);
});
app.listen(3000, () => console.log("Server running on port 3000"));
运行命令:
node app.js
访问 http://localhost:3000/posts 即可看到输出结果。
阶段二:微服务架构(Microservices Architecture)
通俗解释:
- 把一个大项目拆分成多个“独立”的小项目(如:用户服务、文章服务、评论服务)
- 更容易维护和扩展
微服务拆解图:
+-------------+
| 用户服务 |
+-------------+
↑
+-------------+
| 文章服务 |
+-------------+
↑
+-------------+
| 评论服务 |
+-------------+
示例:拆出一个独立的文章服务
新建一个目录 blog-api,创建如下结构:
/blog-api
└── index.js
└── routes/postRoutes.js
postRoutes.js
const express = require('express');
const router = express.Router();
router.get('/posts', (req, res) => {
res.json([{ id: 1, title: "Cloud Native is Fun!" }]);
});
module.exports = router;
index.js
const express = require('express');
const postRoutes = require('./routes/postRoutes');
const app = express();
app.use('/api', postRoutes);
app.listen(4000, () => console.log("Post Service Running on 4000"));
现在你可以分别启动多个服务,实现模块化开发!
阶段三:云原生架构(Cloud Native Architecture)
通俗解释:
- 在云端自动运行、弹性伸缩、自我修复的架构
- 使用容器化(Docker) + 编排系统(Kubernetes)
主要技术栈:
| 技术 | 作用 |
|---|---|
| Docker | 将应用打包成容器镜像 |
| Kubernetes | 自动管理容器的启停、负载均衡、扩容缩容等 |
| Helm Chart | 管理复杂的 Kubernetes 配置 |
| CI/CD | 实现自动化部署 |
示例:给我们的博客 API 写一个 Dockerfile
# blog-api/Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY . .
RUN npm install
EXPOSE 4000
CMD ["node", "index.js"]
构建并运行 Docker 容器:
docker build -t blog-api .
docker run -d -p 4000:4000 blog-api
访问 http://localhost:4000/api/posts 可以看到结果。
实战项目:从单体到云原生的简单演变

我们将一步步完成以下内容:
- 构建一个简单的博客 API(单体)
- 拆分成微服务(多服务)
- 容器化部署(Docker)
- 用 Kubernetes 管理容器(云原生)
第一步:创建单体服务
前面已经演示过一个完整的 Express 服务,这里不再赘述。
第二步:拆分微服务
- 创建两个服务:
user-servicepost-service
每个服务单独监听不同端口。
第三步:用 Docker 打包每个服务
分别为 user-service 和 post-service 编写 Dockerfile 并构建镜像。
例如:
cd user-service
docker build -t user-service .
第四步:用 Kubernetes 部署服务
如果你本地安装了 Minikube,可以尝试以下操作:
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: post-service
spec:
replicas: 2
selector:
matchLabels:
app: post-service
template:
metadata:
labels:
app: post-service
spec:
containers:
- name: post-service
image: post-service
ports:
- containerPort: 4000
运行:
kubectl apply -f deployment.yaml
kubectl get pods
这样你的服务就在 Kubernetes 上跑起来了!
常见问题解答(FAQ)
Q1:我学完这些就能去公司做后端了吗?
A:这只是起点!实际项目中还会涉及数据库设计、API 测试、权限管理等内容,后续还要继续学习。
Q2:云原生真的必须学吗?
A:是的。现在很多大厂都在推动云原生架构,掌握这项技能会让你更有竞争力。
Q3:我没有服务器能练 Docker 吗?
A:当然可以!Docker 是本地运行的,只要你电脑配置够用就可以练习。
Q4:Kubernetes 太难了怎么办?
A:先理解基本概念(Pod、Service、Deployment),不要一开始就追求全会。
学习建议:下一步该做什么?
初级路径(已完成):
- ✅ 学会使用 Express 写接口
- ✅ 学会拆分微服务
- ✅ 学会使用 Docker 容器化部署
- ✅ 初识 Kubernetes 基础知识
中级路径(建议下阶段学习):
- ✅ 学习使用 MongoDB 或 MySQL 作为数据源
- ✅ 学习 RESTful API 设计规范
- ✅ 学习 JWT 身份验证机制
- ✅ 使用 Jenkins/GitLab CI 搭建自动化部署流水线
- ✅ 进阶学习 K8s 的网络和服务发现原理
推荐资源:
- 免费课程:freeCodeCamp 后端开发
- 图书推荐:《深入浅出 Docker》《Kubernetes 权威指南》
- 工具推荐:Postman(接口测试)、VS Code(代码编辑)
结语:从单体到云原生,每一步都是进步。坚持动手实践,你会很快掌握现代后端开发的核心能力。加油,未来的后端工程师!💪

评论 0