嘉宾 | 黄俊洪 腾讯云副总裁
整理 | 卢鑫旺
51CTO读者成长计划社群招募,咨询小助手(微信号:TTalkxiaozhuli)
过去10年间,云计算已经从单一的IT服务演变成为新一代的软件架构范式,进而赋能企业管理和生产模式的创新。云计算也经历了从“资源上云”到“深度用云”的发展阶段。
在云原生时代,应用全生命周期管理之道成为企业关注的一个焦点。在腾讯云TVP与51CTO联合主办的LeaTech全球CTO领导力峰会上,腾讯云副总裁黄俊洪带来了《云原生时代下,应用全生命周期管理之道》的主题演讲,从数字化转型新时代的背景切入,探讨如何进行云原生应用管理以充分释放云原生技术红利。
此次分享的内容分为以下三个方面:
数字化转型新时代,云原生构建新范式
布局云原生,释放研效增长空间
共建生态,助力全行业数字化转型

受疫情和国际大环境的影响,我国的云服务市场增长有所放缓,根据2021年数据统计,中国云计算市场规模约在3000多亿,虽然增速达48.4%,但是相比于2020年已减少了8.3%。在经历了2020年的井喷期后,公有云服务市场整体增速放缓,从原来的高速增长期进入瓶颈期,但是我们也不必悲观,根据国际数据公司IDC报告统计数据,随着企业数字化转型的深入推进,公有云市场迎来了新的机遇。
目前,我国已形成以珠三角为首的11个大城市群的数字经济基本盘。从2021年开始,在长江中游中部数字经济带也出现了增长尤为突出的三个城市群,最近两年平均增速均达到124%,可以说已成为数字化转型重要的增长源。在全国范围内,企业数字化转型也为整个云市场带来了源源不断的新活力。
在企业的数字化转型推进过程中,构建以云计算为底座的数字基础设施,实现IT架构的现代化改造,已经成为了一个必然趋势。云原生作为下一代云计算的技术内核,以其独立高效、弹性扩展等独特优势也成为了充分发挥云效能的最佳实践路径。而伴随着云原生技术和能力的逐步成熟以及新经济的推动,企业 IT 要素不断变革,上云用云逐步迈入崭新的发展阶段。

从上面的数据可以看到,我国现在各个行业的IT基础架构向云迁移已经成为主流趋势,各个行业的企业上云率不断提升。在传统行业如工业,当前云的部署率已达到45%。此外国际权威机构Forrester也预测,2022年将有50%的企业开发团队会转向整合的DevOps工具链,今年,我们也可以看到一站式的研发管理平台和服务的蓬勃发展,这也间接印证了Forrester之前的预测。
腾讯是云原生技术的坚定拥护者,也是最早布局云原生业务的厂商之一。早在2015年Docker和K8s刚推出时,腾讯社交业务和部分游戏业务就开始使用这两项技术。2017年,腾讯基于内部积累的经验,对公有云客户推出了容器服务TKE和云函数服务SCF,并逐步推出其他公有云原生服务。2019年,腾讯决定把内部的海量自研业务包括社交、游戏、内容等业务全面搬上云端,并完成云原生改造。2022年,腾讯自研业务初步完成云原生技术改造,自研业务上云规模已经突破5000万核、累计节省成本超过30亿。
另一方面,自研业务上云,也让腾讯建立起面向未来的技术架构和研发体系。全面云原生不但提升了我们的资源利用率,也让腾讯具备了更好的弹性扩展的能力,能够为内部自研业务的高速发展提供有力的支撑。利用云上丰富的产品和能力,业务开发的敏捷度也得到了进一步提升。比如最近两年的明星产品腾讯会议和视频号,都是在云上成长起来的。通过腾讯云弹性伸缩扩展能力,腾讯会议扛住了千万级PCU,视频号也借助云直播PaaS能力,快速上线了众多创新功能,同时架构优化以及编解码端的不断改进,使得直播带宽开销相比于之前降低了30%,提升效果非常明显。

腾讯云在云原生上的布局可谓百花齐放,从计算云原生、架构云原生、安全云原生,到上层开发云原生和数据云原生等等,其中云原生的应用管理是腾讯云在开发云原生领域布局的重要一环。
作为技术管理者,在应用管理方面遇到的挑战往往是在落地云原生技术时,面临云原生技术红利无法完全释放的问题。背后的原因往往是各个团队都按照自己的理解和知识去独立地使用云原生技术,缺乏统一的标准和规范,发展一段时间后就会形成很多互相割裂的技术栈。研发、交付、运维不够标准化,企业也缺乏配合标准落地的工具体系支撑,导致出台的标准和规范也只能悬在空中难以落地。最终导致了上云效果不佳。
而对于研发人员来说,这个挑战往往来自云原生技术的复杂性及心智负担。

