写在前面html
随着愈来愈多企业应用上云,云上应用的规模与复杂度日趋增加,对云上应用的运维,也提出了新的挑战。华为云AOM服务面向大规模企业应用的运维,在实践中演进并构建了一套完整的面向云上应用的立体化运维系统。数据库
1、常见云上应用的架构缓存
云上应用早期较多的是购买云服务I层资源(多为基础设施如主机等计算资源)自建各类集群,运维人员多以主机监控为中心进行运维,同时本身搭建应用及数据库等监控系统进行应用层和业务层运维。随着容器技术的普及,愈来愈多的企业转向CaaS和PaaS来管理应用,经过微服务框架开发,业务的实现也更多的使用云上服务,如分布式中间件,函数服务,AI服务等,同时运维也转向云上的运维服务。服务器
一个典型的现代云上应用架构:架构
通过域名解析阶段后,静态资源命中CDN后直接返回,无命中时会回源去拉取,动态请求直接访问WEB服务,在请求到达四层和七层ELB以前,多数企业应用也会选择WAF来清洗异常流量。框架
通过ELB后,请求到达业务应用服务器,业务实例多为分布式构架,微服务之间相互调用,通常状况下企业运维人员较多的关注点是应用实例这一层,多为企业自行开发的服务。运维
持久化层当前各CSP提供的中间件不同,华为云上用户使用较多的如分布式缓存,分布式数据库等。因为提供动态扩容及较高级别的SLA,愈来愈多的企业再也不须要专业的DBA,转而使用云上的服务,开发上也更加敏捷。机器学习
如此多的云服务和各类资源,任何一个环节出现问题,都将致使应用KPI异常,用户体验降低,进而致使企业运营受到影响,而每一个使用公有云服务的企业,若是投入大量人力去自建运维系统而且将整个请求的各个环节关联起来,成本会很是高。所以华为云AOM在帮助企业对应用运维的过程当中,经过实践构建了一套立体运维体系,帮助企业更好的进行一站式运维。下面章节将为您介绍立体运维的定位及架构。分布式
2、立体运维的定位及架构函数
立体运维定位:
立体化运维主要是围绕用户应用进行监控,一站式完成用户体验监控,应用性能监控,基础设施监控。
参考以上典型云应用架构,经过将业务请求路径上通过的不一样资源进行分层,围绕分层设计不一样的专业运维服务子系统,将不一样数据在不一样子系统上串联协同、关联分析,构筑一个云上的运维平台,从而最大化的实现数据价值,为运维人员提供一个统一的运维中心,达到一站式立体化运维的目的。以下为立体运维分层:
构创建体运维,除了要覆盖应用的端到端资源之外,重点还要经过多种运维数据进行数据分析,经过多种可视化手段进行友好的界面展现。所以立体运维体系建设包括如下工做:
资源模型化
其实就是将应用依赖的资源接入CMDB,可是云上业务的CMDB与自建数据中心运维有所区别,后者多对应的是SRE(网站可靠性工程师)层面的CMDB,而应用运维管理所须要的CMDB是面向云资源的量身打造的CMDB。主要有如下特征
资源模型化这一步是全部数据关联及运维平台化的基础,经过统一的模型将不一样资源关联起来后,能够帮助用户快速的找到故障的根因,也能经过关联关系对大量告警进行分析,抑制重复告警等。
数据可视化
良好的可视化界面不但能提升运维人员运维效率,还能够经过直观的展现查看各类资源消耗趋势,帮助企业分析运营走势,预测将来资源使用状况等。应用运维管理数据可视化听从如下原则进行设计
资源拓扑是指一个资源与其余资源的关联关系,如云主机与ELB及VPC,CDN的关系,经过一个资源拓扑图进行展现。以下
所谓左右逢源是指以一个资源为中心,拓扑图展现其上下各一层的关联资源便可,避免拓扑过大,但又能经过一个资源找到上层或者下层资源。
创建拓扑后,经过图上的资源连接,能够跳转到选中的另外一个资源的拓扑图中去,而新的拓扑图是以新的资源为中心,如此来达到经过关联资源不断下钻的目标,方便运维人员查找问题。
一个云资源可能涉及到多个云服务,如ELB实例,涉及ELB服务自己,VPC,CDN,ECS,而各个云服务入口较分散,须要在资源名称增长超连接快速跳转到云服务console。
各资源监控数据的展现,由AOM默认提供模板,但同时要支持用户自定义模板,因为运维人员关注的指标或其余数据侧重点不同,所以要能经过模板支持同一个资源不一样视角的查看方式。
复杂功能须要经过向导快速指导用户进行设置或配置,以减小用户学习文档或者视频的时间成本。
服务平台化
平台化目标要支持用户经过各子系统经过开放API实现自动化运维。指标,日志,事件告警等数据要支持用户经过接口订阅,转发到外部系统供用户运维平台进行分析,分析结果经过API输入立体运维平台并经过事件驱动平台业务持续分析。
也就是经过数据流,实现平台与用户运维系统的协同,实现流程化自动化。
自动化将会协助用户实现故障自动恢复,如经过数据分析后发现须要扩容,能够经过事件触发或者API调用弹性伸缩子系统进行实例扩容。还能够在资源空闲时缩容以节省企业运营成本。
分析智能化
针对指标数据提供动态阈值计算能力,无需用户设置阈值,经过机器学习进行异常检测,对于大型系统的运维能够有效的下降人工配置成本。同时也避免静态阈值设置不合理须要不断调整的重复工做。
针对日志数据,智能提取模板,分析可变参数与静态文本,经过日志关键字监控,实时掌握应用异常状况。
应用运维管理的总体架构:
如下为应用运维管理总体的架构,主要分为五个子系统,每一个子系统经过多个微服务提供不一样功能,总体协同实现立体运维目标。
ALM模块负责事件告警的管理及相关性分析,支持用户配置通知策略以及时将告警发送给运维人员。
ALS模块负责分析日志。
INV模块即CMDB模块,实现资源的管理及资源的映射及查询等能力。
AMS模块主要负责指标数据的管理,提供阈值配置能力。
DPA模块主要负责大数据计算及智能化能力,在线和离线分析数据,以事件驱动各子系统运行。
另外架构图中的底座环境,展现了AOM运维范围,从基础设施到PaaS层应用及容器和VM应用,覆盖了应用运行所依赖各层资源。