课程地图 服务器、部署与云
场景库 术语表
M4 · Chapter 10

服务器、部署与云

理解代码如何离开本地电脑,成为用户可以访问的产品。

7 个小节7 个业务案例2 类业务场景设计师视角
先看哪些场景

部署与云、多租户 SaaS

它是什么

部署是把可运行的软件版本放入目标环境,并通过网络、进程和配置持续提供服务。

为什么需要

本地能运行只证明代码可执行;真实上线还需要域名、服务器、证书、配置、数据库和监控。

位于哪一层

位于应用代码与用户网络之间,是运行基础层。

和谁连接

Server、Linux、Process、Port、SSH、Nginx、DNS、TLS、Environment 和 Cloud。

项目里怎么出现

网站发布、API 上线、域名绑定、环境变量和云数据库都属于部署。

Learning Outcomes

学完这一章,你应该能

  • 理解服务器、进程与端口
  • 理解 Linux、SSH 和反向代理
  • 看懂域名、DNS、HTTPS 到应用的链路
  • 理解开发、测试、生产环境和云服务
10.01

服务器、进程与端口

服务器是一台持续运行程序并对外提供能力的计算机。

Business Scenario First

先从真实业务问题进入

先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。

部署与云CASE 01

同一台云服务器上为什么能同时运行前端和后端?

用户正在做什么

团队部署 Web、API 和后台任务三个程序。

业务会出什么问题

操作系统需要区分每个运行实例,并把网络请求送到正确程序。

技术怎样介入

每个应用以 Process 运行并监听不同 Port,Server 提供 CPU、内存和网络。

产品与设计怎样落地

维护页面要区分整个服务器故障和单个服务不可用。

代码启动后成为 Process,进程监听某个 Port 接收网络请求。一台服务器可以运行多个进程,每个服务通过端口区分。

服务器可能是物理机、虚拟机或云实例。CPU、内存、磁盘和网络决定它能承载多少请求与数据。

Source Code → Runtime Process → Port → Network Request
System View
代码
运行时
进程
监听端口
接收请求
返回响应
Designer Lens

“服务挂了”可能是进程退出、端口不可达、资源耗尽或依赖故障。

ServerProcessPort
10.02

Linux 与 SSH

大量服务器运行 Linux,SSH 用于安全远程管理。

Business Scenario First

先从真实业务问题进入

先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。

部署与云CASE 01

线上导出服务异常,开发如何进入服务器检查?

用户正在做什么

用户持续反馈导出失败,开发需要查看进程和日志。

业务会出什么问题

没有远程管理和权限控制,团队无法安全定位问题。

技术怎样介入

通过 SSH 登录 Linux,使用命令检查进程、文件、网络和 Permission。

产品与设计怎样落地

运维后台应记录操作人,敏感命令和生产访问需要审批。

Linux 提供文件系统、用户权限、进程、网络和日志等操作系统能力。开发常用命令查看目录、进程、端口和资源。

SSH 通过密钥或凭证登录远程服务器。生产环境应限制权限、记录操作并避免直接手工修改不可追踪内容。

Developer Machine → SSH → Linux Server → Application Process
System View
ssh user@server

常见观察:
- 文件与目录
- 进程是否运行
- 端口是否监听
- 日志是否报错
- CPU / 内存 / 磁盘
Designer Lens

设计师无需熟练运维命令,但应知道“服务器文件”和“项目源码”属于不同运行环境。

LinuxSSHPermission
10.03

Nginx 与反向代理

Nginx 常位于公网入口,把请求转发给内部应用。

Business Scenario First

先从真实业务问题进入

先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。

多租户 SaaSCASE 01

一个域名怎样同时访问网页和 API?

用户正在做什么

用户访问 example.com,前端资源和 /api 请求由不同程序处理。

业务会出什么问题

用户不能记住多个端口,应用实例也不应直接暴露。

技术怎样介入

Nginx 作为 Reverse Proxy,把静态资源和 API 路由到不同进程,并可执行 TLS Termination。

产品与设计怎样落地

统一域名减少登录和跨域问题,维护时可提供统一错误页。

用户访问 443 端口的 HTTPS 地址,Nginx 终止 TLS、提供静态文件或把 /api 请求代理到内部 3000 端口的应用。

反向代理可以统一域名、隐藏内部地址、做缓存、压缩、限流和负载均衡。应用本身无需直接暴露给公网。

Domain → Nginx / Reverse Proxy → Internal Application Port
System View
用户
HTTPS :443
Nginx
前端静态资源
后端 :3000
数据库
Designer Lens

前端页面和 API 可以使用同一域名的不同路径,也可以分成 app.example.com 与 api.example.com。

NginxReverse ProxyTLS Termination
10.04

域名、DNS、证书与 HTTPS

域名找到入口,证书证明身份并加密通信。

Business Scenario First

先从真实业务问题进入

先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。

部署与云CASE 01

客户绑定自己的企业域名后,为什么还需要证书?

用户正在做什么

客户把 portal.acme.com 指向你的 SaaS。

业务会出什么问题

DNS 只负责找到服务器,浏览器仍需确认身份并加密数据。

技术怎样介入

配置 DNS Record 指向入口,再签发 TLS Certificate,HTTPS 建立可信加密连接。

