首页 > 其他分享 >揭秘10亿+高并发应用如何实现高效稳定的开发和运维

揭秘10亿+高并发应用如何实现高效稳定的开发和运维

时间:2024-06-18 10:12:50浏览次数:26  
标签:原生 10 运维 故障 华为 AppStage 应用 揭秘

本文分享自华为云社区《DTSE Tech Talk | 第60期:构筑云原生时代的应用稳定性》,作者: 华为云社区精选。

本期直播主题是《构筑云原生时代的应用稳定性》,华为云aPaaS DTSE技术布道师韫欣,与开发者们交流了云原生时代的应用挑战、趋势,跟大家分享了华为云应用平台AppStage的实践经验和优秀案例,并展望了智能运维的未来。

云原生时代的应用挑战和趋势

在飞速发展的数字时代,云原生已经成为了许多企业的首选,它不仅提供了灵活性和可扩展性,还为应用程序的稳定性带来了全新的技术革命。企业应用上云经历了三个阶段:

• 第一阶段,应用以“设备”为中心,工程师们看到的是一台台物理服务器,软件是部署在服务器上的进程,硬件和软件相对割裂。

• 第二阶段,以资源为中心,形成了云化的资源池,大幅提升了资源的利用率和使用效率。

• 第三阶段,是从以“资源“为中心走向以“应用” 为中心的云原生阶段,与第二阶段相比,主要区别在于应用的设计和部署方式。云原生应用是指使用微服务架构对应用进行解耦拆分,并以容器形式部署,更加灵活和可扩展,能够更好地发挥公有云的优势,以应对业务的不确定性,带来更高的开发、运维和运营效率。

在这个转变过程中,也会面临一系列的挑战。

• 第一个挑战是云原生时代的技术复杂度比较高,工具非常的碎片化,比如服务的编排与调度、容器化、安全合规等各方面的工具。云原生应用设计、开发、运维过程中,对开发和运维人员的技能要求高,无形中增加了企业的开发成本,降低了开发效率。

• 第二个挑战是大量工作消耗在工程能力构建上,开发人员真正的业务代码开发工作只占20%左右,隐形成本非常高。首先,每个应用构建都要考虑可靠性、可用性、安全、韧性、多云部署等一系列能力,存在重复造轮子的问题,造成了大量工作浪费。其次,国家、行业、企业对安全可信、技术规范等有诸多要求,缺乏统一的平台来支撑落地,每个开发人员对规范的解读不同,实现方式也会有差异,大幅降低了效率。以华为的经验,如果这些问题得以解决,30%以上的隐形工作是可以被节省的。

• 第三个挑战是云原生时代,维护一个复杂且快速变化的系统,会面临一系列的问题,比如碎片化的运维工具、版本的迅速迭代、人工效率低且不够规范等,随着业务链路越发复杂,问题跟踪和定位会越来越困难,业务数据量的增长也会导致数据库治理的问题变得尤为突出。

这一系列的运维问题需要未雨绸缪、提前规划,迫切需要云原生的运维尽快完成数智化转型。

华为云应用平台AppStage实践经验

针对以上挑战,华为对内部云原生应用经验总结提炼后,打造了华为云应用平台AppStage产品,为客户提供了一站式智能运维平台,不仅避免了不同厂商和三方的众多运维工具拼凑的问题,并且围绕无人值守变更、故障全生命周期管理、业务稳定性治理等三大站点可靠性工程 (SRE)的工作内容,来构建自动化和智能化能力,在提高运维效率的同时,也提升了服务质量、优化了应用可靠性。

自动化无人值守变更:帮助企业提升运维效率,减少人为错误

1. 核心理念就是基础设施即代码,将资源、配置、环境、状态等进行声明化定义,避免传统变更理解的差异,可确保任何环境、任何地点执行结果的一致性。在变更自动化的评审、执行和验证过程中,实现全流程的自动化。

2. 通过一系列的变更灰度评估以及中断回滚等保险措施,确保变更过程和结果的安全可信。

3. 部署和变更的过程完全不需要人工干预,减少了人员误操作的可能,保障了变更质量。

通过这些优化,10分钟就能完成一个服务的全新部署,省去了大量的人工时间。华为内部统计,在变更工作中,故障率减少了40%,部署效率提升了30%。

监控与故障管理:全栈可观测性和故障全生命周期管理,降低了业务从故障发生到恢复的时间,提升云原生应用整体服务质量

1. 通过对端、管、云全链路可观测能力,打通数据孤岛,将这些数据有机关联起来。

2. 通过智能化的运维底座,将资源、配置、事件、可观测数据建模管理,配合AIOps智能算法,驱动根因诊断和异常检测等运维的高阶智能化应用。

3. 通过定期业务巡检、监控告警、故障演练等活动,做到故障全生命周期管理,实现1分钟AI异常检测和故障发现,5分钟故障根因诊断定界定位,并基于预编排的故障恢复模板和微服务治理体系,实现核心业务场景10分钟故障快速恢复。

可用性与连续性管理:通过混沌工程演练,实现确定性恢复,助力可用性达到99.99%

1. 按IaaS-PaaS-SaaS分解可靠性要求,形成应用稳定性指标体系,对应用可用性进行度量与治理。

2. 构建混沌工程演练平台,提供了50多种故障演练场景,80多种故障注入的方法,来充分验证业务和应用可靠性。

3. 通过故障演练发现问题,主动提升生产环境的稳定性,做到问题的提前预防和发现。

数据库治理:WiseDBA提供可信数据库治理方案,快速诊断数据库疑难问题

1. 支持RDS、GaussDB for MySQL、GaussDB for Cassandra等多个数据库引擎的管理。

2. 可对纳管数据库进行IT化巡检和管理,针对数据库慢查询进行分级治理,建立风险评估体系。

