Blog dedicate to PelicanBlog dedicate to Pelican
首页
home
云原生架构
首页
home
云原生架构
  • home

    • haskell
    • lambda-calculus-reduction
    • Elasticsearch
    • 云原生架构
  • 计划

云原生架构介绍

云原生(Cloud Native)是一种构建和运行应用程序的方法,充分利用云计算的优势:弹性伸缩、按需付费、高可用和快速交付。

什么是云原生

云原生应用从设计之初就为云环境而生,具备以下特征:

  • 微服务化:将单体应用拆分为一组松耦合的小服务,每个服务独立开发、部署和扩展。
  • 容器化:应用及其依赖打包进容器镜像,做到"一次构建,到处运行"。
  • 动态编排:使用 Kubernetes 等编排系统管理容器的调度、扩缩容和自愈。
  • 声明式交付:基础设施和应用配置代码化(IaC),通过 GitOps 流程实现自动化发布。

核心技术栈

领域常见技术
容器运行时containerd、CRI-O
容器编排Kubernetes(K8s)
镜像构建Docker、BuildKit、Kaniko
服务网格Istio、Linkerd
CI/CDGitLab CI、GitHub Actions、Argo CD、Tekton
可观测性Prometheus、Grafana、OpenTelemetry、ELK
包管理Helm、Kustomize

架构示意图

用户
 │
 ▼
网关 / Ingress(路由、限流、TLS 终止)
 │
 ▼
服务网格(服务发现、灰度发布、mTLS)
 │
 ├── 微服务 A ──┐
 ├── 微服务 B ──┼── 数据层(MySQL / Redis / 对象存储)
 └── 微服务 C ──┘
         │
         ▼
   消息队列(Kafka / RocketMQ)

设计原则

  1. 不可变基础设施:服务器一旦创建就不再修改,升级通过替换新实例完成,避免配置漂移。
  2. 宠物 vs 牛群:实例是可丢弃的(牛群),故障时直接重建而不是修复,应用本身必须无状态或外部化状态。
  3. 面向失败设计:超时、重试、熔断、降级是标配;任何依赖都可能不可用。
  4. 可观测性:通过日志(Logging)、指标(Metrics)、链路追踪(Tracing)三大支柱定位问题,而非登录机器排查。
  5. DevOps 与自动化:开发与运维协同,构建、测试、部署全流程自动化。

一个典型的部署流程

  1. 开发者提交代码到 Git 仓库。
  2. CI 流水线自动构建容器镜像并推送到镜像仓库。
  3. Argo CD 检测到镜像或配置变更,通过 Helm/Kustomize 渲染 K8s 清单。
  4. 滚动更新或金丝雀发布到集群,Prometheus 监控指标。
  5. 指标异常时自动回滚,正常则完成发布。

何时采用云原生

适合:需要快速迭代、流量波动大(如电商大促)、多团队协作的中大型项目。

谨慎:流量稳定的小型应用,引入全套组件会带来不必要的运维复杂度——可以先从容器化 + 简单部署开始。

延伸阅读

  • CNCF 官网(云原生计算基金会)
  • Kubernetes 官方文档
  • The Twelve-Factor App
Prev
Elasticsearch