20年的大厂技术总监给云原生从业者的建议
云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生的英文可拆解为Cloud和Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序设计之初就被考虑部署到云的环境,为云而生,在云上运行,并充分利用和发挥云平台的弹性和分布式架构的优势。
概括成一句话:云原生就是为云而生、以应用为中心的现代应用新范式。

云原生的技术特征
这种新的云计算范式具有以下特征。
其一,云原生除具有分布式能力外,还具有基于云的自动化资源弹性能力。
其二,不绑定任何技术,即云原生可以由任何一种语言的技术栈实现,如C++技术栈 或者Golang技术栈。只要该技术能够解决云原生场景下的问题,都可以考虑纳入云原生技术体系。
其三,不对适用的业务领域加以限制,云原生适用于所有需要数字化的领域。
其四,云原生不仅涉及技术变革,还会引发商业模式、产品和组织等的变革。

为何需要云原生
为什么会出现云原生这种新范式呢?下面来看以下几个场景。
场景1:用户用智能手机打开某网站的商品推荐页面,兴趣盎然地浏览着页面展示的商品,还时不时地进入虚拟直播间,观看导购的讲解,突然看中一件非常漂亮的衣服,便毫不犹豫地将衣服加入购物车系统,并直接通过第三方支付系统支付,也许下午就能在家收到这件漂亮的衣服了。
场景2:小王是个上班族,吃腻了公司食堂的饭菜,于是登录某外卖App订餐,没过多久,热乎乎的食物就经由外卖员送到了他的手中。
这些场景已司空见惯,人们的生活已经严重地依赖于数字化工具了,但这些为了提高生活质量的App背后是庞大的IT系统。
再来看这样一个场景。
场景3:比尔是一家著名电子商务公司的软件工程师,刚刚从工单系统那里接到一项棘手的任务,有大量的终端用户投诉“无法在App上下单了”。虽然事情紧急,但是比尔不得不从复杂的系统链路中寻找蛛丝马迹来修复后台的服务,经过一天的排查,最终发现故障的原因是流量过载,只需添加机器就可以解决。对这种规模的电商而言,这是一个严重的事故,一天至少损失上亿元。
这就是现代IT系统复杂性现状的一瞥。回过头来,为什么需要这么长时间的排查呢?
其一,现代软件系统结构大都很复杂,就像一个大型生物,比如人体,那么对大型系统的问题排查就类似于在不开刀、不使用核磁共振、不化验等情况下了解疾病的原因。
其二,现代软件系统在其生命周期内的新技术需求或功能需求层出不穷,这也使得现代软件系统越来越复杂,排查的路径越来越长,而IT投入是相对滞后的,其稳定性朝着失控方向发展。
比尔得知这个电商应用运行在云上时,很好奇为什么还会有流量过载的问题。
云关心的是CPU、内存等资源的池化和虚拟化,并不关心在虚拟机操作系统上是如何 开发、运维应用程序的。应用程序是运行在操作系统之上为用户提供服务的进程,比如提供订单服务的程序。应用程序无法直接管理云。应用和云之间出现了一个断层,这个空白区是由研发团队、运维团队等手工管理的。云对应用本身的资源需求完全是无感的,云无法自己做出扩展,只能由研发团队和运维团队手动拓展,所以应用程序对突发流量无能为力。而应用上云,仅仅是为了节约企业自己搭建机房的成本。
对这类应用而言,其实还有更多故障,比如应用实例因为Bug而崩溃、因为内存不足而拒绝服务、因为网络毛刺而影响服务质量等,而云对这些问题无感,所以云对此无能为力。技术团队努力按产品或者项目计划快速推进研发进度,这就像汽车以120km/h在高速上行驶,而缺陷、故障使得软件就像汽车突然下了匝道,速度又回到了40km/h,整体效率并没有提高,整体成本并没有降低。
很明显,需要一种技术向上能够为应用上云与稳定运行提供支撑,向下能够实现以应 用维度动态管理云资源(让云对应用的资源需求有感知)的能力。云原生正处于这个断层的 位置,提供了一种运用云算力的新方式。
所以,云原生使得现代化应用程序能够运行在云上,利用云的优势(而不需要理会硬件故障)在应用程序出现故障时自愈,并在突发流量发生时无须担心算力不足的问题。云原生大大地降低了成本并提高了效率。