3. 支持DBDesigner、SQL审核等正向设计,从开发阶段减少风险问题。

4. 提供数据查询、数据隐私白名单管理等能力。

FinOps:成本治理确保应用稳定的前提下,帮助企业降本增效

随着业务的快速发展,企业在华为云上的各类资源消耗也相应增长,需要对各类资源的使用情况进行有效管理,管控成本。

1. 应用平台AppStage资源管理系统可构建资源台账,提供成本可视化能力,清晰展示预算、资源用量和基于预测的趋势分析。

2. 识别成本浪费和异常增长的资源类型,并进行异常实时提醒。

3. 对资源进行智能检测,为业务定期生成资源使用报告,推荐资源优化方案,同时给出成本收益分析,支撑成本优化目标,提升资源利用率。

华为云应用平台AppStage案例分享

• 案例一:守护终端云全球数亿用户的全场景智慧生活体验

应用平台AppStage支撑了华为终端云服务11亿+华为用户和50+应用的托管和运维,助力全球业务可用性连续多年达到99.99%,持续保持优质、安全的用户体验,助力华为终端云服务活跃用户长期保持稳健增长。

• 案例二:XX公司基于应用平台重构软件生产能力,成为工业软件研发领域的领头羊

XX公司通过应用平台AppStage实现运维的统一入口、统一工具、统一数据,形成高效智能的运维体系,全面提升了软件工程协作效率,降低开发人员门槛,助力版本发布效率提升30%,问题定位时长降低45%,运维协作效率提升15%,维护总成本降低10%。

未来展望

运维大模型开启未来运维新时代

运维大模型:利用大语言模型的自然语言理解能力、推理规划能力和任务执行能力,从五个方面对一站式智能运维赋能

• 构建运维助手:帮助工程师解答日常运维工作各种问题,提升效率

• 助力巡检监控:自动执行巡检任务,实时监控指标,及时发现异常

• 帮助问题管理:自动探索分析日志,给出根因诊断,匹配应急方案

• 提供变更方案:分析变更要求,分解任务,编写脚本,协助测试执行

• 开发运维报表:自动分析运维数据,生成运维报表,支持自然语言互动调整

知识图谱与数字机器人融合,推动运维智能化持续发展

运维知识图谱:通过将业务数据分析提炼、抽取融合,加工成运维知识图谱,并沉淀算法能力,以支撑异常检测和根因诊断等高阶运维活动。

智能运维数字机器人:利用智能运维数字机器人(RPA)准确匹配恢复方案,并通过调用工具(API)做故障自愈和应急。

 

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

 

标签:原生,10,运维,故障,华为,AppStage,应用,揭秘
From: https://www.cnblogs.com/huaweiyun/p/18253774

相关文章

  • IT入门知识第五部分《前端开发》(5/10)
    目录引言介绍前端开发的重要性网页技术的演变现代前端开发的特点1.前端技术概述定义前端开发前端开发的主要职责前端开发与用户体验的关系1.1前端开发的重要性用户界面和交互的重要性响应式设计的需求1.2前端开发的核心技能熟悉Web标准和最佳实践跨浏览器兼容......
  • 6.10
    接昨天的补充代码DetailView.vue<template>  <div>   <divv-html="text"></div>  </div> </template>  <script> exportdefault{  data(){   return{    text:''   };  ......
  • Lambda表达式:会这10招
    引言在Java8之前,Java的语法相对冗长,尤其是在处理集合操作和多线程编程时,常常需要大量的样板代码。自Java8引入Lambda表达式以来,Java编程变得更加简洁和高效,不仅减少了代码量,还提升了代码的可读性和可维护性。今天就来聊聊几种工作中很常用的Lambda表达式应用场景,走过路过别错......
  • 6.16 10
    importtkinterastkfromtkinterimportttk,messageboxfromPILimportImage,ImageTkimportmysql.connectorimportdb_connectiondefupdate_mistake(conn,mistake_id,question,error_info,answer_analysis,thoughts,source,reason,difficulty,......
  • 6.17 10
    <?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layou......
  • 每日一题-24-06-17 (P10218)(加倍!)
    看到异或直接想到线性基和trie很明显是trie从高到低一位位考虑,如果两个儿子都有,想使这一位为1,必须有一个变成加法然后就便利一下trie,记录一下剩余的体力和最小的加法的数就好了#include<bits/stdc++.h>usingnamespacestd;#definell__int128#definelstr[u][0]#define......
  • centos 7无需token编译安装freeswitch 1.10.11 ——筑梦之路
    准备工作安装编译工具和依赖包yumupdate-ysudoyuminstallepel-releasevimtcpdumpnet-tools.x86_64-ysudoyuminstallgcc-c++sqlite-develzlib-devellibcurl-develpcre-develspeex-develldns-devellibedit-developenssl-develgit-yyuminstallyasm......
  • 每日一题-24-06-17 (P10217)
    今年省选题,考场上竟然没做出来今天似乎直接一眼出来了就是枚举下\(m\)模\(n\)的余数然后解个方程即可#include<bits/stdc++.h>usingnamespacestd;#definelllonglongintT,n,X,Y;intx[100005],y[100005];lls[100005],t[100005],res,k;llsub_down(llx,lly){......
  • 代码随想录第10天 | 栈与队列part01
    题目:232.用栈实现队列思路:1.使用双栈,一个作为输入,一个作为输出代码:classMyQueue{private:stack<int>A,B;public:MyQueue(){}voidpush(intx){A.push(x);}intpop(){//删除A栈底元素并返回元素intresult=this->p......
  • 2024华为OD机试真题-出租车计费 、靠谱的车-(C++/Python)-C卷D卷-100分
    2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述:程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。比如:23再多......