应用运维——《应用智能运维实践(试读版)》

本文涉及的产品
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
简介: 应用运维保障是软件全生命周期管理过程中的关键环节。软件系统开发上线后,要达到预期的设计目标、稳定服务于目标场景,全靠运维保障支撑。

点击免费下载《应用智能运维实践(试读版)》https://developer.aliyun.com/topic/download?id=1193


本章内容简介


第三次信息技术浪潮推动应用运维技术和产品快速演进,使其在企业经营管理体系中的重要性快速提升。本章概要介绍应用运维的发展历史、核心价值和演进过程。本章从背景起源着手解释应用运维的概念,然后介绍应用运维在企业用户数字体验保障和企业运营等方面的价值,最后梳理应用运维技术伴随软件技术发展历程的演进脉络和其中具有里程碑意义的技术。

1.1  初识应用运维

应用运维保障是软件全生命周期管理过程中的关键环节。软件系统开发上线后,要达到预期的设计目标、稳定服务于目标场景,全靠运维保障支撑。应用运维系统和过程建设是企业建设完整的IT运维管理(IT Operations ManagementITOM)体系的核心。与网络运维、云环境运维、IT基础设施运维相比,应用运维更贴近用户和业务目标。

从解决的目标问题域来看,通常理解的企业应用运维包含能够对应用系统运行期状态进行监控、风险发现和管理、根源问题分析的工具集及与之对应的运维过程。应用监控和运维支撑工具需要对应用服务的目标用户使用情况、应用业务流程执行过程、应用代码执行情况及应用运行依赖的运行环境进行监控、风险监测和告警通知;应用运维过程要能够与企业现有的IT运维体系对接,遵循IT服务管理的最佳实践ITILInformation Technology Infrastructure Library[1],能够与工单管理系统、配置管理数据库(Configuration Management DatabaseCMDB[2]对接,组成从应用风险发现、上报、定位到应用恢复的完整闭环运维管理流程。

随着物联网、大数据、虚拟化、云计算等新一代信息技术的快速发展与应用,以及企业运营对应用系统的依赖增加,应用运维在企业内部的重要性在快速提升,但新技术也使应用复杂度快速增加,企业应用运维面临更严峻的挑战。

1.2  应用运维保障企业应用稳定运行的关键

企业数据中心、云平台、网络存在的价值和意义体现为支撑应用系统为企业的内部、外部目标用户提供持续、稳定的数字服务。如果用户使用的应用系统连接缓慢、不稳定,那么即使数据中心计算能力强悍、云平台管理完善、网络架构优雅也无济于事;如果应用运行持续稳定,那么即使基础设施出现故障也不是大问题。持续提升应用运行期的稳定性和性能以保障用户数字体验流畅,是所有监控、运维管理工作的唯一关键目标。

在数字时代,一切都依赖于应用系统稳定可靠的运行。然而,智能、互联时代的数字信息系统日趋复杂化,应用之间的交互关系密如织网,随着企业经营对信息系统的依赖程度加剧,负载也急剧增加。互联网、物联网、车联网、体域网等网络结构的多样化也使应用系统越来越复杂。这些趋势给应用系统的稳定、可靠保障带来了挑战。系统故障和宕机频率快速升高,人工运维成本飙升。

著名管理咨询公司麦肯锡在名为Measuring the Net’s Growth Dividend的分析报告中指出,20132025年,互联网将帮助中国的GDP增长率提升0.31.0个百分点,经济发展的需要势必推动企业对新型系统架构的需求快速增长。如今,几乎所有企业都面临如何利用新一代信息技术来对外提升企业用户价值、对内优化生产流程的问题。应用系统无疑是这些问题的解决方案的核心。

1. 稳定性决定企业数字战略的成败

如图1-1所示,专业评测网站downdetector.com统计,2018年,Facebook系统全年宕机200 次,YouTube宕机140 次,Google 宕机100 次。每次宕机损失至少100万美元。应用频繁宕机,用户数字体验糟糕,使得企业损失严重。


 

2. 应用性能决定企业的营收

对于今天更加依赖数字系统来实现、提升自身价值的企业来说,应用可用性、用户体验和响应时间等性能指标从未如此重要过。雅虎首席执行官玛丽莎·梅耶尔(Marissa Mayer)曾经做过一个实验:她把页面上的搜索结果从10个增加到30个,希望让用户一次性浏览更多的信息。但是,她发现,这样搜索结果的返回时间从0.4s增加到了0.9s,广告收入下降了20%。梅耶尔将提升在线业务的用户体验总结为:速度为王(Speed Wins)。

image.png

1-1  downdetector.com统计的2018年部分互联网公司全年宕机情况

微软、亚马逊也做过类似的实验。2009年,微软在必应搜索引擎上开展实验,发现当服务响应时间增加到2s时,每个用户带给企业的收益会下降4.3%。由于该实验对公司产生了负面影响,最终不得不终止。亚马逊也发现其主页加载时间每增加100ms就会导致销售额下降1%。对于年营收达数百亿美元的亚马逊而言,1%已是很大的损失。

在智能、互联场景下,在应用云端系统复杂度激增的同时,终端设备的代码量和系统复杂度同步快速增加。如图1-2所示,2014年,大数据平台核心系统Hadoop的代码量为140万行;2015年,Chrome浏览器的代码量为600万行;2016年,波音公司新型787客机的代码量激增到1400万行;2018年,福特F150汽车的代码量达到1.4亿行。一般应用代码量和运维复杂度成正比,而且应用海量代码云、端协同的工作方式给运维带来了新的挑战。

无法抵消信息系统趋于复杂化带来的运维风险,企业数字化营销、数字化生产、数字化管理等战略就是空谈。建设具备全景监控、智能运维能力的应用性能管理系统,保障用户数字体验,提升应用可用性,已成为企业的必然选择。

image.png

1-2  软件系统代码量增长情况

1.3  演进过程

运维、运营在英语中对应同一个单词,即Operation。一般地,运营指对企业经营过程的计划、组织、实施和控制;运维则指对生产依赖工具、设备的运行可用性保障、风险监控、故障排查、性能维护等。第一个提出运维管理概念的是现代经济学之父、英国哲学家亚当·斯密(Adam Smith)。1776年,他在《国富论》中提到:“如果将产品生产工作划分为多个任务去组织,而不是让每个工人从头到尾完成所有任务,将更加高效。”之后,这个理念被亨利·福特用在汽车生产线上,获得了成功。信息技术发展使得企业对IT硬件设备、软件的依赖加剧,IT运维的重要性提升,逐渐演变为独立的技术和管理体系,成为企业经营管理体系中不可缺少的组成部分。

软件发展过程中存在软件性能、稳定性优化等运行期维护问题。在初期,由于缺少运行期监控代码执行过程和性能方法的工具,最初的软件性能、稳定性优化工作主要在软件开发、测试阶段完成。在软件工程科学中,系统化的软件性能和稳定性优化、保障设计、开发、测试方法定义为软件性能工程(Software Performance EngineeringSPE)。

1.3.1  软件性能工程

麻省理工学院计算机科学与工程学院教授查尔斯·森特(Charles E. Leiserson)将软件性能工程定义为一门“让软件代码运行得更快的艺术”,而软件性能工程的概念在软件工程出现13年后,才由L&S计算机技术公司(L&S Computer TechnologyInc.)服务部的康妮·史密斯(Connie U. Smith)博士在1981年发表的论文《通过软件性能工程提高信息系统的生产力》(Increasing Information Systems Productivity by Software Performance Engineering)中首次提出。软件性能工程要求在软件需求调研和设计规划阶段就充分引入工程化思想,考虑运维期可能产生的性能问题和稳定性风险,围绕业务实际需要定义服务质量目标,并量化分析应用上线后计划生命周期内的负载、持续稳定运行时间、运行环境变更等情况,以便指导软件架构设计和详细设计。但是,现实情况是,大多数项目经理和产品经理为了赶工期,忽视软件性能工程前期的需求调研和设计规划,在测试阶段才开始量化评估性能、稳定性指标,并相信在生产环境下通过硬件扩容和增加集群节点的方案可以解决性能问题,导致应用上线后运维成本不可控,应用系统复杂度和负载增加,从而使得情况快速恶化。

软件性能工程是在系统开发生命周期中保障非功能需求中的性能指标(如通量、时延、CPU消耗等)达标的相关技术,在系统工程(System Engineering)中特指系统性能工程(System Performance Engineering);在软件工程中对应软件性能工程(Software Performance Engineering)或应用性能工程(Application Performance Engineering)。随着企业业务成败与数字化应用系统建设成败的相关性逐渐增加,特别是在信息化成熟度较高的行业(如金融、ICT运营商、汽车),应用性能工程在软件全生命周期管理过程中更加重要。

应用性能工程特指针对软件系统非功能需求进行设计、建模、定义、测试、维护,从而保障应用系统交付上线后定义的运行期日常运维服务质量目标(Service Level AgreementSLA)达标。

应用性能工程涵盖范围涉及软件开发和运维支撑体系,与传统以IT服务管理(IT Service Management)、遵循ITIL方法学的IT运维相关。但是,由于应用与基础设施的映射关系逐渐松耦合,且应用运维对于企业的重要程度提升,应用运维(或称为应用/服务性能保障)团队成为一个独立的部门成为趋势。其主要职责包含但不限于以下几方面。

1通过确保系统可以在必要的时间范围内处理交易来增加业务收入。

2)消除由于应用性能目标不达标而需要优化甚至重构开发代码的系统故障。

