什么是云原生?聊聊云原生的今生

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/alitech2017/article/details/104606956

  1. 云原生(Cloud Native)的由来
  2. CNCF基金会成立及云原生概念的演化
  3. 对云原生的解构
  4. 参考文献

收起

简介: 什么是云原生,云原生是在一个怎么样的背景下被提出来的,云原生和传统所说的云计算概念有什么不同?聊聊云原生的今生之事。

云原生这词在这几年突然火了,在很多人还不了解她是什么的时候频频被她刷屏。所以我经常说技术人是一个容易焦虑的群体,每天被一堆新的概念拉着走,扯着学。新语言多,新概念多,新技术多,没什么安全感。对于新概念,我喜欢从三个层次去理解,一个是这技术名词被提出的历史背景,一个是技术名词概念的演化,一个是结合比较主流的话语体系的解读。关于云原生,我也会从这三个方面来解读。

云原生(Cloud Native)的由来

云原生的概念最早开始于2010年,在当时 Paul Fremantle 的一篇博客中被提及,他主要将其描述为一种和云一样的系统行为的应用的编写,比如分布式的、松散的、自服务的、持续部署与测试的。当时提出云原生是为了能构建一种符合云计算特性的标准来指导云计算应用的编写。

后来到2013年 Matt Stine在推特上迅速推广云原生概念,并在2015年《迁移到云原生架构》一书中定义了符合云原生架构的特征:12因素、微服务、自服务、基于API协作、扛脆弱性。而由于这本书的推广畅销,这也成了很多人对云原生的早期印象,同时这时云原生也被12要素变成了一个抽象的概念。

CNCF基金会成立及云原生概念的演化

2015年由Linux基金会发起了一个 The Cloud Native Computing Foundation(CNCF) 基金组织,CNCF基金会的成立标志着云原生正式进入高速发展轨道,google、Cisco、Docker各大厂纷纷加入,并逐步构建出围绕 Cloud Native 的具体工具,而云原生这个的概念也逐渐变得更具体化。因此,CNCF基金最初对云原生定义是也是深窄的,当时把云原生定位为容器化封装+自动化管理+面向微服务:

The CNCF defines “cloud-native” a little more narrowly, to mean using open source software stack to be containerized, where each part of the app is packaged in its own container, dynamically orchestrated so each part is actively scheduled and managed to optimize resource utilization, and microservices-oriented to increase the overall agility and maintainability of applications.

这主要因为CNCF基金会在当时的核心拳头软件就是 k8s,因此在概念定义上主要是围绕着容器编排建立起来的生态。其实这也是为什么我们可以看到 CNCF 定义云原生的时候有时感觉就是再说容器生态。

到了2017年, 云原生应用的提出者之一的Pivotal在其官网上将云原生的定义概况为DevOps、持续交付、微服务、容器这四大特征,这也成了很多人对 Cloud Native的基础印象。

而到了2018年,随着Service Mesh的加入,CNCF对云原生的定义发生了改变,而这也逐渐作为被大家认可的官方定义:

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.

总结一下就是:

  • (1)基于容器、服务网格、微服务、不可变基础设施和声明式API构建的可弹性扩展的应用;
  • (2)基于自动化技术构建具备高容错性、易管理和便于观察的松耦合系统;
  • (3)构建一个统一的开源云技术生态,能和云厂商提供的服务解耦,

可以看出这一阶段CNCF对云原生的定义加上服务网格声明式API,同时为这一概念阐述更深一层的意义,也就是建立一个统一中立的开源云生态(至于是否中立嘛这里就不谈了:)。这对云原生的生态定位会是很重要的一点,也算CNCF最初成立的宗旨之一吧,打破云巨头的垄断。

对云原生的解构

对一个词的解读,除了看其历史发展背景,还有一种偏向于语言学的方法解读,也就是我们常说的从“字面意思”来理解为何这些理念的集合体。

Cloud Native,从词面上拆解其实就是 Cloud 和 Native,也就是云计算土著的意思——云计算上的原生居民,即天生具备云计算的亲和力。

那怎么理解“云的原生居民”呢?

首先从云的角度来理解,云本质可以看作是一种提供稳定计算存储资源的对象,为了实现这点,像虚拟化、弹性扩展、高可用、高容错性、自恢复这些都是云的基本属性,云原生作为一种云计算,这是所具备的第一层含义。

第二层要从 Native 来看,云原生和传统的在云上跑的应用是不同。比如一些基于公有云搭建的应用,是基于传统的SOA架构来搭建的,然后再移植到云上去运行,那么他和云得整合是非常低得。
为什么低呢?云作为一种分布式架构,其“土著居民”也应该是基于分布式架构设计出来得,而微服务或者Serverless这种将服务或函数拆分成一个个模块的松耦合系统天然就具备分布式设计得属性。这是Native的第一种表现。

其次云作为一种PaaS服务,这位“土著居民”从出生(设计)到成长(开发),再到生活(部署)都应该是基于云的理念来实现的,那么就需要一套自动化的开发流程CI/CD来实现。这是Native的第二种表现。

而最后“土著居民”的特点希望做到能在所有的云端都是适应的,不管是各厂商的公有云 像AWS、Azure、阿里云,还是各企业自己搭建的私有云,云原生的应用都能做到无缝的运行和连接。

