使用Apprenda和R分析应用程序工作负载数据

平台即服务(PaaS)可以利用的最重要的数据类型之一就是它在其权限范围内运行的访客应用程序的内容。PaaS服务应该了解关于访客应用程序的各种各样的事情 - 包括它们的体系结构,依赖性,跨基础设施的规模等等。

包括应用程序资源利用指标(CPU,RAM等)在内的数据是企业数据中心容量规划,策略实施和应用程序隔离等关键因素。像Apprenda这样的PaaS服务通过一个集中的单一实例(在我们的例子中就是一组REST风格的API)提供了这些信息,使得在数据中心运行应用程序指标分析变得比以往更容易。

Apprenda作为PaaS服务的方式是通过平台可扩展性和API为开发人员和平台操作员提供有用的信息。这是因为数据中心提供了大量工具来提供高级分析功能,只要您可以为其提供所需的信息即可。我们整合了一些工具,比如系统中心(System center)New Relic等等,因为这些工具是我们客户投资的工具,而且这些工具擅长于分析。

我们的工作不是重新发明这些工具,而是提供数据。 Apprenda捕获有关应用程序的信息,例如部署的时间,资源策略(CPU和内存的分配),资源的实际利用率,规模(实例数量),自定义元数据等等。所有这些信息都可以输入到数据中心工具中,帮助IT人员做出重要的数据驱动决策。

然而,在DevOps的领域内,人们创造性使用这些数据并不罕见。通常情况下,这意味着使用“du jour”机制,它可以是脚本(PowerShell)、编程语言(R(https://en.wikipedia.org/wiki/R_(programming_language%2529%29)或一个运行平台([Node.js](https://nodejs.org/)),以快速有效地获取、处理和操作数据。

在一个数据量较大的例子中,让我们看看R的表现,这是一个以数据挖掘和统计分析为中心的强大的编程语言。它为许多类型的数据分析技术提供了直接的工具,并且可以使用社区维护包进行扩展。

在下面的简单例子中,我使用标准的R函数加上三个包(使用R的install.packages()函数很容易将包包含进来):

  1. jsonlite用于解析Apprenda API返回的JSON数据。
  2. httr用于处理验证和检索数据所需的HTTP请求。
  3. plotrix帮助渲染检索到的数据。

从以上步骤看非常简单。第一步是使用Apprenda环境进行身份验证:

我现在将我的Apprenda会话标记存储在一个名为“token”的变量中。我将该“token”作为我的API调用的参数以获取应用程序数据:

GET()是由httr包提供的一个函数,它简化了对API的HTTP请求。我已经将Apprenda会话标记添加到HTTP Headers 进行身份验证,并且包含查询字符串参数,该参数将帮助返回平台上当前正在运行的所有应用程序工作量。返回的数据被解析并存储在一个名为'r'的变量(在R中,这是一个向量)中,,该变量现在有151条记录,每条记录为一个应用程序工作量。 'r'变量中的每条记录都有15个变量(属性),我们可以使用这些变量在整个结果集合上运行分析。

为了便于说明,我将使用变量componentType,它表示Apprenda对已部署的应用程序工作量的类型 - 七种一目了然的类型:UserInterface,PublicUserInterface,WindowsService,JavaWebApplication,LinuxService,WcfService,和Database(数据库。然后,按照组件类型对集合进行分组时,绘制显示组件类型工作量分布的图表变得非常简单:

结果图(pie3D()方法来自 plotrix 包)如下所示:

01.png

我曾与那些无法详细描述他们的应用程序组合的架构构成的IT人员进行对话,在这种情况下,我们用一行R实例实时地提取数据。不可否认,饼图是相当简单的方式来呈现这个信息的,但重点是数据是可用的,可以分组,过滤,操纵,并与R分析非常简单。

在这个例子中,我使用了RStudio的开源版本。从平台的API中可以收集到一些其他有用的信息:

1.资源分配与每个工作量的实际利用率之间的平均差异。 (这在容量规划中很有用。)

2.运行时间最久的应用程序工作量。

3.最分散的应用程序。 (这可以帮助扩大决策。)

还有更多的信息。像Apprenda这样的PaaS服务,本质上是数据中心栈中一个独特的部分,因为它维护了基础架构和应用程序。它也作为数据的中心,当进行创造性地分析时,提供新的见解。这些见解为企业提供了一个机会,可以增强他们的实践,可以帮助他们更好地为开发人员和应用程序提供服务,同时也提高了运行效率。

本文的版权归 神话_Tyrannosaurus 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏京东技术

看京东系统架构师如何让笨重的架构变得灵巧

3979
来自专栏芋道源码1024

浅谈高性能数据库集群 —— 分库分表

最近学习了阿里资深技术专家李运华的架构设计关于分库分表的教程,颇有收获,总结一下。

1961
来自专栏AI研习社

GitHub 到底为啥这么受欢迎,我们为你整理一份使用攻略

GitHub,全世界开发者的安全空间,在这里,你可以分享你的代码为大家所用,也可以和全世界的开发者一起共建完善你的代码。在这里,你可以学习借鉴前辈的经验快速提升...

992
来自专栏华章科技

GitHub 到底为啥这么受欢迎?我们为你整理了一份使用攻略

导读:GitHub,全世界开发者的安全空间,在这里,你可以分享你的代码为大家所用,也可以和全世界的开发者一起共建完善你的代码。在这里,你可以学习借鉴前辈的经验快...

1534
来自专栏架构师之路

微服务架构多“微”才合适?

前情提要:互联网架构为什么要做服务化? 一、互联网架构为什么要进行服务化-总结 上一篇和大伙交流了一下,随着数据量、并发量、业务复杂度的增长,互联网架构会出现以...

3816
来自专栏Guangdong Qi

iOS 审核被拒之第三方登陆

这是个什么鬼 17.2 Details We noticed that your app uses QQ,WeChat and Weibo login for...

3972
来自专栏Rainbond开源「容器云平台」

好雨云资深架构师祁世垚参加Qcon演讲,现场反响热烈

1224
来自专栏IT大咖说

一文通晓私有云构建之道

摘要 服务化在云计算中是非常重要的部分,所有组件以服务的方式去提供,而很多企业的数据库都还在构建当中。今天聊的就是私有云数据库构建的过程。如果大家有这方面的打算...

3696
来自专栏带你撸出一手好代码

如何正确使用缓存技术

缓存技术是用来提升程序运行性能的常见手段,君不见, 阿里巴巴、新浪微博、美团网等互联网龙头企业都是用缓存技术来提升自己家网站的性能。然而,任何事物都有两面性, ...

3726
来自专栏小巫技术博客

Git 工作流的一些经验分享

1622

扫码关注云+社区

领取腾讯云代金券