登 录
注 册
< 云 计 算
虚拟化
云原生
云服务
云计算概述
云原生:云计算的再升级
云原生构建现代化应用
热门推荐>>>
中台架构
中台建设与架构
Hadoop
源码分析-NN启动(三)
HBase
HBased对接Hive
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
ClickHouse
表引擎-其他类型
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
Go
Go函数与方法
SQL
SQL模板
安全常识
一文读懂SSO
当前位置:
首页
>>
云原生
>>
云原生:云计算的再升级
云原生:云计算的再升级
2023-09-17 11:54:58 星期日 发表于北京 阅读:732
![](/static/images/article_images/1694922805.9844759.jpeg) 参考书籍 ![](/static/images/article_images/1694922882.5302908.jpeg) 豆瓣链接:https://book.douban.com/subject/35469552/ #### 什么是云原生? ##### 最早定义 Pivotal(一家云原生鼻祖公司)于2015年明确地提出了云原生的概念,指出云原生是一种可以充分利用云计算优势`构建和运行应用的方式` ##### 当前定义 云原生可分解为“云”(Cloud)和“原生”(Native)两个词。这里还隐藏了一个词——“计算”(Computing),因为云原生本质上是一种与云计算(Cloud Computing)相同的计算方式,因此通常我们在说云原生的时候,实际上是暗指云原生计算(Cloud Native Computing) 所以,云原生(或者说云原生计算)应当包括`云原生技术、云原生产品、云原生架构`以及构`建现代化应用`的开发理念: 1)云原生产品和云原生技术需要基于公有云、私有云或混合云的云基础设施(IaaS) 2)云原生架构和云原生开发理念是基于云原生技术和产品构建或实现的 >注意,对于不是基于云原生技术或者产品的架构和理念,如基于传统物理服务器发布、构建的DevOps,是不会被划分到云原生范畴的 3)现代化应用和云原生应用是基于云原生的架构和开发理念构建或实现的 ##### 云原生的优势 云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中构建和运行可弹性扩展的应用 云原生的代表技术包括`容器、服务网格、微服务、不可变基础设施和声明式API`。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统 结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统做出频繁和可预测的重大变更 #### 云原生是云计算的趋势 ##### 从技术发展趋势看 更多企业将会广泛应用云原生技术。在国家政策和企业需求的双重驱动下,更多企业会选择上云,中国云计算的强势增长是必然趋势,这也注定了更多企业将会关注、应用、采纳能够充分利用云计算能力的云原生技术和产品。 ##### 从软件开发角度看 云原生技术为企业带来了更快进行业务创新的价值。越来越多的企业逐渐意识到了云服务的专业性和高SLA,这些企业在数字化转型的过程中将IaaS和PaaS的通用技术复杂性委托给了云平台,从而能够更好地专注于自身业务逻辑的创新。 利用云原生技术重塑企业的软件生产流水线,可以加大业务组件的复用程度,将软件交付周期从周、天降低到小时甚至分钟级别,从而提升业务的市场嗅觉灵敏度,增强市场反应能力。 ##### 从应用技术栈角度看 越来越多的企业发现传统的应用已经无法满足数字化业务的需要,所以会对应用进行彻底升级,会更多地采用云原生技术和云原生架构作为构建现代化应用的核心框架,从而帮助企业打造具备弹性、韧性、可观测性、API驱动、多语言支持、高度自动化、可持续交付等特性的现代化应用软件 #### 云原生是云计算的再升级 从云原生的定位可以看到,云原生包含大量新的PaaS层技术和新的开发理念,是释放云计算价值的最短路径,也推动着云计算的再升级。 整个云原生技术栈都是基于开源、开放的技术标准。CNCF也在致力于云原生技术的标准化,为云原生技术和产品的用户提供使用云服务的标准界面,同时避免了厂商锁定。 所以,云原生不仅是对使用云的应用架构的再升级,也是对云平台的技术和云服务的再升级。从构建现代化应用的角度,我们可以发现,云原生对应用的重构体现在应用开发的整个生命周期中 ##### 重塑研发流水线 容器可用于对制品进行打包和分发,即结合GitOps和不可变基础设施,可以实现软件运行环境的整体化部署。 这样做的好处是: ###### 关于软件运行环境的所有变更都有迹可循 整个过程不仅高度自动化,而且任何时候我们都可以查找(checkout)需要的版本,通过脚本构建出对应的制品,整个构建过程是可重复的 ##### 重新定义软件交付模式 云原生软件交付模式如下: ![](/static/images/article_images/1694922539.80547.jpeg) 基于容器和Kubernetes的交付平台,可以屏蔽底层不同硬件环境的差异,包括主机差异、存储差异、网络差异、操作系统差异、第三方软件差异等。 因为从应用的角度看,它们都是在隔离的环境中单独运行,从CPU、内存、网络、IPC(Inter-Process Communication,进程间通信)到第三方软件依赖,都是独享的一份 相较于传统模式,云原生软件交付模式主要有如下几个变化 `1、用容器做整体交付` 整体交付减少了容器内部组件之间的安装配置工作,随着容器及编排的开源和普及,更多硬件得到支持,极大地降低了安装配置的错误风险 `2、将Git作为“Single Version of Truth”(唯一真实版本)` Git作为交付和运维的仓库,记录了所有软件变更的版本、配置参数、脚本、用户名和密码等信息,同时所有脚本、工具和Kubernetes的Operator,都读取Git中的信息作为事实的唯一来源,即使是做版本升级或回滚,以及变更评审,都以Git中的信息为准。 `3、声明式API` 声明式API首先“告诉”系统期望的目标状态是什么,其次才是脚本或工具需要做什么才能交付这个目标状态(即如何做)。声明式API本身并不复杂,实际上它是一种开发理念的彻底升级,因为系统更多的是关注需要什么(达到什么状态),所有的“如何做”都是围绕这个目标状态来服务的。 `4、尽量采用OpenAPI作为系统间的集成方式` 标准化的OpenAPI更有利于系统间的集成,因为OpenAPI有明确的契约描述或接口规格描述,且提供了各种开放的工具,可以用来做IoT(连通性测试)、SIT(集成测试)等。 所以,云原生软件交付模式可以方便地提升软件交付过程的自动化程度,更便于企业实施CI/CD,也可以极大地提升交付效率 ##### 运维模式的升级 云原生运维可以基于标准化基础设施的运维,通过完整的可观测性实现系统中各类异常的实时可见,也可以结合声明式API实现自动化运维 ##### 应用架构的升级 基于容器、可管理、认证和鉴权等的云原生架构不需要re-build,微服务、无状态应用、API会优先选择应用重构,而弹性、可观测性、高可用、自动化等在应用重构的情况下会做得更好 ##### 组织结构的升级 云原生作为一种全新的计算模式,带来了工具集的升级、知识体系的更新和工作流程的改变,也变更了企业的IT文化。在这个过程中,部分岗位会被淘汰(如大机运维人员)和产生新的岗位(如SRE,Site Reliability Engineer,网站可靠性工程师),等等