云原生的定义

云原生是一条最佳路径或最佳实践。

云原生为用户指定了一条低负担、敏捷的、能够以可扩展、可复制的方式最大化利用云的能力、发挥云的价值的最佳路径。

云原生是一套指导进行软件架构设计的思想。

云原生技术的核心是容器技术,容器技术使得应用具有了一种“自包含”的定义方式,这样的应用才能以敏捷的、可扩展可复制的方式发布在云上,发挥出云的能力。

云原生的技术范畴
  • 云应用定义与开发流程
    包括应用定义与镜像制作、配置 CI/CD、消息和 Streaming 以及数据库等
  • 云应用的编排与管理流程
    包括了应用编排与调度、服务发现治理、远程调用、API 网关以及 Service Mesh
  • 监控与可观测性
    强调的是云上应用如何进行监控、日志收集、Tracing 以及在云上如何实现破坏性测试,也就是混沌工程的概念
  • 云原生的底层技术
    如容器运行时、云原生存储技术、云原生网络技术等
  • 云原生工具集
    流程自动化与配置管理、容器镜像仓库、云原生安全技术以及云端密码管理等
  • Serverless
    Serverless 是一种 PaaS 的特殊形态,它定义了一种更为“极端抽象”的应用编写方式,包含了 FaaS 和 BaaS 这样的概念
云原生思想的两个理论
  • 不可变基础设施
    这一点目前是通过容器镜像来实现的,其含义就是应用的基础设施应该是不可变的,是一个自包含、自描述可以完全在不同环境中迁移的东西
  • 云应用编排理论
    当前的实现方式就是 Google 所提出来的“容器设计模式”
基础设施向云演进的意义
  • 基础设施的一致性和可靠性
    同样一个镜像,无论是在美国打开,在中国打开,还是在印度打开都是一样的。并且其中的 OS 环境对于应用而言都是一致的。而对于应用而言,它就不需要关心容器跑在哪里,这就是基础设施一致性非常重要的一个特征。
  • 镜像本身就是自包含的
    包含了应用运行所需要的所有依赖,因此也可以漂移到云上的任何一个位置
云原生关键技术点
  • 如何构建自包含、可定制的应用镜像
  • 能不能实现应用快速部署与隔离能力
  • 应用基础设施创建和销毁的自动化管理
  • 可复制的管控系统和支撑组件