3)消除因性能问题导致的时延系统部署。

4)消除因性能问题导致的可避免的系统重新工作。

5)消除可避免的系统调优工作。

6)避免额外的、不必要的硬件购置成本。

7)降低因生产性能问题而增加的软件维护成本。

8)降低因受临时性能修复影响而增加的软件维护成本。

9)减少因性能问题而处理系统问题的额外操作开销。

10)通过模拟原型识别未来的瓶颈。

11)提高应用系统的最大负载能力。

完备的软件性能工程可以大幅度降低运行期的软件维护成本,但无法解决软件缺陷、需求变更或突发事件导致的生产上线后的所有运维问题。在IT运维发展的初期,监控管理的对象主要为服务器、网络设备等支撑应用运行环境的基础设施硬件。“不能监控,就无法管理”,由于缺少技术和工具,这个阶段对应用自身运行状态的监控管理发展相对滞后。直到硅谷的软件工程师Lew Cirne开发出第一款应用性能管理(Application Performance ManagementAPM)软件,人们才实现了对用Java语言编写的应用程序的代码执行过程等运行状态的监控。

1.3.2  应用性能管理

1998年,Lew Cirne在美国加州创建了第一家主营业务为企业级应用性能管理软件研发的软件公司Wily Technology[3],面向企业的、用Java语言编写的应用软件提供性能监控分析服务和工具。由此应用运维才真正进入了以工具支撑的企业应用运维时代。Wily Technology2001年时只有50名员工,之后营业额持续增长,2005年的年营业额达到5300万美元,员工近500人,用户覆盖医疗、媒体、电信、零售、政府、金融等领域。2006年,在Wily TechnologyCA Technology3.75亿美元收购后,Wily APM被重新命名为CA APM[4]

