基础设施|终于有人把云原生讲明白了
导读:本文我们将一起探讨什么是云原生,它的关键技术包括哪些。
作者:郝树伟
来源:华章科技
云原生计算加速了应用与基础设施资源之间的解耦,通过定义开放标准,向下封装资源,将复杂性下沉到基础设施层;向上支撑应用,让开发者更关注业务价值。此外,云原生计算提供统一的技术栈,动态、混合、分布式的云原生环境将成为新常态。
01 云原生的定义
云原生(Cloud Native)是一个组合词,“云”表示应用程序运行于分布式云环境中,“原生”表示应用程序在设计之初就充分考虑到了云平台的弹性和分布式特性,就是为云设计的。
可见,云原生并不是简单地使用云平台运行现有的应用程序,它是一种能充分利用云计算优势对应用程序进行设计、实现、部署、交付和操作的应用架构方法。
云原生技术一直在不断地变化和发展,关于云原生的定义也在不断地迭代和更新,不同的社区组织或公司对云原生也有自己的理解和定义。
Pivotal公司是云原生应用架构的先驱者和探路者,云原生的定义最早也是由Pivotal公司的Matt Stine于2013年提出的。Matt Stine在2015年出版的Migrating to Cloud-Native Application Architectures一书中提出,云原生应用架构应该具备以下几个主要特征。符合12因素,见下方所示。面向微服务架构。自服务敏捷架构。基于API的协作。具有抗脆弱性。
云原生应用的12因素:基准代码:一份基准代码,多份部署依赖:显示声明依赖关系配置:应用配置存储在环境中,与代码分离后端服务:将通过网络调用的其他后端服务当作应用的附加资源构建、发布、运行:严格分离构建、发布和运行进程:以一个或多个无状态进程运行应用端口绑定:通过端口绑定提供服务并发:通过进程模型进行扩展易处理:快速启动和优雅终止的进程可以最大化应用的健壮性开发环境和线上环境一致性:尽可能保证开发环境、预发环境和线上环境的一致性日志:把日志当作事件流的汇总管理进程:把后台管理任务当作一次性进程运行
2017年Matt Stine对云原生的定义做了一些修改,认为云原生应用架构应该具备6个主要特征:模块化、可观测性、可部署性、可测试性、可处理性和可替换性。截至本文结稿,Pivotal公司对云原生的最新定义为4个要点:DevOps、持续交付、微服务、容器。
除了对云原生技术发展做出巨大贡献的Pivotal公司,另一个不得不提的云原生技术推广者就是云原生计算基金会(Cloud Native Computing Foundation,CNCF)。CNCF是由开源基础设施界的翘楚Google等多家公司共同发起的基金会组织,致力于维护一个厂商中立的云原生生态系统,目前已经是云原生技术最大的推动者。
云原生计算基金会对云原生的定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中构建和运行可弹性扩展的应用。
云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统做出频繁和可预测的重大变更。
02 云原生关键技术概述
1. 容器
容器技术是一种相对于虚拟机来说更加轻量的虚拟化技术,能为我们提供一种可移植、可重用的方式来打包、分发和运行应用程序。容器提供的方式是标准化的,可以将不同应用程序的不同组件组装在一起,又可以将它们彼此隔离。
- 有人觉得中暑就是热出来的,吃一些退烧药就好了,这种做法 蚂蚁庄园今日答案6月28日
- iqoo|iQOO Z6x终于量产,6000mAh大电池、天玑8100+独显齐上阵
- 微信更新正式版!“清理缓存”功能变强,小程序终于能分享到朋友圈
- 土星环比恐龙还要年轻?这些宇宙冷知识很少有人知道
- 为什么现在很少有人提及“克隆技术”了?“克隆技术”有何缺点?
- 为什么同学群里,很少有人说话,大部分人都选择沉默或者屏蔽?
- 三星|没有人会在意你用的是索尼A9二代还是一代,靠作品说话
- 拼多多|拼多多网页版终于上线,最大短板补足了吗?
- 微信|终于!微信可以分组了!
- 苹果|128GB版iPhone跌至3799元,观望者终于等到了,机会很少有
