Ch9-06 微服务、基础设施即代码与不可变架构
所属域:Domain 3 Security Architecture and Engineering 对应原书:Chapter 9 — Microservices / Infrastructure as Code / Immutable Architecture(及 SOA)
① 一句话秒懂
现代应用把大系统拆成小、独立、松耦合的微服务(靠 API 通信);IaC 把基础设施当代码管理;不可变架构部署后不改、坏了整体替换——三者都强调”标准化、可重复、易恢复”,但微服务带来分布式认证/加密新挑战。
② 生活类比
微服务像乐高:每个小积木独立可用、可替换,拼起来是大城堡;IaC 像用一份食谱自动搭厨房而非手工垒;不可变架构像一次性餐盒——脏了不洗,直接换新的。
③ 核心概念(大白话 + 原书定义)
SOA(面向服务架构) 用现有独立软件服务拼出新应用/功能;新应用安全未知、未测、未防护,上线前必须彻底审查。注意潜在单点故障与涌现性弱点(emergent weaknesses)。
微服务(Microservices) 把应用拆成一组小、独立可部署、松耦合的服务,每个服务代表一个业务能力,自带数据库与通信机制。特点:可扩展、易维护、独立部署(类似 Agile 短周期)。API 是关键——每个微服务暴露定义良好的 API,API 是服务间通信通道。 安全考量:
- 认证与授权:验证用户与服务身份,定义正确授权策略。
- 数据加密:传输中(in transit)与静态(at rest)均加密。
- 分布式互联带来更大攻击面,每个服务都要有健壮安全。
基础设施即代码(IaC, Infrastructure as Code) 用代码/配置文件定义与管理基础设施(服务器、网络、存储),可版本化、可重复部署、减少人为错误,是 DevSecOps 基础。派生概念 SDN(软件定义网络)、DCE(数据中心环境)。
不可变架构(Immutable Architecture) 组件部署后不再更改;需变更时丢弃旧实例、用新配置整体重建(phoenix 重生)。好处:降低管理开销、缩短部署、环境一致。常与微服务、IaC 搭配。
软件定义一切(SDx, Software-Defined Everything) 用虚拟化以软件替硬件:含虚拟化、容器、SDN、VSAN、SDS、VDI、VMI、SDV、SDDC、IaaS、XaaS 等。
- VDI(虚拟桌面基础设施)/ VDE:桌面 VM 集中在服务器远程访问,降低端点风险;持久桌面保留个性化,非持久桌面登出即还原。
- VMI(虚拟移动基础设施):移动设备 OS 在中心服务器运行,组织掌控更强。
- Thin client(瘦客户机):低能设备/虚拟接口,远程访问主机/VM/VDI/VMI,计算存储全在服务器。
- SDV(软件定义可见性):自动化网络监控与响应,逐包分析、智能决策。
- SDDC(软件定义数据中心)/ VDC:以虚拟方案(常由 CSP 提供)替物理 IT,近似 ITaaS/IaaS。
Serverless(无服务器) 见 Ch16。
④ 真实案例
- Netflix 用微服务+容器,单服务故障不影响全站,独立扩缩容。
- 用 Terraform(IaC)管理云基础设施,环境一致、可回滚。
- 不可变架构下,受感染的实例被自动销毁重建,而非现场修补。
⑤ 考试怎么考
- 微服务特征:小、独立、松耦合、自带 DB、API 通信。
- IaC 的价值:版本化、可重复、减少人为错误、DevSecOps 基础。
- 不可变架构:部署后不改、坏即替换(phoenix)。
- VDI 持久 vs 非持久;SDx 包含哪些(SDN/VDI/VMI/SDV/SDDC 等)。
- SOA 新应用上线前须审查(未知安全)。
⑥ 记忆口诀
- 微服务小独立,API 来通信;IaC 管设施,不可变坏即换。
- SOA 拼服务,上线先审查;SDx 软替硬,VDI/VMI/SDV 全包。
⑦ 自测
- 微服务的核心特征是什么?API 在其中的角色?
- IaC(基础设施即代码)的主要价值有哪些?
- 不可变架构(immutable architecture)的含义与好处?
- VDI 的持久桌面与非持久桌面区别?