参考文献

  • Paul Fremantle's Blog
  • Cloud-Native: What It Is and How It All Started
  • The Twelve Factor App
  • shikanon's Blog
  • Migrating to Cloud Native Application Architectures
  • 迁移到云原生应用架构
  • 微软技术文档: 云原生的定义
  • CNCF官网

什么是云原生?聊聊云原生的今生(转)相关推荐

  1. 什么是云原生?聊聊云原生的今生

    简介: 什么是云原生,云原生是在一个怎么样的背景下被提出来的,云原生和传统所说的云计算概念有什么不同?聊聊云原生的今生之事. 云原生这词在这几年突然火了,在很多人还不了解她是什么的时候频频被她刷屏.所 ...

  2. 聊聊云原生时代湖仓一体建设

    导读:2022年7月22-23日,第8届GIAC全球互联网架构大会将于深圳举行.GIAC是面向架构师.技术负责人及高端技术从业人员的年度技术架构大会,是中国地区规模最大的技术会议之一.今年GIAC邀请 ...

  3. 触手可得的云原生 | 阿里云中间件发布多项新功能

    2019独角兽企业重金招聘Python工程师标准>>> 3月21日,在阿里云峰会·北京企业级互联网架构专场的现场,阿里云中间件 PaaS 平台的多项新功能重磅发布 ,覆盖应用服务管理 ...

  4. 云原生思想 — 云原生应用

    目录 文章目录 目录 云原生应用的特征 云原生应用的架构 如何构建云原生应用 云原生应用的特征 普遍可访问(Universal Availability):服务可在任何地方从多前端访问. 高可用性(H ...

  5. 手机搭载云服务器_华为云发布“鲲鹏云手机”:原生安卓系统、鲲鹏920加持

    据悉,世界上第一款云手机NextbitRobin诞生于5年前,这款名不见经传的云手机,还在风起云涌的智能手机市场中一路存活了下来.截止现今,不少人对云手机的概念都所了解,而目前云手机也不仅仅只限于提供 ...

  6. 如何选择最优路径完成云原生上云?听这场阿里云特别分享【云原生技术与最佳实践】

    云原生是一个较为广义的概念.对于云原生,不同的企业有着不同的理解. 如何判断项目是否已经到了云原生上云的阶段:云原生上云的方式该怎样抉择:想要把云原生技术发挥到极致又需要考虑哪些因素? 面对诸如此类问 ...

  7. 5 项大奖,70 项满分!阿里云全方位引领云原生技术升级

    跟大家分享几个好消息: 在今天"2020 可信云线上峰会"上,中国信通院公布了多项可信云认证的评估结果.阿里云原生在容器平台安全能力.函数及服务.分布式消息队列服务.可信云服务最佳 ...

  8. 业界首发|阿里云重磅发布云原生架构白皮书

    2020 年 7 月 21 日,由阿里云 20+ 位云原生技术专家共同编撰的<云原生架构白皮书>正式对外发布.作为业界首本全方位构建云原生架构规划与实践全景图的白皮书,本书在详细阐述云原生 ...

  9. 投入 20 亿,赋能 1 万家,阿里云正式启动云原生合作伙伴计划

    **导读:**在 2020 阿里云合作伙伴峰会上,阿里巴巴合伙人.阿里云智能基础产品事业部高级研究员蒋江伟发表了<深耕"被集成",共建新生态>主题演讲,他在演讲中提到, ...

最新文章

  1. 构建伪Update服务器工具isr-evilgrade
  2. linux下串口通信程序,关于Linux下串口通信的一点心得
  3. 进程线程004 Windows线程切换的三种方式
  4. MongoDB 基础教程CURD帮助类
  5. eclipse中经常用到的快捷键
  6. SAP ABAP和C4C,Hybris Commerce里一些性能分析工具
  7. pytorch入门学习(三) 神经网络
  8. 锁屏面试题百日百刷-VUE篇(一)
  9. 1章 SpringBoot介绍
  10. 【权限设计】如何以“权限”为单位的进行权限设计(二)
  11. 小米路由器 charles无法抓包
  12. MTK 手机接耳机状态下,来电话耳机响扬声器不响
  13. SPI驱动之南瑞NRSEC3000加密芯片驱动开发总结
  14. 我用Python爬取了李沧最近一年多的二手房成交数据得出以下结论
  15. Easy Data Transform for mac (Excel和CSV编程文件转换工具) v1.11.1激活版
  16. 测试智商多高的软件,测测你的智商多高 国际标准智商测试30题
  17. LaTeX 编辑器对比
  18. VS2017中自用部分插件的设置的翻译或功能介绍——Word Highlight With Margin
  19. Java语法(全面解析)
  20. 出现“no CUDA-capable device is detected”报错解决

热门文章

  1. 5v继电器模块实物接线_继电器驱动无刷电机正反转(单向电调)
  2. java枚举变量带括号_java枚举类型 - 墨梅的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. 河池学院计算机宿舍,河池学院宿舍条件,宿舍环境图片(10篇)
  4. 1005. K 次取反后最大化的数组和(javascript)
  5. 天天酷跑php源码_使用Java实现天天酷跑(附源码)
  6. python 解除excel的密码_我帮公司财务写了个“群发工资条”的Python脚本!
  7. 两个vlan如何互通_网络交换机VLAN的常识与划分方法,你知道吗?
  8. python元类是什么_谈谈Python中元类Metaclass(一):什么是元类
  9. python案例数据集_Python数据集切分实例
  10. export配置linux环境变量