Azure 竞赛:成本分析/跟踪
添加成本计数器以准确监控应用程序在使用 Azure 服务时的消耗情况
引言
我从事 ASP.NET 应用程序开发已经超过 10 年了,对于所有这些应用程序,它们都在数据中心内的专用服务器上运行。为新应用程序配置几个虚拟机,或者为现有应用程序添加几个虚拟机并不是什么大事,这样做成本基本为零——虽然当你需要购买更多服务器时,事情就会变得更昂贵。
Azure 通过承诺几乎无限的容量来改变了这一点,让你无需担心容量规划、硬件维护、操作系统补丁——但代价是采用按使用量付费的定价模式,这正是我一直远离云的原因。 你到底如何才能在不让网站离线的情况下缓解失控的成本——或者更好的是,防止它发生在你的生产网站上?
应用程序
微软在创建性能计数器以从性能角度监控应用程序的各个方面方面做得很好。 我将在这个竞赛中做的是构建成本计数器,以便你可以监控和跟踪应用程序中产生成本的所有活动。 这将产生两个好处:
- 实时跟踪应用程序中产生成本的区域
- 对于多租户应用程序,这些费用可以关联到租户。
目标是进行应用程序的负载测试,以发现性能问题,同时也要找到运行网站的成本变化——这是我以前从未担心过的事情!
该应用程序将从一个通用的/演示网站开始,并集成成本计数器。 将利用足够的 Azure 平台来了解我们可以捕获的数据类型:计算/存储/带宽等,以及它们可以提供的粒度。
在捕获这些数据指标后,我将构建一个框架,以将实时数据存储到存储中。
每天,将启动一个批处理作业来处理前一天的所有数据,并将其汇总为全天的摘要,并将其与应用程序/租户关联起来。 这将保存到数据库中,以便更轻松地访问报告,这是此应用程序的最后一部分。
一旦一切就绪,我们就可以创建实时报告和摘要报告。 这对于在成本偏离正常情况时通过推送通知/电子邮件发送警报最有用。 此外,它将有助于验证定价模型与租户的使用情况,以确保模型有效。
如果一切顺利,这意味着负载测试应该能够发现任何性能问题以及 Azure 应用程序的成本增加。
历史
v1.0 竞赛 1 挑战:应用程序描述(完成!)