云原生技术的本质
注意,云原生的电商应用在终端用户侧依然与原先的非云原生的电商应用在外观上及使用体验上保持一致,功能并没有发生变化。可以理解为,云原生平台是一种“透明”的基 础设施,即电商应用还是运行在操作系统之上,操作系统运行应用的基本抽象还是进程。也许有人会问,不是说应用会运行在云原生平台之“上”吗?这个“上”的意思是管理的关系,而不是运行态堆栈的上下层级关系,云原生系统更像管理应用进程的一组非应用进程,比如Kubernetes的本地“运维代理”—Kubelet这样的进程。在实现层面,云原生系统和应用程序从操作系统角度来看都是一样的。在架构层面,云原生系统是分布式的,所以从外观看,它是云的更高级形态。不同于传统的运维平台,它是实实在在的应用运行平台。
对于平台开发者来说,忠告就是:希望你能够沉下心来,不要被现代基础设施的“外壳”所迷惑,你依然需要刻苦地钻研操作系统内部的东西,比如内存管理、进程管理、多线程、网络堆栈结构、存储原理等。因为无论现在的云原生多么先进,也只是在架构思想上先进,底层的软件技术并没有实质的变化。你也应该清楚:云原生平台依旧是基于操作系统构建的现代分布式程序,你需要扎实的操作系统编程知识来构建这种新型的平台。
对于业务应用开发者来说,忠告就是:希望你能够刻苦钻研业务建模、应用架构等,如DDD、企业应用架构、业务分布式架构等。因为无论现在的云原生多么先进,它的初衷仍旧是让用户更加充分地聚焦于业务应用领域本身,而不是基础设施。
对于IT运维人员来说,忠告就是:希望你能够沉下心来,将思维从对具体运维对象的管理转变为对基于云原生抽象对象的管理,这将大大减少对千差万别的物理机器的知识依赖,管理方式被替换成统一的、标准的声明性管理方式。这样就不需要学习和掌握差异性部署环境的知识,同时又及时响应了业务的需要。
对于企业客户而言,忠告就是:不要迷茫,看清云原生的能力,聚焦于商业本质,进一步依托新型IT 工具加持自己的数字化产品,快速创新,使得在线业务发挥经济上的重要作用。对于云原生平台提供商而言,忠告就是:要从市场的真实情况出发,构建能够为客户解决实际场景问题的平台,这才是商业本质。
本文节选自《云原生落地:产品、架构与商业模式》