APM是建设企业应用性能管理平台,打通开发、运维,实现软件全生命周期管理的核心。诞生之初,APM就已经显现了它在应用运行期发现、排查故障方面的价值和潜力。大数据、互联网、移动化、云计算等新兴信息技术的快速发展使应用系统本身的架构越来越复杂,系统间的交互关联增加。企业直接通过软件服务,对通过互联网面向用户交付服务的需求快速增加。Lew Cirne看到商机,创建了New Relic公司。Lew Cirne抛弃了Wily Technology以提供企业内部应用性能保障为主的经营模式,转而面向公有云、混合云环境下的互联网应用,以软件即服务(Software as a ServiceSaaS)的方式提供网站、应用Web门户和移动应用终端的用户数字体验监控及后台支撑系统管理服务。有意思的是,公司名称“NewRelic”就是Lew Cirne本人名字字母的重组。

另一家具有相当影响力的APM企业是2008年创建于硅谷的AppDynamics。其创始人Jyoti BansalWily Technology的首席架构师。该公司共获得了5轮总计2.06亿美元的投资,2017年被Cisco37亿美元收购,这被认为是Cisco坚定发展其软件业务的策略之一。目前AppDynamics产品归并在Cisco物联网和应用业务线下[5]

目前,市场占有率较高的APM企业是Dynatrace,这家公司于20052月在奥地利林茨创建,20117月被Compuware公司收购,更名为Compuware APM。直到2014年,Thoma Bravo将该产品私有化,并从Compuware剥离,将其重新命名为Dynatrace[6]。近年来,Dynatrace正在逐渐拓展APM产品的边界,提出超越APMBeyond APM)、为企业搭建软件智能平台(Software Intelligent Platform)的理念,重点进行基于人工智能算法的智能化运维研发,利用算法帮助运维人员发现、定位风险。

