云原生解决什么问题?
最近在考虑从云原生角度去做一些架构维度的改造。但之前关注的在于平地而起的理想态云原生方案,基于存量架构来说就比较复杂了,比如如何衔接现有系统存量能力,低成本接入,同时还可以吃到技术升级的红利。
非常多的人在讨论云原生,那什么是云原生?解决什么问题?
上云的目的是利用云平台的优势,比如按需分配、弹性伸缩都是云原生的关注点,但应用程序并不能轻松的上云。所以想要应用程序可以利用云平台的优势,就需要对应用系统进行云原生改造。
那么什么是云原生?
Pivotal给出的云原生应用的几个特征可以参考,符合12因素应用、面向微服务架构、自服务敏捷架构、基于API协作及抗脆弱性。
其实云原生是一个思想集合,云原生技术包括技术维度、应用管理维度、企业管理维度等。
- 技术维度:微服务、敏捷基础设施
- 应用管理维度:DevOps、持续交付
- 企业管理维度:康威定律
更细化的架构维度特质包括:
1. 模块化应用
2. 可观测性
3. 可部署性
4. 可测试性
5. 可处理性
6. 可替换性
归纳下来即,DevOps、持续交付、微服务、容器化。
那CNCF对云原生定义是什么呢?
包含三个方面:
1. 应用容器化
2. 面向微服务架构
3. 应用支持容器的编排调度
由于CNCF是以K8s为底座的,所以其关于云原生定义的概念主要围绕于上云,即:通过云原生实现各组织在公有云、私有云、混合云等新动态环境下,构建可扩展的弹性应用,涉及到容器、服务网格、微服务、不可变基础设施、声明式API。
通过以上技术可以构建更具容错性、易于管理、便于观察的松耦合系统。
容器
说不太好是容器推进了云原生,还是云原生推进了容器发展。起码以目前看,容器是云原生下最关键的技术,有了Docker,整个云原生才找到了正确的打开方式。
Docker背后代表了基于镜像的动态交付,依赖于新型的应用打包、分发、运行机制。将容器镜像将应用运行时环境、代码、依赖库、工具、资源文件等打包成一种操作系统无关的变更软件包。实现了buid once、run anywhere。
微服务
在微服务架构下,每个服务实例是独立可部署的组件,对外以API暴露能力,通过微服务实现了云原生下面的应用模块化要求,进而实现了服务之间的松耦合。
每个服务都可以独立开发、测试、验证、部署。
服务网格
服务网格主要提供的是服务之间通信的通信基础设施,保障了服务之间通信的可靠性传递。
做好服务网格的标准:
应用程序通信的中间层
轻量级网络代理
应用程序无感知
解耦应用程序的重试、超时、监控、追踪、服务发现
服务网格一般通过一组轻量级网络代理实现,这些代理和应用程序一起部署,建设对应用系统入侵。将传统服务通信相关的治理能力和基础的网络通信放在一起,真正和业务逻辑解耦开,简单理解就是将网络访问、限流、熔断、监控和TCP/IP放在一起。
目前的服务网格实现的功能越来越多,包括服务发现、负载均衡、故障恢复、指标收集、监控告警等研发与运维需求,借助于Mesh方案可以实现,如AB测试、金丝雀发布、限流、访问控制、端到端认证等。
不可变基础设施
我觉得这个是理念上的改变,一个工作负载的承担(容器、虚拟机)一旦部署之后不再进行修改。当需要更新、修复或修改时,只是将新的、经过验证的工作负载替换掉就得即可。
不可变基础设施主要体现在系统稳定性方面,传统的应用程序一旦部署到用户特定服务器上之后,服务器系统是会不断变化的,比如操作系统升级或在上面安装新应用,这样在其负载之上的应用稳定性就受到了挑战。
而一旦定义了不可变基础设施,就避免了类似的问题,因为他不存在了变化的问题了。
声明式API
与声明式API对应的是命令式API。命令式API提供给用户怎么做,声明式API是给用户提供了做什么的能力,简单理解,前者是确定性rest api,后者是dsl。
其背后体现的是API背后能力的扩展性与弹性。
技术之外的事情
云原生除了对应用系统做了技术维度优化之外,还在流程与组织维度做了优化。它解放了开发和运维,让研发与运维的工作变得简单。云原生还关注于规模,让分布式系统具备了水平扩展能力,同时具备了故障之后的快速恢复能力。
云原生解决什么问题?相关推荐
- 云原生解决了什么问题?
在数智化时代,软件变得越来越复杂,终端对于响应速度的要求越来越迫切,对运行稳定性的需求变得越来越挑剔,这给开发工作带来了很大的压力. 云原生解决了什么问题? 在原有技术的基础上,功能复杂程度.交付周期 ...
- 雷锋网独家解读:阿里云原生应用的布局与策略
简介:阿里云一直希望可以做标准化的技术,跟社区的标准.行业的标准进行打通,这样对于阿里云的客户而言,简化了很多流程,其具备的能力也是未来的主流. 文章来源:雷锋网 作者:杨丽 原标题:<独家解读 ...
- 阿里云中间件首席架构师李小平:云原生实践助力企业高效创新
简介:通过云原生技术,真正为企业带来更多的业务价值,助力企业整体的业务创新. 作者:李小平 前天我参加了信通院的云原生产业大会,在会场上非常感慨,参加会议的企业非常多,并且来自于各行各业.我想起201 ...
- 扩展 GRTN:云原生趋势下的 RTC 架构演进
简介:在 2021 LiveVideoStackCon 音视频技术大会上海站,聚焦 "轻端重云和边缘架构新模式" 专场,阿里云视频云的 RTC 传输专家杨成立(忘篱)带来 &quo ...
- 基于云原生的私有化交付PAAS平台
目录 前言 什么是云原生? 从Docker到Kubernetes:小鲸鱼大记事 docker起源 容器编排之争 CNCF创建 尘埃落定 CNCF - 生态的力量 基于云原生的私有化交付PAAS平台 传 ...
- 云原生与微服务架构基础:01 | 为什么说云原生重构了互联网产品开发模式
为什么说云原生重构了互联网产品开发模式? 云原生的概念 云计算的前世今生 阶段1:虚拟化技术 阶段2:虚拟机的市场化应用 阶段3:容器化和容器编排的兴起 云原生到底是什么? 云原生出现的背景 云原生解 ...
- 阿里云刘伟光:2万字解读金融级云原生
文 | 刘伟光 刘伟光,阿里云智能新金融&互联网行业总裁.中国金融四十人论坛常务理事,毕业于清华大学电子工程系 前言 2015年云原生理念提出的时候,彼时全球金融百年发展形成的信息化到数字化的 ...
- 阿里云刘伟光:2 万字解读金融级云原生
作者:刘伟光,阿里云智能新金融&互联网行业总裁.中国金融四十人论坛常务理事,毕业于清华大学电子工程系 01 前言 2015年云原生理念提出的时候,彼时全球金融百年发展形成的信息化到数字化的背后 ...
- 云原生落地难的五个痛点与解决方法
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 在云原生的技术发展和实践快速演进的时代,企业面对五花八门 ...
最新文章
- 欧拉筛 筛法求素数 及其例题 时间复杂度O(n)
- 今年美国广告程序化购买支出将超252亿美元
- redis实现令牌桶算法思路
- Palindromic Numbers LightOJ - 1205 数位dp 求回文数
- Neo4j 图创建2 以小麦及其相关信息为例(未完成)
- 【java基础】——java枚举类型基本介绍
- python3纵向输出字符串_python3字符串输出常见面试题总结
- C#中如何将字符串转换byte[],同时如何将byte[]换成字符串?
- ES6 ArrayBuffer 概述
- python os.walk遍历目录_Python 用 os.walk 遍历目录
- 【零基础学Java】—static关键字概述(十六)
- VSCode 中,TS 提示 ”无法找到 *.vue 声明文件“ 的解决方案
- Unity3D射击小游戏Demo开发
- 路由器与交换机的关系
- java Ofd 转图片_OFD文件怎么转换成图片格式
- 我们来统计一个各大学中国学生会CSSA的list吧
- BeanUtils.copyProperties 无法转换数据类型不同的数据
- 无人机在计算机专业的应用,嵌入式计算机在无人机系统的应用
- win10系统通过文件名称快速搜索文件的软件
- 我对计算机网络技术的理解,对计算机网络技术课程学习几点思考.doc
热门文章
- 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)
- 【学习笔记】高斯整数、高斯素数、费马平方和(全部相关概念及例题详解)《初等数论及其应用》
- c++引用matlab类,matlab调用C++函数浅谈(一)
- B - The Suspects POJ - 1611
- 数据库基础笔记(MySQL)2 —— 基础查询
- jtoken判断是否包含键_c#-确定JToken是否为叶子
- Java练习 SDUT-1132_斐波那契数列
- 细节:js 创建对象的几种模式举例
- PHP常用类型判断函数
- linux 下的服务