相关文章:
20年的大厂技术总监给云原生从业者的建议
云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生的英文可拆解为Cloud和Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序设计之初就被考虑部署到云的环境,为云而生,…...
音视频项目—基于FFmpeg和SDL的音视频播放器解析(二十)
介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…...
京东数据分析:2023年10月京东彩妆销售大数据采集
鲸参谋监测的京东平台10月份彩妆市场销售数据已出炉! 鲸参谋数据显示,今年10月份,京东平台上彩妆市场的销量将近430万,环比增长约21%,同比下滑约3%;销售额将近5.8亿,环比增长约7%,同…...
uniapp-微信授权登录
目录 一、微信授权登录的介绍 1.用户在微信内点击登录按钮,跳转到授权页面; 2.用户同意授权后,返回授权码给开发者服务器; 3.开发者服务器通过授权码向微信服务器发送请求,获取用户信息; 4.微信服务器…...
在vscode下将ipynb文件转成pdf的方法
正常情况下,可以在vscode的ipynb界面点击上面的三个点,里面有export,可以选择直接输出html和pdf,但是需要latex,由于按扎u安装麻烦,所以我换了一种方法。 ----------------------------------------------…...
css之选择第一个或最后一个元素、第n个标签、选择偶数或奇数标签、选择最后n个标签、等差数列标签的选择、first、last、nth、child
MENU first-child选择列表中的第一个标签last-child选择列表中的最后一个标签nth-child(n)选择列表中的第n个标签nth-child(2n)选择列表中的偶数位标签nth-child(2n-1)选择列表中的奇数位标签nth-child(nm)选择从第m个到最后一个标签nth-child(-nm)选择从第1个到第m个nth-last-…...
CSS实现三角形
CSS实现三角形 前言第一种:bordertransparent第二种borderrgb使用unicode字符 前言 本文讲解三种实现三角形的方式,并且配有图文以及代码解说。那么好,本文正式开始。 第一种:bordertransparent border是边框,而transparent是透明的颜色&a…...
mysql 与 Oracle 的区别,oracle 与 mysql分页查询的区别
文章目录 mysql 与 Oracle 的区别1、并发性2、一致性3、事务4、数据持久性5、提交方式6、逻辑备份7、热备份8、sql语句的扩展和灵活性9、复制10、性能诊断11、权限与安全12、分区表和分区索引13、管理工具 oracle 与 mysql分页查询1.Oracle分页查询中提供了一个伪列:…...
原生实现底部弹窗效果 h5 小程序
<template><div class"home"><div class"btn" click"showPopupshow">弹出底部蒙层</div><div class"popup " catchtouchmove"true" :class"showPopup" ><div class"mask&q…...
最新Midjourney绘画提示词Prompt教程无需魔法
最新Midjourney绘画提示词Prompt教程无需魔法使用 一、AI绘画工具 SparkAi【无需魔法使用】: SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!本系统使用NestjsVueTypes…...
大一统模型 Universal Instance Perception as Object Discovery and Retrieval 论文阅读笔记
Universal Instance Perception as Object Discovery and Retrieval 论文阅读笔记 一、Abstract二、引言三、相关工作实例感知通过类别名进行检索通过语言表达式的检索通过指代标注的检索 统一的视觉模型Unified Learning ParadigmsUnified Model Architectures 四、方法4.1 Pr…...
java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版
上文java springboot测试类鉴定虚拟MVC请求 返回内容与预期值是否相同我们讲了测试类中 虚拟MVC发送请求 匹配返回内容是否与预期值相同 但是 让我意外的是 既然没人骂我 因为我们实际开发 返回的基本都是json数据 字符串的接口场景是少数的 我们在java文件目录下创建一个 dom…...
react等效memo的方法
视频教程 前端技术|Dan博客|在你写memo()之前_哔哩哔哩_bilibili 把与ExpensiveTree的无关的dom做成一个组件 第二种情况,color在ExpensiveTree组件的父级dom 创建一个组件,将state的color和input写上,而ExpensiveTr…...
2023年亚太杯数学建模A题解题思路(*基于OpenCV的复杂背景下苹果目标的识别定位方法研究)
摘要 由于要求较高的时效性和劳力投入,果实采摘环节成为苹果生产作业中十分重要的一部分。而对于自然环境下生长的苹果,光照影响、枝叶遮挡和果实重叠等情况普遍存在,这严重影响了果实的准确识别以及采摘点的精确定位。针对在复杂背景下苹果的…...
【机器学习】聚类(三):原型聚类:高斯混合聚类
文章目录 一、实验介绍1. 算法流程2. 算法解释3. 算法特点4. 应用场景5. 注意事项 二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. 全局调试变量2. 调试函数3. 高斯密度函数(phi)4. E步(getExpectation)…...
线上ES集群参数配置引起的业务异常案例分析
本文介绍了一次排查Elasticsearch node_concurrent_recoveries 引发的性能问题的过程。 一、故障描述 1.1 故障现象 1. 业务反馈 业务部分读请求抛出请求超时的错误。 2. 故障定位信息获取 故障开始时间 19:30左右开始 故障抛出异常日志 错误日志抛出timeout错误。 故障之前…...
【Docker】Docker 仓库管理和Docker Dockerfile
作者简介: 辭七七,目前大二,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖…...
面试必问:如何快速定位BUG?BUG定位技巧及N板斧!
01 定位问题的重要性 很多测试人员可能会说,我的职责就是找到bug,至于找原因并修复,那是开发的事情,关我什么事? 好,我的回答是,如果您只想做一个测试人员最基本最本分的事情,那么可…...
力扣114. 二叉树展开为链表(java,用树模拟链表)
Problem: 114. 二叉树展开为链表 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 1.展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左…...
学生成绩管理系统(python实现)
学生成绩表信息包括学号、姓名、各科课程成绩(语文、数学、英语、政治)和总分。用带头结点的单链表管理学生成绩表,每个学生的信息依次从键盘输入,并根据需要进行插入、删除、排序、输出等操作。 import json# 初始化系统 studen…...
May协程库实战:构建10万并发连接的Echo服务器
May协程库实战:构建10万并发连接的Echo服务器 【免费下载链接】may rust stackful coroutine library 项目地址: https://gitcode.com/gh_mirrors/ma/may May是一个基于Rust的stackful协程库,它提供了轻量级的并发编程能力,特别适合构…...
Gemma-3-12B-IT精彩案例分享:从初学者提问到完整函数实现的全过程
Gemma-3-12B-IT精彩案例分享:从初学者提问到完整函数实现的全过程 1. 引言:为什么这个案例值得一看? 如果你正在寻找一个能真正帮你写代码、解答疑惑的AI助手,那么今天分享的这个案例可能会让你眼前一亮。我们不是要讲空洞的理论…...
Hunyuan模型支持哪些语言?38语种覆盖实测入门必看
Hunyuan模型支持哪些语言?38语种覆盖实测入门必看 腾讯混元HY-MT1.5-1.8B翻译模型实测:从中文到粤语,从英文到阿拉伯语,38种语言无缝转换 1. 快速了解Hunyuan翻译模型 HY-MT1.5-1.8B是腾讯混元团队专门为机器翻译开发的高性能模型…...
Vue3 + Element Plus 侧边栏折叠实战:从布局适配到图标切换的完整避坑指南
Vue3 Element Plus 侧边栏折叠实战:从布局适配到图标切换的完整避坑指南 后台管理系统的侧边导航栏折叠功能,看似简单实则暗藏玄机。最近在重构公司内部运营平台时,我深刻体会到从Vue2迁移到Vue3后,Element Plus带来的变化远比想…...
期望、方差、协方差:从定义到核心性质的全方位解析
1. 期望:理解随机变量的"平均水平" 期望是概率论中最基础也最重要的概念之一,它描述了一个随机变量在大量重复试验中取值的"平均水平"。想象你每天记录午餐的花费,一个月后计算平均花费,这个平均值就是花费这…...
从CPU到外设:实战解析AHB5总线在GD32/RISC-V SoC中的互连设计与性能调优
AHB5总线在RISC-V SoC中的高效互连设计与性能调优实战 在当今嵌入式系统设计中,总线架构的选择与优化直接影响着整个芯片的性能表现。作为AMBA总线家族中的重要成员,AHB5协议凭借其高效率、低延迟的特性,已成为众多RISC-V SoC设计的首选互连方…...
Halcon灰度投影实战:用‘简单’模式搞定二维码的快速粗定位
Halcon灰度投影实战:用‘简单’模式搞定二维码的快速粗定位 在工业视觉检测中,二维码的快速定位一直是个让人头疼的问题。产线上传送带飞速运转,零件位置飘忽不定,背景干扰层出不穷——传统的Blob分析在这种场景下往往力不从心。而…...
2026奇点大会唯一未删减技术圆桌实录(含OpenAI、Ethereum基金会、中科院自动化所三方闭门共识):AGI主权归属的区块链终局方案
第一章:2026奇点智能技术大会:AGI与区块链 2026奇点智能技术大会(https://ml-summit.org) AGI系统与去中心化身份的协同演进 在2026奇点智能技术大会上,核心议题之一是通用人工智能(AGI)如何依托区块链构建可信自主代…...
手把手教你用FS8A15S8设计小风扇:从电路图到实现多档升压(5.5V/6.8V/8V)
基于FS8A15S8的智能小风扇开发实战:多档升压与安全保护全解析 在创客社区和嵌入式开发领域,小型便携设备的电源管理一直是热门话题。最近一年,支持多档位电压输出的手持小风扇方案在DIY爱好者中特别流行——不仅因为其实用性,更因…...
ADS 2023 保姆级教程:从巴特沃斯到椭圆,手把手仿真你的第一个低通滤波器
ADS 2023 实战指南:三步完成低通滤波器设计与仿真 刚打开ADS软件时,那些密密麻麻的工具栏和陌生的术语确实容易让人望而生畏。但别担心,现代EDA工具早已将复杂的滤波器设计过程封装成了可视化操作。就像用智能手机拍照不需要理解图像传感器原…...
