MD 更新:未知

概念

云计算是集合了大量技术设备和资源,对用户屏蔽底层差异的分布式处理架构,其用户与提供实际服务的计算资源是相分离的

优点

  • 超大规模
  • 虚拟化
  • 高可靠性
  • 高可伸缩性
  • 按需服务
  • 成本低

分类

类型说明
SaaS 软件即服务基于多租户技术实现,直接提供应用环境
PaaS 拼台即服务虚拟中间件服务器、运行环境和操作系统
IaaS 基础设施即服务包括服务器,存储和网络等服务

云计算架构

云原生

基于分布部署和统一运管的分布式云,以容器、微服务 DevOps 等技术为基础建立的一套云技术产品体系

graph TB

subgraph 用户访问层
A1[服务目录]
A2[订阅管理]
A3[服务访问]
end

subgraph 应用层
B1[企业应用]
B2[个人应用]
end

subgraph 平台层
C1[中间件服务]
C2[数据库服务]
end

subgraph 资源层
D1[计算]
D2[网络]
D3[存储]
end

subgraph 管理层
E1[安全]
E2[监控]
E3[部署]
E4[服务治理]
end

A3 --> B1
B1 --> C1
C1 --> D1

E1 --- B1
E2 --- C1
E3 --- D1

云原生架构分层

一句话理解

通过资源层 + 平台层 + 应用层,实现服务化与弹性扩展,同时配套访问与管理能力

架构分层

横向

  • 资源层(基础设施 )
  • 平台层(中间件能力)
  • 应用层(业务服务) 纵向
  • 用户访问层
  • 管理层

💻 我的技术栈映射

资源层:

  • 云服务器 / Docker Host

平台层:

  • Kubernetes
  • Redis / Kafka

应用层:

  • Spring Boot / .NET / Node

管理层:

  • Prometheus + Grafana
  • Jenkins / GitHub Actions

云原生架构设计原则

  • 服务化原则:使用微服务
  • 弹性原则:可根据业务变化自动伸缩
  • 可观测原则:通过日志、链路追踪和度量
  • 韧性原则:面对异常的抵御能力
  • 所有过程自动化原则:自动化交付工具
  • 零信任原则:默认不信任网络内部和外部的任何人
  • 架构持续演进原则:业务高速迭代情况下的架构与业务平衡

云原生架构模式

  1. 服务化架构:微服务
  2. Mesh 化架构:把中间件框架(RPC、缓存、异步消息)从业务进程中分离,由 Mesh 进程完成
  3. Serverless 模式:非常适合于事件驱动的数据计算任务
  4. 存储技术分离模式:各类暂态数据(如 Session)用云服务保存
  5. 分布式事务模式:解决微服务模式中多数据源事务问题
  6. 可观测架构:包括 Logging、Tracing、Metrics 三个方面
  7. 事件驱动架构:本质上是一种应用/组件间的集成架构

Mesh模式和Serverless模式对比

维度MeshServerless
核心解决问题微服务之间可靠高性能可观测的通信开发者根本不想管服务器扩容运维
形态一堆容器(K8s Pod) + 一个隐形的超级测车完全看不到服务器,只有函数
部署单元每个微服务一个 Pod + 一个 Envoy 测车一个业务功能 = 一个函数
管理扩容缩容自己写 HPA + 配置 lstio 流量云厂商自动、毫秒级、精确到每次调用
重试/熔断/限流lstio 统一管理,全局策略自己写在函数里/API 网关 + 函数组合
冷启动没有
适合任务时长常驻服务、长链接短服务
运维难度较高较低
典型应用场学员服务、订单服务、支付服务作业自动批改等短服务

容器技术

Docker 容器基于操作系统虚拟化技术,共享操作系统内核、轻量、没有资源损耗、秒级启动,极大提升了系统的应用部署密度和弹性 Kubernetes 提供了分布式应用管理的核心能力

  • 资源调度
  • 应用部署与管理
  • 自动修复
  • 服务发现和负载均衡
  • 弹性伸缩
  • 声明式 API
  • 可扩展性架构
  • 可移植性

虚拟机与容器技术对比

虚拟机容器
镜像大小包含 GuestOs,G 量级仅包含运行的 Bin/Lib,M 量级
资源CPU 与内存按核,按 G 分配CPU 与内存按单核、低于 G 量级
启动时间分钟级毫秒级
可持续性跨物理机迁移跨操作系统平台迁移
弹性伸缩VM 伸缩,CPU/内存手动实例自动
隔离策略操作系统进程