云原生和传统云计算到底存在哪些差异?
发布时间:2022-08-04 16:22:30 所属栏目:云计算 来源:互联网
导读:云原生在近两年突然火了,在很多人还不了解它是什么的时候就频繁被刷屏。每天被一堆新的概念拉着走,扯着学。对于新概念,可以从三个层次去理解,一个是这技术名词被提出的完整历史背景,一个是技术概念名词的演化过程,一个是结合当前比较主流的话语体系、
云原生在近两年突然火了,在很多人还不了解它是什么的时候就频繁被刷屏。每天被一堆新的概念拉着走,扯着学。对于新概念,可以从三个层次去理解,一个是这技术名词被提出的完整历史背景,一个是技术概念名词的演化过程,一个是结合当前比较主流的话语体系、现实案例来的解读。 云原生(Cloud Native)的由来 云原生的概念最早开始于2010年,在当时 Paul Fremantle 的一篇博客中被提及,他主要将其描述为一种和云一样的系统行为的应用的编写,比如分布式的、松散的、自服务的、持续部署与测试的。当时提出云原生是为了能构建一种符合云计算特性的标准来指导云计算应用的编写。 后来到2013年 Matt Stine在推特上迅速推广云原生概念,并在2015年《迁移到云原生架构》一书中定义了符合云原生架构的特征:12因素、微服务、自服务、基于API协作、扛脆弱性。而由于这本书的推广畅销,这也成了很多人对云原生的早期印象,同时这时云原生也被12要素变成了一个抽象的概念。 这主要因为CNCF基金会在当时的核心拳头软件就是 k8s,因此在概念定义上主要是围绕着容器编排建立起来的生态。其实这也是为什么我们可以看到 CNCF 定义云原生的时候有时感觉就是再说容器生态。 到了2017年, 云原生应用的提出者之一的Pivotal在其官网上将云原生的定义概况为DevOps、持续交付、微服务、容器这四大特征,这也成了很多人对 Cloud Native的基础印象。 而到了2018年,随着Service Mesh的加入,CNCF对云原生的定义发生了改变,而这也逐渐作为被大家认可的官方定义: 总结一下就是: 基于容器、服务网格、微服务、不可变基础设施和声明式API构建的可弹性扩展的应用; 基于自动化技术构建具备高容错性、易管理和便于观察的松耦合系统; 构建一个统一的开源云技术生态,能和云厂商提供的服务解耦, 可以看出这一阶段CNCF对云原生的定义加上服务网格和声明式API,同时为这一概念阐述更深一层的意义,也就是建立一个统一中立的开源云生态(至于是否中立嘛这里就不谈了:)。这对云原生的生态定位会是很重要的一点,也算CNCF最初成立的宗旨之一吧,打破云巨头的垄断。 那怎么理解“云的原生居民”呢? 首先从云的角度来理解,云本质可以看作是一种提供稳定计算存储资源的对象,为了实现这点,像虚拟化、弹性扩展、高可用、高容错性、自恢复这些都是云的最基本的属性,云原生作为一种云计算,这是所具备的第一层含义。 第二层要从 Native 来看,云原生和传统的在云上跑的应用是不同。比如一些基于公有云搭建的应用,是基于传统的SOA架构「(Service-Oriented Architecture)面向服务的架构」来设计并搭建实现的,然后再移植到云服务器上去运行,那么它和云得整合是非常低得,目前绝大多数的saas服务都是这样的,例如用友、金蝶等。 其次云作为一种PaaS服务,这位“土著居民”从出生(设计)到成长(开发),再到生活(部署)都应该是基于云的理念来实现的,那么就需要一套自动化的开发流程CI/CD来实现。这是Native的第二种表现。 而最后“Native”的特点希望做到能在所有的云端都是自适应的,不管是各厂商的公有云像亚马逊的AWS、微软的Azure、国内的阿里云,还是各企业自己搭建的私有云,云原生的应用都能做到无缝的运行和连接。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |