笔记转载自“H3C ICT知识百科”什么是云原生云原生Cloud Native是一种软件开发和交付的方法论旨在充分利用云的优势的同时提升应用程序在云环境中的可靠性、弹性和可伸缩性。它解决了传统应用开发和部署过程中灵活性、可移植性和效率等方面的问题实现了快速响应业务需求、提高应用质量和性能的目标。云原生定义的发展史云原生的概念最早起源于2010年是Paul Fremantle在一篇博客中提出来的目的是构建一种符合云计算特征的标准。之后在2015年Pivotal公司的Matt Stine写了一本叫《迁移到云原生应用架构》的小册子在书中探讨了云原生应用架构的几个主要特征包括符合12因素应用、面向微服务架构、自服务敏捷架构、基于API的协作、抗脆弱性。在2016年Pivotal又将12要素应用进行扩展加入了API优先、遥测、认证和授权形成了Pivotal 15要素。而现在Pivotal对云原生重新进行了定义归纳为四个核心要点包括DevOps、持续交付Continuous Delivery、微服务Microservices、容器Containers。除了Pivotal之外其它厂商也在积极推广云原生比如2015年谷歌牵头成立了CNCFCloud Native Computing Foundation云原生计算基金会用来推广云原生技术让这些技术创新为大众所用后来声名大噪的Kubernetes就是CNCF的第一个开源项目现在已经成为了云原生时代的“操作系统”。CNCF在经历了对云原生概念的不断更新定义之后现在对云原生的官方定义如下云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术实现了可复原、可管理且可观察的松散耦合系统。它们与强大的自动化相结合使工程师能够在尽量减少工作量的情况下以可预测的方式频繁地进行具有重大影响力的更改。随着现在各组织和企业对云原生的不断实践云原生的确切定义是什么各企业和组织可能会有不同的理解但简单而言云原生可被简单拆解为云和原生这两部分云是基础资源的提供平台原生是指为云而原生设计即是指设计模式、架构方法、研发体系、组织和文化都要按照云原生进行变革。所以云原生是从开发到交付这一整个流程的重新定义是一种技术体系和方法论这种方法论能使构建的应用充分利用和发挥云计算的潜力在云上以最佳姿态运行。云原生有哪些关键技术云原生技术的发展非常迅速CNCF官网上实时更新云原生技术地图。目前云原生涵盖了包括容器化技术Docker、OCI等、编排技术Kubernetes、Helm等、服务网格技术Istio、Linkerd等、CI/CDTekton、Jenkins等、云原生存储Ceph、Rook等、云原生网络Envoy、Flannel、CoreDNS等、云原生安全Notary、Harbor、Falco等等多种维度非常非常多的技术体系而其中最为核心的要属微服务、容器和编排、DevOps和CI/CD持续集成和持续交付这几项关键技术。详细介绍请参见“H3C ICT知识百科”