原生就是亲生的、土生土长的意思,即应用一诞生就是基于云的,可以直接在云平台上运行或非常轻松的迁移到云平台。
我们可以这么来定义云原生:一套新的技术体系、一种新的工作方法论、云计算发生的必然导向。
云原生应用要运行在云平台,那么就必须要有云的特点,比如弹性伸缩、分布式、快速部署、快速迭代、高效、持续。这可不止是简单的把原先在物理服务器上的应用迁移到虚拟机里,不止是基础设施和运行平台在云上,应用架构、应用开发方式、应用部署方式、应用维护方式全都要做出改变。
云计算时代的到来推动应用“高内聚,低耦合”,高内聚就是熟悉同一块业务的人、提供用一个服务的模块聚合在一起,低耦合就是应用与应用之间没有紧密强依赖关系,而高内聚低耦合的最佳实践便是微服务架构。通过将服务拆分成单独的服务,小型团队可专注于自己的功能开发上线,运维团队也可根据服务的调用情况弹性扩缩容,符合云计算时代的特色,确定是云原生的特性之一了
可见,云原生并不是简单地使用云平台运行现有的应用程序,它是一种能充分利用云计算优势对应用程序进行设计、实现、部署、交付和操作的应用架构方法。
云原生技术一直在不断地变化和发展,关于云原生的定义也在不断地迭代和更新,不同的社区组织或公司对云原生也有自己的理解和定义。云原生应用架构应该具备6个主要特征:模块化、可观测性、可部署性、可测试性、可处理性和可替换性。截至本文结稿,Pivotal公司对云原生的最新定义为4个要点:DevOps、持续交付、微服务、容器。
云原生的DevOps、容器化平台、持续交付、微服务都是云原生不可缺少的一部分,而云原生也必然是云计算发展的必定趋势