云原生
更新于:2024年1月29日
云原生
目录
[TOC]
1、什么是云原生
1、2010年 Paul Fremantle,WSO2 的 CTO 和联合创始人
Paul Fremantle,WSO2 的 CTO 和联合创始人,于 2010 年提出的 Cloud Native
从上图的描述可以看出,最早期关于云原生的定义已经比较准确了,也基本涵盖了云原生的两个关键词:云(在云环境中运行、多租户等)和原生(分布式、弹 性)。
然而在 2010 年,微服务的概念都还没被提出来,更别提容器和 K8S 生态了。可以说上面这个定义虽然准确,但是已经不符合高速发展的技术时代的需求了。
2、2013年 Adrian Cockcroft, 时任 Netflix 云架构师、2016 年 AWS 的 VP
Adrian Cockcroft, 时任 Netflix 云架构师、2016 年 AWS 的 VP,于 2013年提出的 Cloud Native
届时,Netflix 在 AWS 上面运行着上万个实例,每天都有数以千计的实例被创建或删除。Netflix 在云环境上的成功实践,吸引着大批人员和公司争相模仿。Adrain 在介绍 Netflix 的成功经验时,主要是从目标、原则和措施等方面进行了描述。
在 Adrain 对 Cloud Native 的目标描述中,可扩展性、高可用、敏捷、效率这四个词极为关键,这也是为什么现如今大量的企业在进行云原生转型的主要原因,可 以说云原生成为了企业架构转型的必经之路。
为了实现这个目标,Adrain 提出了五大原则,而这五大原则如果你去细细琢磨,你会发现它们都是为上面四个目标服务的。这个时候,微服务、DevOps的概念相 继兴起,成为了的云原生的一部分或者说云原生的手段,此外,敏捷开发被开始被大家提倡,用来助力互联网公司加快研发速度、提升用户体验。
3、2015年 Matt Stine,Pivotal 公司技术领导者
Matt Stine,Pivotal 公司技术领导者,在2015年发布的电子书《MIgrating to Cloud Native Application Archtecture》一书中对如何 将应用迁移到 Cloud Native 做了详细的介绍
Matt 认为在单体架构向 Cloud Native 迁移的过程中,需要文化、组织、技术共同变革。Matt 首次强调了文化与组织的变革对云原生的重要性,我觉得这个观点时 至今日依旧至关重要。从组织文化的角度来讲,一切以人为主,需要建立自由开放的环境,高度信任,自我驱动,充分发挥每一个人的力量,而不是让工程师成为 螺丝钉。应当避免大事小事都拿到会议室讨论,造成决策瓶颈。
另外,Matt 在延续前人思想总结的前提上,首次将“十二因子”与云原生关联起来。十二因子的概念简介见下图:
云原生学说发展到这,已经趋于成熟了,但是以上几乎都是个人的定义和看法。业务场景是千变万化的,一方面每个人站的角度不一样,心中的架构也会不同;另 一方面,架构是在持续演进的,随着新技术层出不穷,云原生定义也会继续不断演进。
2015年由 Linux 基金会发起了一个 The Cloud Native Computing Foundation(CNCF) 基金组织,CNCF 基金会的成立标志着云原生正式进入高速发展轨道, google、Cisco、Docker 各大厂纷纷加入,并逐步构建出围绕 Cloud Native 的具体工具,而云原生这个的概念也逐渐变得更具体化。这也是非常具有历史意义 的,CNCF 对于 云原生的推动起到了巨大的作用。
- 12facor
什么是云原生•基于多种手段•应用容器化封装•服务网格•不可变基础架构•声明式API•云原生的意义•提升系统的适应性、可管理性、可观察性•使工程师能以最小成本进行频繁和可预测的系统变更•提升速度和效率,助力业务成长,缩短I2M(IdeatoMarket)
什么是云原生?
孟凡杰大佬:就是云原生上下通吃 往下到基础架构 网上到应用 它把边界打破了。
🍀 Q:孟凡杰对云原生的理解-2021.08.17
我是这么看的 云原生的世界里 没有纯后台开发,只管业务逻辑的世界越来越小, 比如你做java开发, 微服务架构下的spring cloud你至少要懂 。spring cloud现在也支持kubernetes native 的服务发现, 也在被istio取代 所以未来应该是相通的 ,除非把自己局限在代码逻辑的部分 ,否则学习云原生技术栈是有用的。
8、什么是云原生?(字节跳动-资深架构师 罗广明)
云原生(Cloud Native)是一种构建和运行应用程序的方法,是一套技术体系和方法论。
云原生从字面意思上来看可以分为云和原生两个部分:
- 云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了IaaS、PaaS和SaaS等。
- 原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如 云服务的弹性和分布式优势。
总结
讲到这里,相信的大家对于云原生也有了自己的体会和认知。总而言之,个人的定义难免偏颇或者有缺失,组织的定义也同样如此,都是在构建一个自己的理想生 态。但是了解云原生的概念起源和发展,有助于我们理解云原生的含义以及其未来发展的趋势,这一点至关重要。
总结来说,云原生是一套适用于云计算时代的IT架构与方法论,而这一套方法论需要从架构、研发流程、文化三个角度去实现,相互配合,缺一不可。
如果硬是要给云原生的做一个总结,我们可以参考如下观点:
云原生的组成
架构:以云和微服务架构为基础构建系统
云包含了敏捷基础设施及公共基础服务
考量架构的质量:一致性、性能、可扩展性、可用性等
研发流程:自动化的研发环境是 Cloud Native 的基础
独自、快速完成交付,研发效率极大提升
组织文化:以人为主、自由开放、自我驱动、高度信任
充分发挥个人力量,避免大事小事会议讨论,造成决策瓶颈
9、什么是云原生(唐继元)-2022.4.24
10、什么是云原生
2、云原生核心项目概览
- CNCF 云原生整体视图
provisioning 供应
compliance 合规
orchestration 编排
coordination 协调
- 云原生核心项目概览
TEKTON:CD工具(声明式api) api网关:api-server
🍀 landscape
🍀 云原生参考架构
3、云原生技术演进路线
Pets vs Cattle
scale out 水平扩展,向外扩展 scale up 向上扩展
云计算发展历史
业界认为HEROKU是pass的鼻祖,包括后面要讲的应用开发的12因素也是HEROKU提出来的,包括我们现在pass的一些理念或者实践,都是HEROKU提出来的。2011也是比较关键/重要的一年;FaaS;LXC里面的技术也是谷歌做了大量的贡献;
🍀 CNCF未来发展规划:http:•应用架构演进•单体应用到分层架构到`SOA`到微服务•kubernetes架构演进•API定义标准化•基于扩展API形成的系统生态•实现标准化•接口和实现分离:CRI、CNI、CSI
云原生技术演进路线•服务网格化•基于Sidecar,提升数据面的可管理性•协议升级•API级别的认证鉴权•提升可观察性
字节跳动-资深架构师 罗广明说
1.容器
2.kubernetes
3.Service Mesh
微服务
4.持续交付
云原生技术(唐继元
)
(字节跳动研发总监,pass团队负责人)-2022.4.24
ServiceMesh:springcloud微服务框架:sdk(日志,监控,负载均衡)但,会存在一个问题,在升级的时候,例如说我的sdk升级了,那么应用要升级,还要去重新编译,甚至可能我还要去改代码。