20年的大厂技术总监给云原生从业者的建议

云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生的英文可拆解为Cloud和Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序设计之初就被考虑部署到云的环境,为云而生,在云上运行,并充分利用和发挥云平台的弹性和分布式架构的优势。

概括成一句话:云原生就是为云而生、以应用为中心的现代应用新范式。

41efc6a6cbe3110422bf5e337478bc56.png

云原生的技术特征

这种新的云计算范式具有以下特征。

其一,云原生除具有分布式能力外,还具有基于云的自动化资源弹性能力。

其二,不绑定任何技术,即云原生可以由任何一种语言的技术栈实现,如C++技术栈 或者Golang技术栈。只要该技术能够解决云原生场景下的问题,都可以考虑纳入云原生技术体系。

其三,不对适用的业务领域加以限制,云原生适用于所有需要数字化的领域。

其四,云原生不仅涉及技术变革,还会引发商业模式、产品和组织等的变革。

fcb8a66f3896350904908d8e70a74668.png

为何需要云原生

为什么会出现云原生这种新范式呢?下面来看以下几个场景。

场景1:用户用智能手机打开某网站的商品推荐页面,兴趣盎然地浏览着页面展示的商品,还时不时地进入虚拟直播间,观看导购的讲解,突然看中一件非常漂亮的衣服,便毫不犹豫地将衣服加入购物车系统,并直接通过第三方支付系统支付,也许下午就能在家收到这件漂亮的衣服了。

场景2:小王是个上班族,吃腻了公司食堂的饭菜,于是登录某外卖App订餐,没过多久,热乎乎的食物就经由外卖员送到了他的手中。

这些场景已司空见惯,人们的生活已经严重地依赖于数字化工具了,但这些为了提高生活质量的App背后是庞大的IT系统。    

再来看这样一个场景。

场景3:比尔是一家著名电子商务公司的软件工程师,刚刚从工单系统那里接到一项棘手的任务,有大量的终端用户投诉“无法在App上下单了”。虽然事情紧急,但是比尔不得不从复杂的系统链路中寻找蛛丝马迹来修复后台的服务,经过一天的排查,最终发现故障的原因是流量过载,只需添加机器就可以解决。对这种规模的电商而言,这是一个严重的事故,一天至少损失上亿元。

这就是现代IT系统复杂性现状的一瞥。回过头来,为什么需要这么长时间的排查呢?

其一,现代软件系统结构大都很复杂,就像一个大型生物,比如人体,那么对大型系统的问题排查就类似于在不开刀、不使用核磁共振、不化验等情况下了解疾病的原因。

其二,现代软件系统在其生命周期内的新技术需求或功能需求层出不穷,这也使得现代软件系统越来越复杂,排查的路径越来越长,而IT投入是相对滞后的,其稳定性朝着失控方向发展。

比尔得知这个电商应用运行在云上时,很好奇为什么还会有流量过载的问题。

云关心的是CPU、内存等资源的池化和虚拟化,并不关心在虚拟机操作系统上是如何 开发、运维应用程序的。应用程序是运行在操作系统之上为用户提供服务的进程,比如提供订单服务的程序。应用程序无法直接管理云。应用和云之间出现了一个断层,这个空白区是由研发团队、运维团队等手工管理的。云对应用本身的资源需求完全是无感的,云无法自己做出扩展,只能由研发团队和运维团队手动拓展,所以应用程序对突发流量无能为力。而应用上云,仅仅是为了节约企业自己搭建机房的成本。

对这类应用而言,其实还有更多故障,比如应用实例因为Bug而崩溃、因为内存不足而拒绝服务、因为网络毛刺而影响服务质量等,而云对这些问题无感,所以云对此无能为力。技术团队努力按产品或者项目计划快速推进研发进度,这就像汽车以120km/h在高速上行驶,而缺陷、故障使得软件就像汽车突然下了匝道,速度又回到了40km/h,整体效率并没有提高,整体成本并没有降低。    

很明显,需要一种技术向上能够为应用上云与稳定运行提供支撑,向下能够实现以应 用维度动态管理云资源(让云对应用的资源需求有感知)的能力。云原生正处于这个断层的 位置,提供了一种运用云算力的新方式。

所以,云原生使得现代化应用程序能够运行在云上,利用云的优势(而不需要理会硬件故障)在应用程序出现故障时自愈,并在突发流量发生时无须担心算力不足的问题。云原生大大地降低了成本并提高了效率。

