热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

云原生云原生的前世今生(一)

 读完本文需要5分钟。前言博主20年4月转岗到阿里云,从事工业智能制造方向的后端研发,由于工作中需要解决不同客户现场的异构环境和多云环境(公有云、私有云、混合云)下的部署问题,所以
 

读完本文需要 5 分钟。

前言

博主20年4月转岗到阿里云,从事工业智能制造方向的后端研发,由于工作中需要解决不同客户现场的异构环境和多云环境(公有云、私有云、混合云)下的部署问题,所以一直在探索和实践云原生相关技术。

云原生一词近几年热度非常高,经常会有读者问我:云原生到底是什么?它跟传统的架构有什么区别?它能在哪些场景应用?它能带来什么价值?我该不该投入精力去学习它?等等...

趁着国庆假期跟大家好好聊聊这个话题,首先分享一篇科普文《云原生的前世今生(一)》,后续还会继续分享自己对云原生的理解,以及在日常工作中关于云原生的实践经验,希望能给大家带来启发~

云原生的起源 Pivotal

Pivotal 公司是敏捷开发领域的领导者(曾经 Google 也是其客户),出生名门(EMC、VMware等投资)。它推出了 Pivotal Cloud Foundry(2011 ~ 2013 PAAS 界网红)和 Spring 生态系列框架,是云原生的先驱者和探路者。

2013年,Pivotal 公司的技术经理 Matt Stine 首次提出云原生(Cloud Native)的概念。

2015年,Matt Stine 在《Migrating to Cloud Native Application Architectures - 迁移到云原生应用架构》小册子中定义了符合云原生架构的几个特征:

  • 符合12模式(Twelve-Factor App):云原生应用架构的模式集合
  • 微服务架构(Microservices):独立部署的服务,一次只做一件事
  • 自助服务敏捷基础设施(Self-Service Agile Infrastructure):用于快速、可重复和一致地提供应用环境和服务的平台
  • 面向API接口的通信(API-based Collaboration):服务之间的交互基于接口,而不是本地方法调用
  • 抗脆弱性(Anti-Fragility):系统能抵御高负载

原文出自:https://www.mattstine.com/publication/migrating-to-cloud-native/

2017年,Matt Stine 在接受 InfoQ 采访时,对云 Cloud Native Architecture 的定义做了小幅调整,具体有以下六个特质:

  • 模块化(Modularity)
  • 可观测性(Observability)
  • 可部署性(Deployability)
  • 可测试性(Testability)
  • 可处理性(Disposability)
  • 可替代性(Replaceability)

原文出自:https://www.infoq.com/articles/cloud-native-panel/

2019年,VMware Tanzu 收购了 Pivotal,其官网给出了云原生最新定义,以及云原生的架构原则:

  • 云原生是一种利用云计算交付模型的优势来构建和运行应用程序的方法论。当企业使用云原生架构开发和运维应用程序时,它们能更快速地响应客户需求将新想法推向市场。
  • 虽然公共云影响了几乎所有行业对于基础设施的思维模式,但类似云的交付并不仅限于公共环境。云原生的开发同时适合公共云和私有云,你只需要关心应用程序是如何创建和部署,无需理会在哪部署。
  • 更重要的是能够为开发人员提供按需访问计算能力以及现代数据和应用程序服务。云原生开发融合了 DevOps、连续交付、微服务和容器。
  • 云原生架构原则:DevOps、Microservices、Containers、Security

原文出自:https://tanzu.vmware.com/cloud-native

云原生的发展 CNCF

CNCF(Cloud Native Computing Foundation,云原生计算基金会),是由开源基础设施界的翘楚 Google、RedHat 等公司共同牵头发起的一个基金会组织,其目的非常明确,就是为了对抗当时大红大紫的 Docker 公司在容器圈一家独大的局面。CNCF 通过 Kubernetes 项目在开源社区编排领域一骑绝尘,之后就扛起了云原生定义和推广的大旗,风光无限。

2015年,Google 主旨在于打击 Docker,因此它对云原生的定义还比较狭隘,包括如下三个方面:

  • 微服务架构
  • 应用容器化
  • 支持容器编排和容器调度

2018年,被称为云原生元年,大量科技公司开始接受云原生的概念,并纷纷加入到云原生的大家庭。此外,主流云计算供应商相继加入 CNCF,持续丰富整个云原生的生态。CNCF 对云原生重新进行了定义(并大大扩展了云原生的外延):

  • 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
  • 这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
  • 云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式***化,让这些创新为大众所用。

原文出自:https://github.com/cncf/toc/blob/main/DEFINITION.md

