目录

后台技术

从单体到云原生:现代后台技术的全景与脉络

「后台技术」(Backend / Server-side Technology)是一个边界宽泛、持续演化的概念。它泛指运行在服务器侧、为前端(浏览器、App、小程序、IoT 设备等)提供数据与业务能力支撑的全部技术栈,涵盖编程语言、应用框架、存储、消息、网络、运维、安全等多个层面。

本文不试图罗列所有工具,而是从一条主线出发——一次用户请求在后端经历了什么——梳理现代后台技术的关键组成与脉络,并给出进一步学习的路径。

参考业内常用的分层方式,后台技术大致可以划分为以下几层:

层次关注点典型技术
编程语言与运行时用什么语言写服务Java / Go / Python / Node.js / Rust / C#
应用框架如何快速构建 HTTP/RPC 服务Spring Boot、Gin、FastAPI、NestJS
数据存储数据怎么存、怎么读MySQL、PostgreSQL、Redis、MongoDB、Elasticsearch
中间件服务与服务之间如何协作Kafka、RabbitMQ、etcd、ZooKeeper
服务治理多服务环境下如何管理依赖服务注册发现、负载均衡、熔断限流、API 网关
容器与编排如何打包与调度服务Docker、Kubernetes、containerd
可观测性系统运行得怎么样Prometheus、Grafana、OpenTelemetry、Loki
DevOps / CI/CD代码如何安全地交付到生产Git、Jenkins、GitLab CI、ArgoCD

每一层都不是孤立的,而是彼此耦合。例如选了 Go 与 gRPC,就顺带决定了序列化协议、网络模型与服务发现方式。

假设用户在前端点击「下单」,一条请求会在后端经历若干阶段:

  1. 入口层:请求先到达负载均衡器或反向代理(如 Nginx、Envoy),被分发到后端服务的某个实例。
  2. 网关层:API 网关完成鉴权、限流、路由、协议转换,再转发给具体的业务服务。
  3. 业务层:订单服务处理核心逻辑,通过 RPC 或消息队列调用库存、账户、风控等其他服务。
  4. 数据层:服务读写数据库,缓存热点数据到 Redis,异步任务投递到 Kafka。
  5. 可观测层:每一步产生的指标(Metrics)、日志(Logs)、链路追踪(Traces)被采集到后端,供监控与排障使用。

理解这条链路,就掌握了后台技术的主干。

所有功能模块打包成一个应用,部署在同一进程内。优点是开发、调试、部署都简单,适合中小型项目与团队早期。缺点是代码膨胀后难以扩展和维护,任何一处改动都需要整体重新发布。

将系统按业务边界拆分为多个独立服务,每个服务可以单独开发、部署、扩缩容。常见的通信方式是 HTTP/REST 和 gRPC。微服务带来灵活性的同时也引入了复杂度:服务发现、配置管理、分布式事务、链路追踪都需要专门的基础设施支撑。

云原生(Cloud Native)强调以容器、不可变基础设施、声明式 API 为基础,让应用天然适合在云上弹性伸缩。其代表技术栈由 CNCF(Cloud Native Computing Foundation)主导,Kubernetes 是其中的核心项目。

Kubernetes(简称 K8s)是 Google 在 2014 年基于内部 Borg 系统开源的容器编排平台。根据官方定义,它是「一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,支持声明式配置和自动化」。

Kubernetes 解决的核心问题是:当服务数量从几个扩展到成百上千,如何自动调度、扩缩容、自愈和滚动更新。它提供的关键能力包括:

  • 服务发现与负载均衡:通过 DNS 或 IP 暴露容器,并在多个实例间分发流量。
  • 自动滚动发布与回滚:以受控速率将实际状态推向期望状态。
  • 自愈:自动重启、替换失败或未响应的容器。
  • 水平扩缩容:基于 CPU 或自定义指标自动调整实例数。
  • 声明式 API:用户描述「期望状态」,控制器持续驱动「当前状态」向其收敛。

需要注意,Kubernetes 本身并不提供数据库、缓存、日志或监控方案,这些需要结合生态项目自行选型。

可观测性(Observability)是现代后台系统健康运行的基础。社区通常将其拆成三根支柱:

  • 指标(Metrics):聚合后的数值时序数据,如 QPS、延迟分位、错误率。代表工具是 Prometheus,它采用拉模型采集时序数据,配套 PromQL 查询语言,通常与 Grafana 一起做可视化。
  • 日志(Logs):离散事件记录,常用于排障。典型栈包括 ELK(Elasticsearch + Logstash + Kibana)或 Grafana Loki。
  • 链路追踪(Traces):记录一次请求在不同服务之间的调用路径,代表项目有 Jaeger、Tempo。

OpenTelemetry (OTel) 是 CNCF 主导的可观测性数据采集标准,由 OpenTracing 和 OpenCensus 合并而来。它本身不提供后端存储与可视化,而是规范了 API、SDK 与 OTLP 协议,使得指标、日志、追踪数据可以以厂商无关的方式导出到任意后端,避免被单一可观测性厂商锁定。

DevOps 既是文化也是工程实践,目标是缩短从代码提交到生产部署的周期,同时保证稳定。核心实践包括:

  • 版本控制:所有代码与配置纳入 Git 管理。
  • 持续集成(CI):每次提交自动触发构建、测试与静态检查。
  • 持续交付/部署(CD):将通过测试的产物自动发布到预发或生产环境。
  • 基础设施即代码(IaC):用 Terraform、Ansible 等工具声明式管理环境。
  • 十二要素应用(12-Factor App):由 Heroku 提出的 SaaS 应用构建方法论,涵盖代码库、依赖、配置、Backing Service、构建发布运行等十二条原则,是后台工程师的基本常识。

后台技术庞杂,初学者容易迷失方向。建议遵循由浅入深的顺序:

  1. 打基础:操作系统、计算机网络(TCP/IP、HTTP)、数据库原理、一门主力编程语言。
  2. 做项目:用框架(Spring Boot / Gin / FastAPI 等)独立写一个完整服务,涵盖 CRUD、鉴权、缓存。
  3. 学中间件:Redis、消息队列、关系数据库的索引与事务。
  4. 上手容器与编排:先用 Docker 打包应用,再在本地或 Minikube 上体验 Kubernetes。
  5. 关注可观测性与稳定性:接入 Prometheus + Grafana,理解限流、熔断、降级。
  6. 读源码与好书:从经典书籍与高质量开源仓库入手,建立体系化认知。

开源学习资源:

  • 深入架构原理与设计(theByteBook) —— 深入讲解内核网络、Kubernetes、Service Mesh、容器等云原生相关技术的开源电子书,纸质版名为《深入高可用系统原理与设计》。
  • DevOps_Books —— 涵盖 Docker、Kubernetes、Terraform、Ansible、CI/CD、SRE 等主题的开源书籍合集。
  • The Kubernetes Book (Nigel Poulton) —— 介绍 Kubernetes 概念与实操的入门读物(收录于上述合集)。

官方文档与规范:

相关内容