aef4f6f6c2bcbf2948b866f5e2f884c2.png

云原生技术的本质

注意,云原生的电商应用在终端用户侧依然与原先的非云原生的电商应用在外观上及使用体验上保持一致,功能并没有发生变化。可以理解为,云原生平台是一种“透明”的基 础设施,即电商应用还是运行在操作系统之上,操作系统运行应用的基本抽象还是进程。也许有人会问,不是说应用会运行在云原生平台之“上”吗?这个“上”的意思是管理的关系,而不是运行态堆栈的上下层级关系,云原生系统更像管理应用进程的一组非应用进程,比如Kubernetes的本地“运维代理”—Kubelet这样的进程。在实现层面,云原生系统和应用程序从操作系统角度来看都是一样的。在架构层面,云原生系统是分布式的,所以从外观看,它是云的更高级形态。不同于传统的运维平台,它是实实在在的应用运行平台。

对于平台开发者来说,忠告就是:希望你能够沉下心来,不要被现代基础设施的“外壳”所迷惑,你依然需要刻苦地钻研操作系统内部的东西,比如内存管理、进程管理、多线程、网络堆栈结构、存储原理等。因为无论现在的云原生多么先进,也只是在架构思想上先进,底层的软件技术并没有实质的变化。你也应该清楚:云原生平台依旧是基于操作系统构建的现代分布式程序,你需要扎实的操作系统编程知识来构建这种新型的平台。

对于业务应用开发者来说,忠告就是:希望你能够刻苦钻研业务建模、应用架构等,如DDD、企业应用架构、业务分布式架构等。因为无论现在的云原生多么先进,它的初衷仍旧是让用户更加充分地聚焦于业务应用领域本身,而不是基础设施。

对于IT运维人员来说,忠告就是:希望你能够沉下心来,将思维从对具体运维对象的管理转变为对基于云原生抽象对象的管理,这将大大减少对千差万别的物理机器的知识依赖,管理方式被替换成统一的、标准的声明性管理方式。这样就不需要学习和掌握差异性部署环境的知识,同时又及时响应了业务的需要。    

对于企业客户而言,忠告就是:不要迷茫,看清云原生的能力,聚焦于商业本质,进一步依托新型IT 工具加持自己的数字化产品,快速创新,使得在线业务发挥经济上的重要作用。对于云原生平台提供商而言,忠告就是:要从市场的真实情况出发,构建能够为客户解决实际场景问题的平台,这才是商业本质。         

本文节选自《云原生落地:产品、架构与商业模式》 

b123763925074b499b06e8df9218d2f1.jpeg    

39856787fee0d4546214ed4031ad5d3d.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/186727.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

micro_ros需要用到的hardware

我没有那么长的线啊,所以就用一个4块5的usb转串口看看 没有那么高档的开发板,就用主流的STM32F103C8T6试试看 这应该就是个仿真器了,一个字不认得都能够看的出来吧

集「才华」与「美貌」于一身的原型设计利器—摹客RP

文章目录 画原型做设计,用摹客RP就够了 初遇摹客再遇摹客RP摹客RP简介与注册摹客RP的突出亮点1️⃣拥有海量矢量图标,满足各种设计场景2️⃣打造高扩展性组件,打破传统组件编辑模式3️⃣海量摹客RP模板例子随意挑选4️⃣实现多人实时协同&…

【ArcGIS Pro微课1000例】0035:栅格影像拼接(dem高程数据)

本实验讲解在ArcGIS Pro中,栅格数据的两种拼接(镶嵌)方法,适用于遥感影像、DOM、DEM、DSM等常见栅格数据。 文章目录 一、加载实验数据二、栅格拼接工具1. 镶嵌2. 镶嵌至新栅格三、注意事项四、拓展阅读一、加载实验数据 加载配套实验数据中的0035.rar中的两个dem数据,如…

Vue项目实战之一----实现分类弹框效果

效果图 实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"js/vue.js"></script><!-- 引入样式 --><link rel"stylesheet&qu…

亚马逊云科技向量数据库助力生成式AI成功落地实践探秘(一) ​

随着大语言模型效果明显提升&#xff0c;其相关的应用不断涌现呈现出越来越火爆的趋势。其中一种比较被广泛关注的技术路线是大语言模型&#xff08;LLM&#xff09;知识召回&#xff08;Knowledge Retrieval&#xff09;的方式&#xff0c;在私域知识问答方面可以很好的弥补通…