2021年,已经有几百家企业和机构加入 CNCF 参与云原生的建设,其中不乏亚马逊、微软、思科、华为、阿里云等大型科技公司。截止到目前(2021年10月),CNCF 已毕业的项目有16个,孵化中的项目有23个。以下是 CNCF 全景图:
云原生
    




云原生的前世今生(一)

原图出自:https://landscape.cncf.io,持续更新中...

CNCF 为了帮助企业和机构在复杂的基础架构之上更好落地云原生应用,从整体上给出了十个具体实施步骤,在不同的步骤都可以结合 Landscape 中列出的产品或服务进行选择。以下是 CNCF 给出的云原生实践路线图:
云原生
    




云原生的前世今生(一)

原图出自:https://github.com/cncf/landscape,持续更新中,中文翻译如下:

云原生
    




云原生的前世今生(一)

有了如此详尽的云原生实践路线图,相信每个开发者都能轻松的构建自己的云原生应用。

小结

随着云原生生态和边界不断的扩大,云原生的定义一直在变化。不同的公司(Pivotal & CNCF)不同的人对它有不同的定义,同一家公司在不同的时间阶段对云原生的定义也不一样。根据摩尔定律推断,未来云原生的定义肯定还会继续变化。

我们不妨跳出技术层面,尝试用组织和立场的角度来分析下 Pivotal 和 CNCF 这两家公司:

  • Pivotal 定位于 PaaS 层端到端的解决方案及数字化转型,从文化、流程、方法论、蓝图规划、软件开发方式等,都有一套模式,主要用户是传统大中型企业 CIO,整体策略是自顶向下;
  • CNCF 立足于整个云计算生态和技术创新、变革者,偏重于技术、工具链和底层基础设施,主要用户是开源社区的开发者、互联网及新兴企业,影响力可想而知,整体策略是自底向上;
  • 结论:Pivotal 是 Cloud Native 概念和方法论的先行者, CNCF 是 Cloud Native 的最佳实践者。

不管云原生的定义如何变化,其本质还是帮助开发者和企业,如何在复杂的基础架构之上,保证松耦合的系统能够更好地被监控和管理。云原生的生态应用也越来越枝繁叶茂,相信在不久的将来,会有更多伟大的科技落地在我们的身边,影响到我们的每一个人。

参考

  • 《云原生已来,只是分布不均》https://zhuanlan.zhihu.com/p/152430776
  • 《CNCF – 云原生计算基金会简介》https://www.wenjiangs.com/doc/nicwvs6u
  • 《开源简史基础:CNCF与路线图Trail Map》https://blog.csdn.net/liumiaocn/article/details/100653635

读完本文需要 5 分钟。

前言

博主20年4月转岗到阿里云,从事工业智能制造方向的后端研发,由于工作中需要解决不同客户现场的异构环境和多云环境(公有云、私有云、混合云)下的部署问题,所以一直在探索和实践云原生相关技术。

云原生一词近几年热度非常高,经常会有读者问我:云原生到底是什么?它跟传统的架构有什么区别?它能在哪些场景应用?它能带来什么价值?我该不该投入精力去学习它?等等...

趁着国庆假期跟大家好好聊聊这个话题,首先分享一篇科普文《云原生的前世今生(一)》,后续还会继续分享自己对云原生的理解,以及在日常工作中关于云原生的实践经验,希望能给大家带来启发~

云原生的起源 Pivotal

Pivotal 公司是敏捷开发领域的领导者(曾经 Google 也是其客户),出生名门(EMC、VMware等投资)。它推出了 Pivotal Cloud Foundry(2011 ~ 2013 PAAS 界网红)和 Spring 生态系列框架,是云原生的先驱者和探路者。

2013年,Pivotal 公司的技术经理 Matt Stine 首次提出云原生(Cloud Native)的概念。

2015年,Matt Stine 在《Migrating to Cloud Native Application Architectures - 迁移到云原生应用架构》小册子中定义了符合云原生架构的几个特征:

  • 符合12模式(Twelve-Factor App):云原生应用架构的模式集合
  • 微服务架构(Microservices):独立部署的服务,一次只做一件事
  • 自助服务敏捷基础设施(Self-Service Agile Infrastructure):用于快速、可重复和一致地提供应用环境和服务的平台
  • 面向API接口的通信(API-based Collaboration):服务之间的交互基于接口,而不是本地方法调用
  • 抗脆弱性(Anti-Fragility):系统能抵御高负载

原文出自:https://www.mattstine.com/publication/migrating-to-cloud-native/

2017年,Matt Stine 在接受 InfoQ 采访时,对云 Cloud Native Architecture 的定义做了小幅调整,具体有以下六个特质:

  • 模块化(Modularity)
  • 可观测性(Observability)
  • 可部署性(Deployability)
  • 可测试性(Testability)
  • 可处理性(Disposability)
  • 可替代性(Replaceability)

