在用于构建强大云应用程序的组件块博客文章中,我们介绍了 Azure CAT 团队的系列博客文章和技术文章,这些文章说明了 MSDN 代码库上发布的 Windows Azure 中的云服务基础代码项目。在该系列中,我们要介绍的第一个组件是远程监控。这是我们在执行各种规模的 Windows Azure 客户项目时最先构建的可复用组件之一。事实上,有人曾经说过:“试图管理复杂的云解决方案,但却没有合适的远程监控基础设施,就像是眼瞎耳聋的人试图穿过一条繁忙的公路”。您不确定或不知道哪里会出现问题,且无法采取预防措施,很容易陷入困境。相反,如果及时收集了关于应用程序组件状态的充分监控和诊断信息,您就能够做出明智的决定,例如成本和效率分析、容量规划和卓越运营。本博客还包含相应的 Wiki 文章,深入介绍了远程监控基础知识和故障排除。
要管理云中任何规模的系统,在性能监控和应用程序运行状况方面,实际上需要使用不同方法来支持运营成果。使用现有工具和技术非常具有挑战性,因为云平台相当抽象。此外,如果您的解决方案需要伸缩,那么数百个 Web/worker role、数据库分区和其他服务生成的信息量将产生风险, 让你被大量统计意义相对较低、不相关和延迟的数据淹没。提供始终围绕运营内幕的端到端体验,有助于客户将其 SLA 与其用户匹配。同时通过对目前和未来资源消耗与部署制定更明智的决策,降低管理成本。只有充分考虑涉及的各层才能实现这一点,包括从基础设施的角度(例如资源的使用情况,如 CPU、I/O、内存等)到应用程序本身(数据库响应时间、异常等)直到业务活动和 KPI。
运营团队(维护服务运行情况、分析资源消耗、管理支持电话)和开发团队(故障排除、规划新版本等)都可从处理、关联和使用这些信息中受益。
远程监控解决方案本身必须设计为可用于跨多个角色实例伸缩, 以执行数据采集和转换的活动,将数据存储到多个原始SQL Azure 数据库中。为便于报告和分析组件,汇总数据将驻留在集中数据库中,该数据库将作为预定义和自定义报告与仪表板的主数据源,如以下简化的体系结构图中所示:
由于该主题本身涉及面很大,我们决定将其分为四篇博客文章和 Wiki 文章,形成一个迷你系列:
1. 远程监控基础知识和故障排除
2. 应用程序运行状况测量
3. 数据采集管道
4. 报告和分析
这是第一篇文章,主旨是介绍远程监控解决方案的基本原则,它首先定义了我们的应用程序运行状况的基本指标和关键指标。我们还详细提供了各种信息源,您可以根据这些信息源订阅自动远程监控系统,或对部署不太复杂的应用程序手动执行故障排除会话。
诸如Windows Azure Diagnostics (WAD) 的功能如已正确配置,将是收集和汇总这些关键信息的主要起点。遗憾的是,其中一些数据源目前尚未与 WAD 集成(例如Azure SQL 数据库),因此需要使用稍微不同的方法和 API 来提取这些信息。Azure 存储分析是另一个很好示例,需要特定努力来收集和巩固指标。
要阅读本主题,请参阅远程监控基础知识和故障排除 Wiki 文章,其中我们将重点介绍一种分析方法,可用于将所有这些不同的数据源关联到一个描述端到端解决方案运行状况的视图中。此外,为了帮助您实现此操作,我们提供了一些工具(Microsoft 工具和第三方工具)和脚本,可在故障排除会话中进行实际使用。
这将是我们在以后的文章中介绍的一系列文章的基石。您可在云服务基础 TechNet Wiki 登录页面上找到整个系列。