1.3.3  网站可靠性工程

网站可靠性工程(Site Reliability EngineeringSRE)这个名词来自谷歌员工Ben Treynor Sloss设立的岗位名称,他从2003年开始负责谷歌全球运维,到2016年,其团队规模超过4000人。BenSRE岗位的定义是“软件工程师处理以往称为运维的事情”。由于起源于谷歌,SRE过程和岗位规划比较适合注重用户数字体验保障、系统复杂度高的互联网企业。目前,几乎所有在线用户数上规模的互联网公司都已经规划了SRE岗位。传统行业的企业应用运维也正朝着互联网化演进,尤其是在已经具备直接面向用户提供数字服务能力的企业中。例如,汽车行业中有面向车主提供网联车云服务的车厂;金融行业中有建设了网上银行系统、手机银行系统的银行等。

SRE工程师一半的工作内容是做运维的工作,如处理工单、告警、排查风险,但由于软件系统的复杂度高,SRE工程师的运维目标是实现高度自动化和可自愈的运维体系;另一半的工作内容是规划设计、研发新特性,实现应用自动扩容或收缩适应负载变化、自动配置变更管理、故障自动发现与定位等功能。合格的SRE工程师不但要具备软件工程师的经验和技术基础,而且要具备系统工程师的运维管理经验,有很强的编码和自动控制能力。

区别于传统应用运维,SRE运维的基本思路是通过软件实现所有的日常运维工作。因此,基于软件工程和性能工程解决问题是基本原则。SRE运维的目标并不是要让所有系统和服务达到100%可用的程度,这不太可能。同时,过高的可用性会带来运维工作量和成本的快速提升,而收益未必提升太多,会导致投入产出比降低。SRE工程师需要基于场景与业务部门协商一系列切实可行的KPI,其中对应的量化衡量目标称为服务质量保障目标(Service Level ObjectiveSLO)。为了达成既定的SLOSRE工程师不但需要定义量化监控指标、告警策略和风险应对方案,而且需要与业务部门密切协作。尤其是当出现故障告警、SLO对应指标不达标,并且找不到原因时,大家要坐在一起冷静、客观地分析和定位问题根源,商讨应对策略,不能相互抱怨。当然要做到这点并不容易。

1.3.4  业务流程性能监控管理

