云原生(Cloud Native)

May 2, 2019 00:30 · 988 words · 2 minute read Cloud Native Docker Kubernetes

云原生技术发展史

云原生技术生态现状

[云原生全景图](https://landscape.cncf.io/)

云原生基金会

CNCF 是目前云计算领域最成功的开源基金会之一。是 Kubernetes、containerd、etcd、Envoy 等知名开源项目的托管基金会。

云原生技术社区

CNCF 目前托管的20+正式项目共同构成了现代云计算生态的基石。其中 Kubernetes 是全世界第四活跃的开源项目。

云原生技术产业

全球各大公有云厂商和技术创业公司持续投入,总体市场于2021年逼近1000亿美元。

我们正处于时代的关键节点

2013年,Docker 项目发布

2014年,Kubernetes 项目发布

Google Borg/Omega 系统思想借助开源社区“重生”。

2015~2016年,容器编排“三国争霸”

  • Docker Swarm
  • Mesos
  • Kubernetes

2017年,Kubernetes 项目事实标准确立

Docker 公司宣布在核心产品内置 Kubernetes 服务,Swarm 项目逐渐停止维护。

2018年,云原生技术理念逐步萌芽

Kubernetes 和容器成为所有云厂商的既定标准,以“云”为核心的软件研发思想逐步形成。

云原生的定义

云原生是一条最佳路径

  1. 低心智负担的、
  2. 敏捷的、
  3. 以可扩展、可复制的方式,

最大化利用“云”的能力、发挥“云”的价值的最佳路径

云原生的技术范畴

云应用定义与开发流程

  1. 应用定义与镜像制作
  2. CI/CD 流程
  3. 消息和 Streaming
  4. 数据库

应用的编排与管理

  1. 应用编排与调度
  2. 服务发现与治理
  3. 远程调用
  4. API 网关
  5. 服务网格 Service Mesh

监控和可观测性

  1. 监控
  2. 日志收集
  3. 回溯
  4. 混沌工程(破坏性测试)

云原生底层技术

  1. 容器运行时
  2. 云原生存储技术
  3. 云原生网络技术

云原生工具集

  1. 流程自动化与配置管理
  2. 容器镜像仓库 Registry
  3. 云原生安全技术
  4. 密码管理

Serverless

  1. FaaS
  2. BaaS
  3. Serverless 计费

云原生思想的两个理论基础

不可变基础设施

目前实现:容器镜像

云应用编排理论

目前实现:容器设计模式

基础设施向云演进的过程

传统的应用设施基础

发布或更新应用:ssh 连接服务器,手动升级/降级软件包,逐个服务器调整配置文件,更新代码。

应用看到的基础设施本身不断地被调整。

对“云”友好的应用基础设施

不可变。

部署完成后基础设施不会被修改。如果要更新应用,替换容器。

基础设施向云演进的意义

基础设施的一致性和可靠性

容器镜像 自包含运行环境 可漂移

简单可预测的部署与运维

自描述,自运维 流程自动化 容易水平扩展 可快速复制的管控系统与支撑组件(也是容器化的)

云原生关键技术点

  • 如何构建自包含、可定制的应用镜像
  • 实现应用快速部署与隔离
  • 应用基础设施创建和销毁的自动化管理
  • 能不能提供一套可复制的管控系统与支撑组件