一、云原生入门:什么是云原生、云原生发展历程、云原生技术生态概览
1.1 到底什么是云原生?
先别急着背定义。我刚开始接触这个概念时,也一头雾水。
说白了,云原生不是某个具体技术,而是一套思想和方法论。它告诉你:你的应用就应该长在云上,像鱼长在水里一样自然。
官方定义来自 CNCF(云原生计算基金会):
云原生技术 让组织能够在现代动态环境(如公有云、私有云、混合云)中构建和运行可弹性扩展的应用。典型代表包括容器、服务网格、微服务、不可变基础设施和声明式 API。
我个人习惯把云原生拆成两个词理解:
- 云 —— 基础设施是弹性的、按需的、自动化的
- 原生 —— 应用从设计之初就为云环境量身打造,不是后期硬搬上去的
举个例子。你写了一个 Web 应用,部署在物理服务器上,这叫传统部署。你把它打成 Docker 镜像,扔到 Kubernetes 里跑,能自动扩缩容、自愈、滚动更新——这才叫云原生。
💡 我见过太多团队把传统应用直接塞进容器就号称「云原生」了。嗯,这其实只是「云托管」,离真正的云原生还差得远。
1.2 云原生发展历程:从物理机到 K8s
为什么会有云原生?我们得看看历史。我把它分成四个阶段:
| 阶段 | 时间 | 核心特征 | 典型问题 |
|---|---|---|---|
| 物理机时代 | 2000 年前 | 一台机器跑一个应用 | 资源利用率极低,扩容慢 |
| 虚拟化时代 | 2000~2010 | VMware、Xen 等虚拟化技术 | 虚拟机太重,启动分钟级 |
| 容器化时代 | 2013~2017 | Docker 崛起,镜像标准化 | 容器多了怎么管? |
| 编排时代 | 2017 至今 | Kubernetes 成为事实标准 | 生态复杂,学习曲线陡 |
我记得 2014 年第一次用 Docker 时,觉得这东西太神奇了——秒级启动、环境一致、随便分发。但很快问题就来了:生产环境跑了上百个容器,怎么保证它们不打架?怎么自动重启挂掉的容器?
这时候 Kubernetes 出现了。Google 把内部用了十几年的 Borg 系统开源,K8s 一统天下。你想想看,现在几乎所有的云原生工具,要么跑在 K8s 上,要么为 K8s 服务。
⚠️ 我曾经踩过一个坑:团队为了「云原生」直接上 K8s,结果连基础的网络、存储都没搞明白,折腾了三个月还在排障。建议先理解容器和编排的基本原理,再上手。
1.3 云原生技术生态概览
现在的云原生生态,已经庞大到让人眼花缭乱。我按功能分层给你梳理一下:
1.3.1 基础设施层
- 容器运行时:Docker、containerd、CRI-O
- 编排调度:Kubernetes(核心中的核心)
- 服务网格:Istio、Linkerd——管理服务间通信
1.3.2 应用开发层
- 微服务框架:Spring Cloud、Dubbo、Go-kit
- API 网关:Kong、APISIX、Envoy
- 无服务器:Knative、OpenFaaS——连容器都不用管了
1.3.3 可观测性层
- 监控:Prometheus + Grafana(标配)
- 日志:ELK Stack、Loki
- 链路追踪:Jaeger、Zipkin
1.3.4 CI/CD 与自动化
- 流水线:Jenkins X、GitLab CI、ArgoCD
- 镜像仓库:Harbor、Docker Hub
- 配置管理:Helm、Kustomize
核心观点:别试图一次性学完所有工具。我建议的路径是:Docker → K8s 基础 → Prometheus → Istio。贪多嚼不烂,这是过来人的经验。
1.4 为什么现在必须学云原生?
你可能觉得这是跟风。但数据不会骗人:
- CNCF 2023 年调查显示,96% 的组织正在使用或评估 Kubernetes
- 国内大厂(阿里、腾讯、字节)的线上业务,80% 以上 已容器化
- 云原生工程师的薪资,普遍比传统运维高 30%~50%
说白了,这不是选择题,而是必答题。你想想看,现在新出的中间件(Redis、Kafka、MySQL 等),哪个不提供 Helm Chart 或 Operator?不会云原生,连部署都费劲。
💡 我个人习惯用 kind 或 minikube 在本地搭一套 K8s 环境练手。别一上来就买云服务,本地搞坏了随时重建,成本为零。
1.5 本章小结
这一章我们聊了:
- 云原生的本质是思想+方法论,不是某个具体工具
- 发展经历了物理机→虚拟机→容器→K8s 四个阶段
- 技术生态分四层:基础设施、应用开发、可观测性、CI/CD
- 现在学云原生,是职业发展的刚需
下一章,我们直接动手——从零搭建你的第一个 Docker 容器。别怕,跟着我来,保证你半小时内跑起来。
公众号:蓝海资料掘金营,微信 deep3321