什么是云原生?

什么是云原生?云原生(cloud Native)是个组合词,cloud + native; Cloud 表示 应用程序位于云中,而不是传统的数据中心。Native 表示 应用程序从设计之初,就考虑到云的环境。

核心说明:云原生四大要素(容器化docker/kubernetes(容器管理和负载均衡)、微服务、DevOps、CI/CD(Jenkins))。融合DDD四层架构设计,基于SpringCloud微服务生态和K8s容器编排,是企业级后端最常用的实战架构,兼顾稳定性、可扩展性。

一、整体架构图(核心可视化)

二、架构分层拆解(对应云原生+DDD核心)

1. 顶层:CI/CD 流水线(持续交付,云原生核心要素)

对应云原生"持续交付"要素,实现代码到部署的全自动化,解决微服务高频发布的痛点,适配云原生快速迭代需求。

  • Git代码仓库:存储微服务源代码(按DDD分层结构组织代码),管理分支(开发分支、测试分支、主分支)。
  • Jenkins/GitLab CI:自动化构建工具,触发规则(代码提交、合并请求),执行"拉取代码→编译→单元测试→打包Docker镜像"流程。
  • Docker:将每个微服务(含依赖、配置、运行环境)打包成标准镜像,保证开发、测试、生产环境一致,对应"容器化"要素。
  • Harbor:私有镜像仓库,存储Docker镜像,供K8s集群拉取镜像部署,保障镜像安全和可追溯。

2. 中层:K8s容器编排(容器化核心,云原生运行底座)

对应云原生"容器化"要素,是微服务大规模部署、弹性扩缩容的核心支撑,解决容器的管理、调度、容错问题。

  • K8s Master节点(控制平面):
  • API Server:K8s入口,接收CI/CD流水线的部署请求,管理所有资源(Pod、Service、Deployment)。
  • Controller Manager:维护集群状态,比如微服务Pod故障时自动重启、按需求扩缩容。
  • Scheduler:调度Pod到合适的Node节点(根据节点资源、负载分配)。
  • K8s Node节点(运行平面):
  • Kubelet:管理本节点的Pod,确保Pod正常运行,与Master节点通信。
  • Docker容器引擎:运行微服务Pod(每个微服务对应一个/多个Pod,Pod是K8s最小运行单元)。
  • 微服务Pod集群:每个微服务独立部署为Pod,通过K8s Service暴露访问地址,实现服务间通信。

3. 下层:微服务集群(DDD分层+SpringCloud,云原生架构模型)

对应云原生"微服务"要素,微服务边界基于DDD限界上下文划分,内部采用DDD四层架构,外层用SpringCloud组件实现微服务治理,兼顾业务稳定性和架构扩展性。

(1)网关层:SpringCloud Gateway

微服务入口,负责路由转发、统一认证、限流、熔断,隔离外部请求和内部微服务,避免直接暴露业务服务。

(2)业务微服务集群(核心)

每个微服务对应一个DDD限界上下文(如订单微服务对应订单子域),内部严格遵循DDD四层架构,以订单微服务为例:

  • 接口层(Controller/DTO):接收网关请求,做入参校验、DTO与领域对象转换,不写业务逻辑(对应DDD接口层)。
  • 应用层(Application Service):编排业务流程(如下单流程:校验商品→创建订单→扣库存→发送事件),不做业务决策(对应DDD应用层)。
  • 领域层(Entity/聚合根/领域服务):核心中的核心,包含订单聚合根、实体、值对象,所有业务规则(如价格计算、状态流转)都在这里,不依赖任何框架(对应DDD领域层)。
  • 基础设施层(Repository实现/Mapper):实现领域层的Repository接口,负责数据库操作(MyBatis)、缓存操作(Redis)、消息发送(RocketMQ),为上层提供技术支撑(对应DDD基础设施层)。

(3)SpringCloud核心组件(微服务治理)

  • Nacos:服务注册发现(微服务启动后注册到Nacos,服务间通过Nacos获取地址)+ 配置中心(统一管理所有微服务配置,动态刷新)。
  • Sentinel:服务熔断、降级、限流,防止单个微服务故障扩散,保障整个系统稳定性。

4. 支撑组件(DevOps+中间件,保障架构稳定运行)

对应云原生"DevOps"要素,实现微服务的可观测、可运维,解决分布式系统的监控、日志、链路追踪问题。

  • 中间件:
  • RocketMQ:消息队列,实现微服务间解耦(如下单后发送消息通知库存服务扣减,无需同步调用),削峰填谷。
  • Redis Cluster:分布式缓存,缓存热点数据(如商品信息、用户信息),提升系统性能,减轻数据库压力。
  • MySQL主从/分库分表:数据库,按微服务独立部署(每个微服务有自己的数据库,实现数据隔离),主从架构保障数据高可用,分库分表应对大数据量。
  • DevOps监控运维:
  • Prometheus+Grafana:监控系统,采集K8s集群、微服务、中间件的运行指标(CPU、内存、接口响应时间),可视化展示,设置告警。
  • ELK:日志收集分析,收集所有微服务的日志,统一检索、分析,快速定位问题。
  • SkyWalking:链路追踪,追踪微服务间的调用链路(如下单请求从网关→订单服务→商品服务→库存服务),定位慢查询、调用异常。
相关推荐
SXJR3 小时前
k8s中的Pod
云原生·容器·kubernetes
w6100104664 小时前
CKA-2026-Ingress
云原生·容器·kubernetes·cka
AI攻城狮4 小时前
Anthropic 开源了 Claude 的 Agent Skills 仓库:文档技能的底层实现全公开了
人工智能·云原生·aigc
星河耀银海5 小时前
云原生核心特性:容器化、微服务与DevOps的通俗解读
微服务·云原生·devops
老卢聊运维6 小时前
深入理解Pod生命周期:从创建到终止的完整链路
运维·云原生·k8s
cyber_两只龙宝6 小时前
【Nginx】Nginx配置负载均衡详解
linux·运维·nginx·云原生·负载均衡
A.说学逗唱的Coke7 小时前
【K8S专题】深入浅出 Kubernetes 探针:存活、就绪与启动探针的原理与实战指南
云原生·容器·kubernetes
AI攻城狮1 天前
用 Obsidian CLI + LLM 构建本地 RAG:让你的笔记真正「活」起来
人工智能·云原生·aigc
科技小花1 天前
AI重塑数据治理:2026年核心方案评估与场景适配
大数据·人工智能·云原生·ai原生