SRE类似,应用业务流程性能监控需求起源于互联网公司对用户数字体验监控的场景。由于在互联网运维场景下,业务流程变化速度快,商品促销等数字营销推广的效果与应用平台指定业务流程的性能、稳定性直接相关。因此,监控指定业务流程的执行过程、点击量分布、用户访问数字轨迹就非常必要。最早提供业务流程性能监控功能的是具备网络性能诊断分析(Network Performance Monitoring and Diagnostic[7]产品的软件产品厂商,如RiverbedNetScout。这些厂商的主营业务是提供网络旁路方式,以侦听网络流量、监控网络状态和分析安全稳定性问题,并通过拆包拿到某些应用的性能、业务执行情况等信息,从而监控特定业务的笔数,如手机银行和网上银行的交易量、接口调用次数。这些数据可以帮助运维部门、运营部门监控和管理业务流程的执行状态。但是,这些厂商对VPNhttps加密数据链路的拆包分析能力有限。

APM产品通过提供开发期植入的SDK埋点,或者运行期链路追踪探针追踪指定请求链路的方式,可以更精确地、完整地识别监控业务流程,在系统节点故障告警时,能够快速找到影响用户的业务流程执行链路。这对关联运营KPI和运维服务质量目标、实现目标导向的精益运维非常有帮助。目前,能够提供这方面能力的APM产品包括东软RealSight APM应用智能运维平台[8]Microfocus业务流程监控[9]Germain APM业务流程监控与分析[10]

1.3.5  用户数字体验监控

用户数字体验监控(Digital Experience MonitoringDEM)是应用运维逐渐与基础设施、云平台等运行环境解耦合,紧密围绕用户提供应用服务质量保障能力的新阶段。DEM概念最早出现在信息技术咨询服务公司Gartner关于APM产品魔力象限的报告中。根据Gartner的定义,DEM“是为了优化与应用服务交互的数字代理(人或机器)的操作体验和行为而制定的可用性及性能监控原则”[11],“应用逐渐采用云计算与移动化技术的趋势,推动了企业IT部门转变应用性能监控的方式”。Gartner给出了企业运维团队需要重点关注的驱动需求,具体如下。

1缺少SaaS平台监控运维经验,使得用户经常遭遇服务质量问题,对企业经营造成了影响。

2意识到用户数字体验不只是企业用户最关注的,其对考核企业运营效率、员工工作有效性和回应股东利益关切同样重要。DEM技术能够提供独一无二的方式来提高员工工作效率和提升用户数字体验。

Gartner在市场策略分析报告Gartner’s Strategic Planning Assumption for Its Market Guide States中指出,“截至2023年,60%的数字业务提案中都将要求运维部门汇报用户数字体验,相比现在15%的比例有大幅度的提升。”

DEM强调从用户角度量化监控操作性能、数字轨迹、统计使用习惯与性能指标的变化,通常以用户能够理解的服务质量目标自顶向下关联应用与基础设施指标,构建树形结构逐层细化的监控体系。对企业来说,其主要收益包括:提升从用户端量化监控、评估应用可用性及性能的能力,使得优化用户体验更有针对性;提升对应用SaaS及云服务的性能可见性;聚焦用户终端设备接入性能,更精确地理解和评估数字体验;结合用户情感变化数据和主观体验指标,提前处理风险,提高企业员工的工作效率并降低其工作负荷;对由于技术问题影响业务和企业经营的事故分析定位更准确;提升跨域全面监控能力,提供端到端的全景化应用监控视图。

GartnerDEM定义为评估APM产品的三类功能象限中的关键评估项,其包括数字体验建模(Digital Experience Modeling),应用探查、链路追踪与诊断(Application DiscoveryTracingDiagnosticsADTD)和应用分析(Application AnalyticsAA[12]。随着数字空间和物理空间的加速融合,用户数字体验监控与保障对企业将越来越重要。

具备数字体验监控能力、提供相关工具产品的主要是传统APM厂商和新一代应用智能运维厂商,包括DynatraceAppDynamicsNewRelicLakesideRealSight APM和听云等。

本章小结

应用运维是保障应用软件系统上线后发挥设计价值的过程。从企业实际需求出发,了解应用运维的详细过程和相关技术发展脉络是实践应用运维智能化的基础。本章重点对应用运维自诞生至今发展过程中出现的软件性能工程、应用性能管理、网站可靠性工程、业务流程性能监控管理和用户数字体验监控几个具有里程碑意义的技术及对应的工具、厂商进行了总结归纳。



相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
1天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维在现代IT基础设施中的应用与价值####
本文探讨了智能化运维(AIOps)在现代IT基础设施管理中的实际应用、面临的挑战及其带来的深远影响。通过引入先进的算法和机器学习模型,智能化运维不仅提高了故障检测与响应的速度,还显著优化了资源配置,降低了运营成本,为企业数字化转型提供了强有力的技术支撑。 ####
|
1天前
|
机器学习/深度学习 运维 监控
智能化运维:从被动响应到主动预防的转型之路####
本文深入探讨了智能化运维(AIOps)如何引领信息技术管理从传统的被动响应模式向主动预防机制转变,强调了大数据、人工智能算法与机器学习技术在提升系统稳定性和效率中的关键作用。通过分析智能化运维的核心价值、实施策略及面临的挑战,本文为读者揭示了一个更加智能、高效且灵活的IT运维未来蓝图。 ####
|
4天前
|
机器学习/深度学习 人工智能 运维
智能化运维:从被动响应到主动预防####
【10月更文挑战第29天】 本文探讨智能化运维(AIOps)如何通过融合大数据、机器学习与自动化技术,推动IT运维管理从传统的被动响应模式向主动预防机制转变。不同于传统摘要概述全文内容的方式,本文摘要旨在直接揭示智能化运维的核心价值——利用智能算法预测潜在故障,减少系统停机时间,提升运维效率与服务质量,同时强调其在现代企业IT架构中的关键作用。 ####
34 9
|
5天前
|
数据采集 机器学习/深度学习 运维
智能化运维在现代IT系统中的应用与挑战####
【10月更文挑战第29天】 本文探讨了智能化运维(AIOps)在现代IT系统中的重要作用及其面临的主要挑战。通过引入机器学习和大数据分析,智能化运维能显著提高系统稳定性、降低运营成本,并增强故障预测能力。然而,数据质量、技术整合及安全性等问题仍是其广泛应用的主要障碍。本文详细分析了这些挑战,并提出了相应的解决方案和未来发展趋势。 ####
23 5
|
4天前
|
机器学习/深度学习 人工智能 运维
智能化运维:从传统到AIOps的转型之路####
本文探讨了智能化运维(AIOps)的兴起背景、核心价值及其对现代IT运维模式的深刻影响。通过分析传统运维面临的挑战,阐述了AIOps如何利用大数据、机器学习技术实现故障预测、自动化处理与决策支持,进而提升运维效率和服务质量。文章还概述了实施AIOps的关键步骤与面临的主要挑战,为组织向智能化运维转型提供参考路径。 ####
|
6天前
|
人工智能 运维 监控
构建高效运维体系:理论与实践的深度融合####
本文旨在探讨高效IT运维体系的构建策略,通过理论框架与实际案例并重的方式,深入剖析了现代企业面临的运维挑战。文章开篇概述了当前运维领域的新趋势,包括自动化、智能化及DevOps文化的兴起,随后详细阐述了如何将这些先进理念融入日常运维管理中,形成一套既灵活又稳定的运维机制。特别地,文中强调了数据驱动决策的重要性,以及在快速迭代的技术环境中保持持续学习与适应的必要性。最终,通过对比分析几个典型企业的运维转型实例,提炼出可复制的成功模式,为读者提供具有实操性的指导建议。 ####
|
7天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
26 4
|
8天前
|
机器学习/深度学习 人工智能 运维
智能运维:AIOps在大型系统运维中的实践与挑战
【10月更文挑战第28天】随着云计算、大数据和人工智能的发展,AIOps(人工智能运维)应运而生,旨在通过算法和机器学习提高运维效率和质量。本文探讨了AIOps在大型系统运维中的实践与挑战,包括数据质量、模型选择和团队协作等方面,并通过一个异常检测案例展示了其应用。尽管面临挑战,AIOps仍有望成为未来运维的重要方向。
35 5
|
5天前
|
运维 负载均衡 Ubuntu
自动化运维的利器:Ansible入门与实践
【10月更文挑战第31天】在当今快速发展的信息技术时代,高效的运维管理成为企业稳定运行的关键。本文将引导读者了解自动化运维工具Ansible的基础概念、安装步骤、基本使用,以及如何通过实际案例掌握其核心功能,从而提升工作效率和系统稳定性。
|
6天前
|
运维 资源调度 监控
提升运维效率的关键技术与实践
在当今快速发展的信息技术时代,运维工作面临着前所未有的挑战和机遇。本文旨在探讨如何通过采用先进的技术和实施最佳实践来提高IT运维的效率和效果。我们将深入分析自动化工具、监控策略、灾难恢复计划以及持续集成/持续部署(CI/CD)等关键领域,展示它们如何协同工作以优化运维流程。此外,文章还将提供一些实际案例研究,帮助读者更好地理解这些概念的应用。无论是对于初创公司还是大型企业,掌握这些技术都将是提升竞争力的关键。
下一篇
无影云桌面