草庐IT

华为云确定性运维,为政务云平台稳定可靠运行保驾护航

华为云开发者社区 2023-03-28 原文
摘要:在“一切皆服务”的战略下,华为云基于积累的综合治理经验,提出并实践了“确定性运维”方案。

本文分享自华为云社区《华为云确定性运维,为政务云平台稳定可靠运行保驾护航》,作者: SRE确定性运维 。

当人们要办护照,希望户政APP 是可用的;当人们要取公积金,希望网上行政大厅是可用的;当人们要扫场所码,希望健康码APP 是可用的……

近年来, 数字化经济下, 云上业务规模的快速增长与深入云化改造, 让系统的复杂度不断提升, 对云上的运维也提出了新的挑战。6 月23 日,国务院印发《国务院关于加强数字政府建设的指导意见》(下面简称《指导意见》),指出“持续优化利企便民数字化服务,提升公共服务能力。”电子政务已经与我们生活的方方面面紧密联系在了一起,持续稳定地提供服务是政务系统的目标,也是面临的挑战。各厂家的云平台早就引入了微服务、云原生技术,也早就用上了DevOps 开始模式,业务规模也在快速增长。

面对这些挑战,在“一切皆服务”的战略下,华为云基于积累的综合治理经验,提出并实践了“确定性运维”方案,继在公有云平台取得了很好的应用效果后,希望也能帮助政府用好云、管好云,增强政务云平台的稳定可靠性,满足政府对一站式服务和业务全流程贯通的需求。

什么是“确定性运维”

稳定可靠是平台的生产力与核心竞争力。华为云首先通过高质量的产品开发,严谨的运维流程和制度来降低故障的概率,在持续挑战零故障的同时,采用一定的技术手段对可能发生的故障,将间隔、影响范围及故障恢复时间做到可防、可控、可治,把云化带来的“不确定性”通过运维变成“确定性”。

基于开发团队与运维团队高度协同的合作模式,通过设计和落地高可用架构的产品来提升云平台的可靠性、可恢复性以及缩小故障影响范围,并采用动态清零的风控方法阻断风险。为给客户提供低成本、高质量、高效率的运维服务,华为云重点投入并开发了高度智能的运维服务平台。

其中,高可用架构目的是做到现网少出事(变更自动化、灰度发布、故障自愈、冗余设计、安全生产)、故障恢复快(容灾双活、过载流控、服务依赖管理、应急预案与演练,变更回退)、不出恶性事件(基于站点的架构、随机分片、区域隔离、可用区独立)。

动态清零风控是用AI 能力实现风险冒泡,并及时清除;持续提升监控、定界与快速恢复能力;构建混沌工程等主动运维能力;用数据智能支撑持续的自我改进。

高度智能的运维框架依托数据中台,结合先进的算法,实现智能告警、智能故障定界、自动恢复等。

“确定性运维”模式的应用

《指导意见》指出“到2025年,与政府治理能力现代化相适应的数字政府顶层设计更加完善、统筹协调机制更加健全”。“坚持整体协同。强化系统观念,加强系统集成,全面提升数字政府集约化建设水平,统筹推进技术融合、业务融合、数据融合……”。

政务云作为保障城市稳定运行的数字底座和基石,其承载的民生应用也越来越多,每个应用的架构稳定性能力、弹性能力、监控能力各不相同,如何加强一个“城市”的统筹能力,提升整体数字化、智能化水平?

华为云“确定性运维”实践中有一个“直营与加盟”的运作模式,目的是为了“一体化”管理云上200多个云服务应用,对运维流程、工具、人力进行治理,做到一套管理体系、一套技术标准、一个统一的平台,最终实现高质量的运维结果。其原则有四条:
1、运维指挥中心和产品技术能力中心解耦;
2、“直营店”:部分业务由运维中心直接管理和构建能力;
3、“加盟店”:部分业务由伙伴团队管理和构建能力,遵循运维中心“行管”;
4、“统一平台”:所有业务逐步纳管到统一运维平台上进行监控。

在管理政务云上大量应用的时候,可以参考以下方式:
1、组建运维中心,梳理分工,区分“直营”或“加盟”。针对负责关键应用技术运维的团队,完成对关键应用的“直营”。重点组建可用性技术团队统一构建关键能力和标准,组建运维管理团队对所有应用的稳定性、账号安全等进行管理;
2、梳理运维流程体系,梳理可用性架构标准和运维平台对接标准,全网统一推行;
3、构建统一的智能运维平台,逐步完成应用统一纳管、统一监控、统一大屏展示;
4、例行召集运维经理联席会,对“加盟”团队的运维质量和能力建设加强管理。

“确定性运维”成熟度模型的应用

为了帮助云上应用提升运维能力,“确定性运维”有一套成熟度模型帮助云上应用对自身能力进行评估,并拟定能力提升目标。比如“基本运维”能力向“标准化运维”进阶,然后再进一步向“SRE 转型”,进而再提升到“初步确定性”。运维能力提升不仅是运维团队的工作,还需要拉通产研等周边团队共同运作,是一个“一把手”工程。基于实践经验,第一级到第二级通常要三个月,第二级升级到第三级至少半年以上,第三级到第四级则需要一年以上,第四级到第五级则是更加复杂而细致的工作,需要一个长期的投入。