产品与设计怎样落地

域名验证、证书签发中、配置错误和到期提醒都需要产品流程。

DNS 记录把域名指向服务器或负载均衡地址。TLS 证书让浏览器验证站点身份,并加密用户与服务器之间的数据。

证书有有效期,需要自动续期。域名切换、DNS 缓存和证书配置错误都会造成访问异常。

Domain → DNS Record → Public IP / Load Balancer → TLS → Application
System View
域名
DNS
公网入口
TLS 证书
Nginx
应用
Designer Lens

登录、支付和个人数据都依赖 HTTPS;浏览器安全警告会直接破坏信任。

DomainDNS RecordTLS Certificate
10.05

环境与配置

同一套代码会在开发、测试和生产环境使用不同配置。

Business Scenario First

先从真实业务问题进入

先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。

部署与云CASE 01

测试环境为什么不能真的扣款?

用户正在做什么

开发在 staging 测试支付流程,生产环境使用真实支付密钥。

业务会出什么问题

配置混用可能导致测试订单进入真实支付或生产数据被误改。

技术怎样介入

通过 Environment 和 Environment Variable 分离数据库、域名和 Secret;Feature Flag 控制功能是否开放。

产品与设计怎样落地

页面应清楚标记测试环境,实验功能需要可见范围和回退策略。

开发环境方便调试,Staging 用于接近生产的验证,Production 服务真实用户。数据库地址、API Key、日志级别和功能开关会随环境变化。

Environment Variable 把配置与代码分离。密钥不能写进仓库,数据库结构和基础数据也要按环境管理。

Same Code + Different Configuration → Dev / Staging / Production
System View

开发环境

  • 本地调试
  • 假数据或开发数据库
  • 允许详细日志

生产环境

  • 真实用户
  • 严格权限与监控
  • 稳定发布和回滚
Designer Lens

设计验收要明确验证环境与版本,避免测试的是旧构建或错误配置。

EnvironmentEnvironment VariableFeature Flag
10.06

从代码到上线的部署链

部署包含构建、传输、启动、迁移、健康检查和流量切换。

Business Scenario First

先从真实业务问题进入

先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。

部署与云CASE 01

一段新代码怎样安全变成线上服务?

用户正在做什么

团队修复订单退款问题并准备发布。

业务会出什么问题

直接复制代码到服务器难以复现、验证和回退。

技术怎样介入

代码构建为 Artifact,部署后通过 Health Check 验证,异常时执行 Rollback。

产品与设计怎样落地

发布中的短暂状态、维护提示和版本兼容需要提前设计。

源代码经过测试和 Build 生成 Artifact 或镜像,发布系统把它放到目标环境,执行数据库 Migration,启动新进程并检查健康。

新版本通过验证后接收流量,旧版本保留一段时间用于回滚。手工复制文件只是最基础的部署方式。

Commit → CI → Build Artifact → Deploy → Migrate → Health Check → Traffic
System View
提交代码
自动测试
构建产物
部署新版本
健康检查
切换流量
监控与回滚
Designer Lens

上线按钮背后是一套风险控制流程,版本、环境和回滚点都需要清楚。

ArtifactHealth CheckRollback
10.07

云计算到底提供什么?

云平台把计算、存储、数据库、网络和运维能力产品化。

Business Scenario First

先从真实业务问题进入

先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。

部署与云CASE 01

小团队为什么可以不用自己维护数据库和消息队列?

用户正在做什么

三人团队要上线 SaaS,需要服务器、数据库、对象存储和日志。

业务会出什么问题

自建所有基础设施需要大量运维知识和时间。

技术怎样介入

IaaS 提供计算资源,PaaS 承载应用,Managed Service 直接提供数据库、存储和队列。

产品与设计怎样落地

产品规划要考虑供应商限制、成本增长、数据区域和备份能力。

IaaS 提供虚拟机和网络,PaaS 提供托管运行平台,Managed Service 提供云数据库、对象存储、队列、CDN 和 AI 等现成能力。

托管服务减少维护工作,也带来成本、限制和供应商依赖。选择时考虑团队能力、规模、合规和迁移难度。

Application → Compute + Database + Storage + Network + Managed Services
System View
Compute:虚拟机/函数
Database:托管数据库
Storage:对象存储
Network:DNS/CDN/LB
Messaging:队列与事件
Observability:日志与监控
Designer Lens

云服务让小团队也能组合出完整系统,但每个勾选项都可能形成持续费用和运行责任。

IaaSPaaSManaged Service
Chapter Recap

本章小结

  • 01
    代码通过运行时成为进程,并监听端口提供服务。
  • 02
    Nginx、域名、DNS 和 TLS 共同构成公网入口。
  • 03
    开发、测试、生产使用同一代码和不同配置。
  • 04
    完整部署包含构建、迁移、健康检查、流量和回滚。
Practice

把认知变成一张图

画出 example.com 从浏览器到应用进程的链路,标出 DNS、443、Nginx、内部端口和数据库。

Quick Check

随堂检查

QUESTION 01
应用启动后,在操作系统中通常表现为什么?
运行中的程序在操作系统里是进程。
QUESTION 02
Nginx 把公网请求转发到内部应用,这叫什么?
代表内部服务接收外部请求称为反向代理。