上图中左边是CNCF的云原生landscape,从2017年到2022年应用数量急剧上升,CNCF 2022年的调查报告也显示,近55%的团队认为上云最大的困难是缺乏培训。这意味着要想用好云原生,研发需要不停地学习云原生技术,云原生技术的复杂性十分考验研发人员的学习能力。这种复杂性上升到一定程度会导致研发疲于应付各种新名词、新技术而无暇顾及业务开发,无法高效专注于业务价值的创造,也导致组织培训和招聘成本的上升。
为了解决上面的问题,腾讯眼中的云原生应用管理之道是以应用为中心,在保证资源安全的前提下,为研发人员提供自动化工具,让他们可以低门槛、高效、可靠地完成应用的全生命周期管理,即研发人员能够自主地,声明式完成基础设施交付,简单应用建模,高效可靠完成应用交付和应用运维。

K8s作为云的操作系统,本身肯定是复杂的,但我们可以通过视角分离的方式解决这一复杂性问题。组织的架构团队,作为云原生专家,他们围绕业务,通过模版化的方式建立组织级云原生技术标准,统一应用云原生能力交付,同时也屏蔽了云原生建模时的大部分复杂性。通过云原生标准化治理,屏蔽云原生的复杂性,组织得以充分释放云原生技术红利,也让研发人员能够回归到业务价值的创造上,提升组织的效率。
在云原生时代,基础设施、应用都是声明式维护的。声明式的交付方式是面向过程的交付更可靠的方法。旧时代的面向过程的工具已经不能充分发挥云的可靠性。产研因为操作不当,错发漏发,配置冲突,配置漂移等而造成生产事故的例子屡见不鲜。通过实践 GitOps,Application as Code 等先进理念,我们建立了声明式的交付能力,为组织解决多环境、多集群交付的效率和可靠性问题,从而提升云原生的交付效率和交付质量。
企业应用云原生化,使得传统的监控存在工具孤岛、视角割裂和数据断层问题,建立以应用为中心的混合云统一观测平面就成了首要目标。简单来讲,就是以业务为出发点,建立端到端的全栈可观测能力,这里有两个维度,一个维度是访问流向维度,比如从终端、接入层、数据层等等,这是数据请求流向的;另一个维度是应用分层维度,比如从应用层到操作系统层到协议栈到网络,这是纵向的维度。通过这种多维度的数据收集、统一的建模和分析,我们可以做到全链路的性能监控、智能告警、根因分析、异常检测、故障自愈等目标,真正实现从监控到可观测性的全面升级。
在基础设施交付方面,2022年,通过IaC编排基础设施的HCL成为了GitHub增长最快的语言。背后的原因是,人工“点点点”的方式无法满足大规模云上基础设施管理的需求,IaC通过代码化编排基础设施,配合GitOps实现基础设施的自动化管理,大大提高了云上基础设施的管理效率。
腾讯云CODING在引入IaC能力的同时,强化了企业应用与云产品的链接,让企业能从业务视角出发,建立业务、应用、基础设施的关联,为企业建立业务视角的成本管理基础,在优化基础设施管理效率的同时,提高业务IT成本洞察能力,进一步从技术角度赋能业务。
目前,腾讯云CODING DevOps已上线稳定运行8年,累积超过300万开发者用户,5万家企业团队,服务涵盖互联网、金融、政企等不同行业客户。腾讯云自研的Orbit云原生应用管理平台也已经在金融、医疗、零售等行业积累了不少实践。

依托于腾讯二十余年来服务十亿级海量用户的技术锤炼与服务经验,腾讯产业互联网以云为基座,将音视频、大数据等领先技术能力,与企业微信、腾讯会议、腾讯文档等企业服务应用,针对不同行业特点打造成专业解决方案。同时,充分开放内容号、小程序等内部生态,通过腾讯云启、腾讯千帆等平台计划,联合外部生态伙伴为超过 20 个行业提供超过 300 个行业解决方案,激发实体产业新效能,启动数字经济新引擎,助力各行各业实现数字化升级。
在助力行业的过程中,腾讯云对技术始终保持热情与开放,建立了腾讯云TVP作为与行业技术专家的深度交流平台,定期举办前沿技术探讨、产品深度体验、线下走访交流等活动。同时,腾讯云也推出了腾讯中小企业数字化等级评估系统,帮助企业了解自身的数字化发展程度,从而更好地把握转型的方向。

最后谈一些对未来的展望。Gartner 2023年发布的十大技术趋势之一是平台工程,Gartner认为云原生背景下应具备面向服务的DevOps理念,需要通过平台级能力为服务团队提供DevOps支撑。
研发支撑团队应为开发团队提供工程平台,帮助开发团队屏蔽复杂的底层基础设施。对应的产品能力大致分化为自动化平台、云原生构建、DevSecOps、云原生应用管理。
相信在未来云原生时代下,DevOps能够为企业带来更多生产力的提升,进一步推进产业数字化的转型。

我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在
是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD