云原生
[infoQ:云原生的技术探索和落地实践]
云原生本质上是一套指导软件架构设计的思想,建立在“未来的软件一定生长于云”的核心假设之上。 依托该思想而设计的软件:首先,软件本身”生于云、长于云“; 其次,这样的软件能够天然集成“云”环境, 进而释放“云”的最大价值。
具体来说,参考云原生计算基金会 (CNCF) 的定义, 云原生包括容器化封装、自动化管理、面向微服务、服务网格、 声明式API。 符 合云原生架构的应用程序应该是: 采用开源堆栈 ( Kubernetes+Docker) 进行容器化, 基于微服 务架构提高灵活性和可维护性, 借助敏捷方法、 DevOps 支持持续迭代和运维自动化, 利用云平台 设施实现弹性伸缩、动态调度、优化资源利用率。
从技术发展的价值链演进来看, 云原生是云计算应用价值的延伸, 解决更贴近企业业务、架构、组织层面的关键问题。
Docker 与虚拟机的差异体现在进程隔离方式的不同, Docker 通过为应用附加额外设置的 Namespace 参数实现进程的隔离, 并没有一个真正 的”Docker 容器“运行在宿主机中, 这样的“障眼法” 操作让进程仿佛运行在一个与世隔绝的“容器”里面, 使得容器减少了额外的资源消耗和占用, 在敏捷和 高性能方面具有很大优势。
Kubernetes 项目的主要设计思想在于, 从更宏观的角度, 以统一的方式来定义任务之间的各种关系, 并且为将来支持更多种类的关系留有余地。
在整个云原生生态中, Kubernetes 项目起到了承上 启下的作用。 对上, Kubernetes 暴露出基础设施能力的格式化数据抽象, 如 Service、 Ingress、 Pod、 Deployment, 都 是 Kubernetes 本 身 原 生 API 为 用户暴露出来的能力。 而对下, Kubernetes 提供 了基础设施能力接入的标准接口, 如 CNI、 CSI、 DevicePlugin、 CRD, 让云能够作为能力提供商, 通过标准化的方式把能力接入到 Kubernetes 的体 系中。
网友评论