一、什么是云原生?
通俗定义:云原生(Cloud Native)是一套基于云计算环境设计和运行应用的方法论,就像"为云而生"的思维方式。
技术定义:根据CNCF官方定义,云原生技术帮助组织在动态环境(如公有云、混合云)中,构建和运行可弹性扩展的应用,包含以下核心要素:
- 容器化(Containerization)
- 服务网格(Service Mesh)
- 微服务(Microservices)
- 不可变基础设施(Immutable Infrastructure)
- 声明式API(Declarative APIs)
二、云原生与传统架构的对比
维度 | 传统架构 | 云原生架构 |
---|---|---|
应用结构 | 单体应用(一个巨无霸) | 微服务(乐高积木式模块) |
部署方式 | 直接部署在物理机/虚拟机 | 容器化打包(Docker镜像) |
扩展性 | 手动垂直扩展(升级服务器) | 自动水平扩展(增加容器实例) |
依赖管理 | 系统库需手动安装 | 所有依赖打包进容器 |
恢复时间 | 小时级 | 秒级(Kubernetes自动重启) |
三、什么是CNCF?
成立背景:2015年由Google/Linux基金会创建,现为云原生领域权威组织
核心项目:托管Kubernetes、Prometheus等关键项目
成熟度分级:
孵化阶段(如OpenTelemetry)
稳定阶段(如etcd)
毕业项目(如Kubernetes、Prometheus)
关键项目:
1)编排层
Kubernetes:容器编排的"操作系统"
-
核心概念:Pod/Deployment/Service
-
示例:
kubectl scale deployment --replicas=5
实现一键扩容
2)监控与日志
Prometheus:时序数据库 + 告警系统
Grafana:可视化仪表盘
- 服务网格
Istio:流量管理/安全/观测
- 典型场景:金丝雀发布(逐步切换流量到新版本)
4)Serverless
Knative:基于Kubernetes的无服务平台
- 自动缩容到0(有请求时再启动)
四、云原生涉及的核心技术
1)容器化
Docker原理:
-
镜像(Image):包含应用+环境的只读模板
-
容器(Container):镜像的运行实例
-
优势:
-
隔离性(cgroups/namespace)
-
便携性(一次构建,随处运行)
2)Kubernetes核心架构
-
API Server:集群操作的入口
-
Scheduler:决定Pod运行在哪个节点
-
Kubelet:节点上的"容器管家"
-
Pod:最部署单元(1个或多个容器)
3)服务风格(Service Mesh)
Sidecar模式:每个微服务旁挂载代理(如Envoy)
核心功能:
-
流量镜像(复制生产流量到测试环境)
-
熔断(当服务故障时快速失败)
五、学习路线图
1)Linux与网络基础
2)容器化技术(Docker)
- 云原生概念
4)Kubernetes基础
5)监控与日志
6)CI/CD (GitLab CI , ArgoCD)
- Kubernetes自动扩缩容、服务网格、安全
8)Terraform(多云资源编排)、Pulumi(代码化部署)
9)云原生数据库 TiDB、CockroachDB
- 参与开源社区