在应用向“确定性”进阶的过程中,可以先针对具体的能力项进行评估,灵活选择待优化的项目。基于实践经验,目前政务云处于应用大量上云的过程中,在第一阶段应优先完善“上线管理”,“监控设计”能力,并同步梳理“应急恢复能力”;此外,还需同步完善ITSM等运维工具,提升运维的标准化和效率。基于第一阶段,下一阶段可以逐步着手改善产品的可用性架构,同步构建“混沌工程”,如此可尽可能地提升效率。

云上运维在实践中能够发挥价值,背后也离不开工具、运作机制的支撑。随着政务应用上云,需要将一切风险因素考虑在内,华为云确定性运维解决方案基于在公有云平台的实战演练经验,构建了一套完整的面向政务云云上应用的一体化运维服务,以此来保障政务云云上应用的持续稳定可靠运行。

未来,华为云将持续关注政府侧的数字化应用需求,与行业伙伴共同探讨运维能力升级路径与方法,共同构建“确定性”的运维世界,以匠心打磨极致服务,努力解决政府在用云、管云中的“疑难杂症”,为政务云平台稳定可靠运行保驾护航。

 

点击关注,第一时间了解华为云新鲜技术~

有关华为云确定性运维,为政务云平台稳定可靠运行保驾护航的更多相关文章

  1. ruby - 即时确定方法的可见性 - 2

    我正在编写一个方法,它将在一个类中定义一个实例方法;类似于attr_accessor:classFoocustom_method(:foo)end我通过将custom_method函数添加到Module模块并使用define_method定义方法来实现它,效果很好。但我无法弄清楚如何考虑类(class)的可见性属性。例如,在下面的类中classFoocustom_method(:foo)privatecustom_method(:bar)end第一个生成的方法(foo)必须是公共(public)的,第二个(bar)必须是私有(private)的。我怎么做?或者,如何找到调用我的cust

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  4. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  5. ruby - 确定 ruby​​ 脚本是否已经在运行 - 2

    有没有一种简单的方法可以判断ruby​​脚本是否已经在运行,然后适本地处理它?例如:我有一个名为really_long_script.rb的脚本。我让它每5分钟运行一次。当它运行时,我想看看之前运行的是否还在运行,然后停止第二个脚本的执行。有什么想法吗? 最佳答案 ps是一种非常糟糕的方法,并且可能会出现竞争条件。传统的Unix/Linux方法是将PID写入文件(通常在/var/run中)并在启动时检查该文件是否存在。例如pid文件位于/var/run/myscript.pid然后你会在运行程序之前检查它是否存在。有一些技巧可以避免

  6. ruby-on-rails - Ruby 的 'open_uri' 是否在读取或失败后可靠地关闭套接字? - 2

    一段时间以来,我一直在使用open_uri下拉ftp路径作为数据源,但突然发现我几乎连续不断地收到“530抱歉,允许的最大客户端数(95)已经连接。”我不确定我的代码是否有问题,或者是否是其他人在访问服务器,不幸的是,我无法真正确定谁有问题。本质上,我正在读取FTPURI:defself.read_uri(uri)beginuri=open(uri).readuri=="Error"?nil:urirescueOpenURI::HTTPErrornilendend我猜我需要在这里添加一些额外的错误处理代码...我想确保我采取一切预防措施来关闭所有连接,这样我的连接就不是问题所在,但是我

  7. ruby - 确定字符串的结尾是否与单独的字符串的开头重叠 - 2

    我想查找字符串的结尾是否与单独字符串的开头重叠。例如,如果我有这两个字符串:string_1='Peoplesaynothingisimpossible,butI'string_2='butIdonothingeveryday.'如何找到string_1末尾的“butI”部分与string_2开头相同?我可以编写一个方法来遍历这两个字符串,但我希望得到一个包含我错过的Ruby字符串方法或Ruby习惯用法的答案。 最佳答案 将MARKER设置为一些从未出现在您的string_1和string_2中的字符串。有一些方法可以动态地做到这一

  8. 华为OD机试真题 C++ 实现【带传送阵的矩阵游离】【2023 Q2 | 200分】 - 2

            所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。

  9. 西安华为OD面试体验 - 2

    西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,

  10. ruby - 如何确定是否在 Ruby 中传递了可选参数 - 2

    如果我在Ruby中有以下方法:deffoo(arg1,arg2="bar")putsarg1putsarg2end有没有办法确定用户是否在方法中为arg2传递了一个值?显然,我可以将ifarg2=="bar"添加到方法中,但这并没有捕捉到用户自己手动传入"bar"的情况。当然,我可以将默认值设置为任何用户都不会传入的内容,但这样很快就会变得非常丑陋。那里有什么优雅的东西吗? 最佳答案 deffoo(arg1,arg2=(arg2_not_passed=true;"bar"))putsarg1putsarg2puts'arg2wasp

随机推荐