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 全包。

⑦ 自测

  1. 微服务的核心特征是什么?API 在其中的角色?
  2. IaC(基础设施即代码)的主要价值有哪些?
  3. 不可变架构(immutable architecture)的含义与好处?
  4. VDI 的持久桌面与非持久桌面区别?

This site uses Just the Docs, a documentation theme for Jekyll.