同一台云服务器上为什么能同时运行前端和后端?
团队部署 Web、API 和后台任务三个程序。
操作系统需要区分每个运行实例,并把网络请求送到正确程序。
每个应用以 Process 运行并监听不同 Port,Server 提供 CPU、内存和网络。
维护页面要区分整个服务器故障和单个服务不可用。
理解代码如何离开本地电脑,成为用户可以访问的产品。
部署与云、多租户 SaaS
部署是把可运行的软件版本放入目标环境,并通过网络、进程和配置持续提供服务。
本地能运行只证明代码可执行;真实上线还需要域名、服务器、证书、配置、数据库和监控。
位于应用代码与用户网络之间,是运行基础层。
Server、Linux、Process、Port、SSH、Nginx、DNS、TLS、Environment 和 Cloud。
网站发布、API 上线、域名绑定、环境变量和云数据库都属于部署。
服务器是一台持续运行程序并对外提供能力的计算机。
先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。
团队部署 Web、API 和后台任务三个程序。
操作系统需要区分每个运行实例,并把网络请求送到正确程序。
每个应用以 Process 运行并监听不同 Port,Server 提供 CPU、内存和网络。
维护页面要区分整个服务器故障和单个服务不可用。
代码启动后成为 Process,进程监听某个 Port 接收网络请求。一台服务器可以运行多个进程,每个服务通过端口区分。
服务器可能是物理机、虚拟机或云实例。CPU、内存、磁盘和网络决定它能承载多少请求与数据。
“服务挂了”可能是进程退出、端口不可达、资源耗尽或依赖故障。
大量服务器运行 Linux,SSH 用于安全远程管理。
先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。
用户持续反馈导出失败,开发需要查看进程和日志。
没有远程管理和权限控制,团队无法安全定位问题。
通过 SSH 登录 Linux,使用命令检查进程、文件、网络和 Permission。
运维后台应记录操作人,敏感命令和生产访问需要审批。
Linux 提供文件系统、用户权限、进程、网络和日志等操作系统能力。开发常用命令查看目录、进程、端口和资源。
SSH 通过密钥或凭证登录远程服务器。生产环境应限制权限、记录操作并避免直接手工修改不可追踪内容。
ssh user@server
常见观察:
- 文件与目录
- 进程是否运行
- 端口是否监听
- 日志是否报错
- CPU / 内存 / 磁盘设计师无需熟练运维命令,但应知道“服务器文件”和“项目源码”属于不同运行环境。
Nginx 常位于公网入口,把请求转发给内部应用。
先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。
用户访问 example.com,前端资源和 /api 请求由不同程序处理。
用户不能记住多个端口,应用实例也不应直接暴露。
Nginx 作为 Reverse Proxy,把静态资源和 API 路由到不同进程,并可执行 TLS Termination。
统一域名减少登录和跨域问题,维护时可提供统一错误页。
用户访问 443 端口的 HTTPS 地址,Nginx 终止 TLS、提供静态文件或把 /api 请求代理到内部 3000 端口的应用。
反向代理可以统一域名、隐藏内部地址、做缓存、压缩、限流和负载均衡。应用本身无需直接暴露给公网。
前端页面和 API 可以使用同一域名的不同路径,也可以分成 app.example.com 与 api.example.com。
域名找到入口,证书证明身份并加密通信。
先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。
客户把 portal.acme.com 指向你的 SaaS。
DNS 只负责找到服务器,浏览器仍需确认身份并加密数据。
配置 DNS Record 指向入口,再签发 TLS Certificate,HTTPS 建立可信加密连接。
域名验证、证书签发中、配置错误和到期提醒都需要产品流程。
DNS 记录把域名指向服务器或负载均衡地址。TLS 证书让浏览器验证站点身份,并加密用户与服务器之间的数据。
证书有有效期,需要自动续期。域名切换、DNS 缓存和证书配置错误都会造成访问异常。
登录、支付和个人数据都依赖 HTTPS;浏览器安全警告会直接破坏信任。
同一套代码会在开发、测试和生产环境使用不同配置。
先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。
开发在 staging 测试支付流程,生产环境使用真实支付密钥。
配置混用可能导致测试订单进入真实支付或生产数据被误改。
通过 Environment 和 Environment Variable 分离数据库、域名和 Secret;Feature Flag 控制功能是否开放。
页面应清楚标记测试环境,实验功能需要可见范围和回退策略。
开发环境方便调试,Staging 用于接近生产的验证,Production 服务真实用户。数据库地址、API Key、日志级别和功能开关会随环境变化。
Environment Variable 把配置与代码分离。密钥不能写进仓库,数据库结构和基础数据也要按环境管理。
设计验收要明确验证环境与版本,避免测试的是旧构建或错误配置。
部署包含构建、传输、启动、迁移、健康检查和流量切换。
先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。
团队修复订单退款问题并准备发布。
直接复制代码到服务器难以复现、验证和回退。
代码构建为 Artifact,部署后通过 Health Check 验证,异常时执行 Rollback。
发布中的短暂状态、维护提示和版本兼容需要提前设计。
源代码经过测试和 Build 生成 Artifact 或镜像,发布系统把它放到目标环境,执行数据库 Migration,启动新进程并检查健康。
新版本通过验证后接收流量,旧版本保留一段时间用于回滚。手工复制文件只是最基础的部署方式。
上线按钮背后是一套风险控制流程,版本、环境和回滚点都需要清楚。
云平台把计算、存储、数据库、网络和运维能力产品化。
先看用户动作和业务风险,再理解技术为什么出现,以及它会怎样改变页面、状态和流程。
三人团队要上线 SaaS,需要服务器、数据库、对象存储和日志。
自建所有基础设施需要大量运维知识和时间。
IaaS 提供计算资源,PaaS 承载应用,Managed Service 直接提供数据库、存储和队列。
产品规划要考虑供应商限制、成本增长、数据区域和备份能力。
IaaS 提供虚拟机和网络,PaaS 提供托管运行平台,Managed Service 提供云数据库、对象存储、队列、CDN 和 AI 等现成能力。
托管服务减少维护工作,也带来成本、限制和供应商依赖。选择时考虑团队能力、规模、合规和迁移难度。
云服务让小团队也能组合出完整系统,但每个勾选项都可能形成持续费用和运行责任。
画出 example.com 从浏览器到应用进程的链路,标出 DNS、443、Nginx、内部端口和数据库。