RevCol实战:使用RevCol实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

【JUC】一篇通关JUC并发之共享模型

目录 1. 共享带来的问题1-1. 临界区 Critical Section1-2. 竞态条件 Race Condition1-3. synchronized 解决方案 1. 共享带来的问题 1-1. 临界区 Critical Section 一个程序运行多个线程本身是没有问题的问题出在多个线程访问共享资源 多个线程读共享资源其实也没有问题在多个…

线程信息分析,生产环境问题

现象&#xff1a; 应用服务器启动不了 产生原因&#xff1a; 最近升级了&#xff0c;将单线程查询数据变成了多线程查询数据。 分析&#xff1a; 推测一、sql 查询时间太慢导致 排查sql 后发现&#xff0c;不是这个原因 取回线程启动过程的线程信息 发现线程死锁了&…

老牌开源 SVG 编辑器 SVGEdit 是如何架构的?

大家好&#xff0c;我是前端西瓜哥。这次简单看看 SVGEdit 的架构。 SVGEdit 的版本为 7.2.0。 SVGEdit 一款非常老牌的 SVG 图形编辑器&#xff0c;用于编辑处理 SVG&#xff0c;start 数目前是 5.8k。 它的优点在于经过多年的开发&#xff0c;完成度高&#xff0c;较为成熟&a…

Redis key的类型以及命令

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

ubuntu22.04 arrch64版在线安装redis

脚本 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 echo "deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse" >…

『亚马逊云科技产品测评』活动征文|AWS 域名注册、启动与连接 EC2 新实例、端口开放详细教程

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 目录 一、AWS 域名注册 二、AWS 域名解析 三、个人网站 ICP 备案 …

【C语言】函数(四):函数递归与迭代,二者有什么区别

目录 前言递归定义递归的两个必要条件接受一个整型值&#xff08;无符号&#xff09;&#xff0c;按照顺序打印它的每一位使用函数不允许创建临时变量&#xff0c;求字符串“abcd”的长度求n的阶乘求第n个斐波那契数 迭代总结递归与迭代的主要区别用法不同结构不同时间开销不同…

Python基础:JSON保存结构化数据(详解)

1. JSON概念 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;也易于机器解析和生产。   虽然JSON使用JavaScript语法来描述数据对象&#xff0c;但是JSON仍然独立于语言和平台&#xff0c;JSON解…

php获取当前域名方法

使用$_SERVER[HTTP_HOST]变量只获取到域名&#xff1a; $domain $_SERVER[HTTP_HOST]; echo $domain; 获取包含协议和域名的完整URL $protocol isset($_SERVER[HTTPS]) && $_SERVER[HTTPS] on ? https:// : http://; $domain $_SERVER[HTTP_HOST]; $current_url…

PyQt6库和工具库QTDesigner安装与配置

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计12条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

【华为网络-配置-021】- MSTP 多实例配置及安全保护等

要求&#xff1a; 1、vlan 10 从红色链路转发。 2、vlan 20 从黄色链路转发。 一、基础配置 [SW1]vlan batch 10 20 [SW1]interface GigabitEthernet 0/0/1 [SW1-GigabitEthernet0/0/1]port link-type trunk [SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all [SW…

Ubuntu下使用protoBuf

一、protobuf简介&#xff1a; 1.1 protobuf的定义&#xff1a; protobuf是用来干嘛的&#xff1f; protobuf是一种用于 对结构数据进行序列化的工具&#xff0c;从而实现 数据存储和交换。 &#xff08;主要用于网络通信中 收发两端进行消息交互。所谓的“结构数据”是指类…

工具柜与6S管理的协同优势

在现代企业管理中&#xff0c;物料管理是确保生产流程高效、成本控制有效的关键环节。为了更好地实现物料管理目标&#xff0c;企业需要借助先进的技术支持。本文将聚焦于物料管理所需的技术支持&#xff0c;特别关注工具柜与6S管理的协同优势&#xff0c;为企业管理者提供实用…

2023年亚太杯数学建模A题水果采摘机器人的图像识别功能(免费思路)

中国是世界上最大的苹果生产国&#xff0c;年产量约为 3500 万吨。同时&#xff0c;中国也是世界上最大的苹果出口国&#xff0c;世界上每两个苹果中就有一个出口到国。世界上每两个苹果中就有一个来自中国&#xff0c;中国出口的苹果占全球出口量的六分之一以上。来自中国。中…