原文出自:https://www.infoq.com/articles/cloud-native-panel/

2019年,VMware Tanzu 收购了 Pivotal,其官网给出了云原生最新定义,以及云原生的架构原则:

  • 云原生是一种利用云计算交付模型的优势来构建和运行应用程序的方法论。当企业使用云原生架构开发和运维应用程序时,它们能更快速地响应客户需求将新想法推向市场。
  • 虽然公共云影响了几乎所有行业对于基础设施的思维模式,但类似云的交付并不仅限于公共环境。云原生的开发同时适合公共云和私有云,你只需要关心应用程序是如何创建和部署,无需理会在哪部署。
  • 更重要的是能够为开发人员提供按需访问计算能力以及现代数据和应用程序服务。云原生开发融合了 DevOps、连续交付、微服务和容器。
  • 云原生架构原则:DevOps、Microservices、Containers、Security

原文出自:https://tanzu.vmware.com/cloud-native

云原生的发展 CNCF

CNCF(Cloud Native Computing Foundation,云原生计算基金会),是由开源基础设施界的翘楚 Google、RedHat 等公司共同牵头发起的一个基金会组织,其目的非常明确,就是为了对抗当时大红大紫的 Docker 公司在容器圈一家独大的局面。CNCF 通过 Kubernetes 项目在开源社区编排领域一骑绝尘,之后就扛起了云原生定义和推广的大旗,风光无限。

2015年,Google 主旨在于打击 Docker,因此它对云原生的定义还比较狭隘,包括如下三个方面:

  • 微服务架构
  • 应用容器化
  • 支持容器编排和容器调度

2018年,被称为云原生元年,大量科技公司开始接受云原生的概念,并纷纷加入到云原生的大家庭。此外,主流云计算供应商相继加入 CNCF,持续丰富整个云原生的生态。CNCF 对云原生重新进行了定义(并大大扩展了云原生的外延):

  • 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
  • 这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
  • 云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式***化,让这些创新为大众所用。

原文出自:https://github.com/cncf/toc/blob/main/DEFINITION.md

2021年,已经有几百家企业和机构加入 CNCF 参与云原生的建设,其中不乏亚马逊、微软、思科、华为、阿里云等大型科技公司。截止到目前(2021年10月),CNCF 已毕业的项目有16个,孵化中的项目有23个。以下是 CNCF 全景图:
云原生
    




云原生的前世今生(一)

原图出自:https://landscape.cncf.io,持续更新中...

CNCF 为了帮助企业和机构在复杂的基础架构之上更好落地云原生应用,从整体上给出了十个具体实施步骤,在不同的步骤都可以结合 Landscape 中列出的产品或服务进行选择。以下是 CNCF 给出的云原生实践路线图:
云原生
    




云原生的前世今生(一)

原图出自:https://github.com/cncf/landscape,持续更新中,中文翻译如下:

云原生
    




云原生的前世今生(一)

有了如此详尽的云原生实践路线图,相信每个开发者都能轻松的构建自己的云原生应用。

小结

随着云原生生态和边界不断的扩大,云原生的定义一直在变化。不同的公司(Pivotal & CNCF)不同的人对它有不同的定义,同一家公司在不同的时间阶段对云原生的定义也不一样。根据摩尔定律推断,未来云原生的定义肯定还会继续变化。

我们不妨跳出技术层面,尝试用组织和立场的角度来分析下 Pivotal 和 CNCF 这两家公司:

  • Pivotal 定位于 PaaS 层端到端的解决方案及数字化转型,从文化、流程、方法论、蓝图规划、软件开发方式等,都有一套模式,主要用户是传统大中型企业 CIO,整体策略是自顶向下;
  • CNCF 立足于整个云计算生态和技术创新、变革者,偏重于技术、工具链和底层基础设施,主要用户是开源社区的开发者、互联网及新兴企业,影响力可想而知,整体策略是自底向上;
  • 结论:Pivotal 是 Cloud Native 概念和方法论的先行者, CNCF 是 Cloud Native 的最佳实践者。

不管云原生的定义如何变化,其本质还是帮助开发者和企业,如何在复杂的基础架构之上,保证松耦合的系统能够更好地被监控和管理。云原生的生态应用也越来越枝繁叶茂,相信在不久的将来,会有更多伟大的科技落地在我们的身边,影响到我们的每一个人。

参考

  • 《云原生已来,只是分布不均》https://zhuanlan.zhihu.com/p/152430776
  • 《CNCF – 云原生计算基金会简介》https://www.wenjiangs.com/doc/nicwvs6u
  • 《开源简史基础:CNCF与路线图Trail Map》https://blog.csdn.net/liumiaocn/article/details/100653635

推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
mobiledu2502926997
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有