云原生的前世今生(一)

简介: 云原生一词近几年热度非常高,经常会有读者问我:云原生到底是什么?它跟传统的架构有什么区别?它能在哪些场景应用?它能带来什么价值?我该不该投入精力去学习它?等等...趁着国庆假期跟大家好好聊聊这个话题,首先分享一篇科普文《云原生的前世今生(一)》,后续还会继续分享自己对云原生的理解,以及在日常工作中关于云原生的实践经验,希望能给大家带来启发~

读完本文需要 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):系统能抵御高负载

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 全景图:

image.png

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

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

CNCF_TrailMap_latest.png

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

image (1).png

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

小结

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

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

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

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

参考

PS:关注公众号【劼哥舍】,一起学习成长
目录
相关文章
|
JavaScript 前端开发
uViw Dialog 对话框
uViw Dialog 对话框
203 0
|
前端开发 JavaScript
【Ant Design Pro】使用ant design pro做为你的开发模板(一)拉取项目
【Ant Design Pro】使用ant design pro做为你的开发模板(一)拉取项目
1602 0
【Ant Design Pro】使用ant design pro做为你的开发模板(一)拉取项目
|
9月前
|
机器学习/深度学习 人工智能 运维
《AI领航工业制造:解锁智能转型新密码》
在科技飞速发展的今天,人工智能(AI)正深刻变革工业制造领域。AI通过优化生产流程、提升产品质量和实现设备智能运维,为企业带来前所未有的机遇。它不仅提高了生产效率,降低了成本,还增强了企业的全球竞争力。然而,数据安全、技术人才短缺和系统集成难度大等挑战也亟待解决。尽管如此,AI的应用正引领工业制造迈向智能化新时代,推动产业升级,重塑全球制造业格局。
143 14
|
10月前
|
机器学习/深度学习 人工智能 并行计算
《解锁 Eigen 库在 C++人工智能项目中的潜能与优化之道》
Eigen 库是 C++ 人工智能项目的得力助手,专注于线性代数运算,广泛应用于神经网络、数据预处理和优化算法等领域。其高效的内存布局、表达式模板和多线程并行计算等优化技巧,显著提升了项目性能,助力开发者构建高效的人工智能系统。
283 20
|
12月前
|
机器学习/深度学习 人工智能 安全
|
10月前
|
设计模式 存储 前端开发
前端必须掌握的设计模式——单例模式
单例模式是一种简单的创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。适用于窗口对象、登录弹窗等场景,优点包括易于维护、访问和低消耗,但也有安全隐患、可能形成巨石对象及扩展性差等缺点。文中展示了JavaScript和TypeScript的实现方法。
382 13
|
Java Linux 网络安全
vscode 远程服务器 java 无法跳转
【2月更文挑战第4天】
931 3
|
11月前
|
存储 运维 监控
运维技术深度解析:构建高效、稳定的运维体系
【10月更文挑战第22天】运维技术深度解析:构建高效、稳定的运维体系
888 0
|
容灾 Cloud Native 关系型数据库
实现MySQL异地多活场景
现代化互联网企业面临的最大威胁是意外导致的数据丢失或不可用。为应对这一挑战,企业通常采用“主从高可用”架构,但单一机房内的高可用仍存风险。真正的高可用需通过“跨机房容灾”或“异地容灾”实现。异地容灾将服务器部署在不同地域的机房中,确保一处受灾时,其他机房能迅速接管业务。更进一步的“异地多活”方案则让各节点同步处理业务流量,确保数据一致性,提高资源利用率。NineData 提供了实现这一方案的强大工具。
396 0