cloudkitty运用

2023-05-16

cloudkitty安装:https://blog.csdn.net/u010305706/article/details/50239089

在OpenStack开发社区向“Big Tent”模式全面转型之际,一个新的项目—CloudKitty进入了人们的视野。该项目基于OpenStack对外提供Rating-as-a-Service的服务,旨在解决IaaS层计费方面的需求。

Why we need it

云计算的一个最大特征就是“按需使用,按量付费”,那么基于OpenStack的云平台如何来实现计费方面的需求呢?很遗憾,社区在很长一段时间内都没有给出一个切实可行的解决方案(有这方面的尝试,像BP:https://wiki.openstack.org/wiki/Ceilometer/blueprints/Add_Billing_in_Ceilometer就是计划在Ceilometer框架内添加计费的功能,但最后都没有了下文),很多公司都是各自为OpenStack开发自己的计费服务作为其产品化的一部分。随着OpenStack的不断发展,社区在计费方面的诉求也越来越强烈。为了填补OpenStack计费方面的空白同时也为了避免重复造轮子,CloudKitty应运而生。

How it works

一般意义上来讲,要最终实现对IaaS层的计费需要如下几个步骤:

 

Step 1. Metering: 收集资源的使用数据,其数据信息包括:使用对象(what),使用者(who),使用时间(when),使用量(how much)

Step 2. Rating: 将资源使用数据按照商务规则转化为可计费项目并计算费用

Step 3. Billing: 结账开票,也就是根据指定的时间段计算用户总的资源使用费用(由于各个公司对于billing都有自己独特的需求,所以该步骤一般都是用户自己实现的)

在OpenStack所有组件中,Ceilometer负责收集虚拟资源的详细使用数据,充当Metering的角色。CloudKitty做的事情就是从Ceilometer端获取计量数据,然后根据事先定义好的计费规则对这些使用数据进行Rating,为最终的billing提供数据支撑。如上图所示,CloudKitty在整个计费流程中充当的是Rating的角色。

CloudKitty的架构如下图所示:

 

主要包括四个部分:

  • Data collection (collector)
  • Rating processing
  • Storage
  • Report writer

分别说明如下:

  •  Collector:负责收集虚拟资源的原始使用信息并转化为CloudKitty能够识别的数据格式。Collector采用插件式设计,可以根据不同的计量组件或不同的meter数据获取方式装载不同的collecotr(理论上甚至可以为CloudStack开发一个collecotr让CloudKitty可以在CloudStack上工作),至于在运行时装载哪个collector可以在配置文件中进行配置。目前社区已实现ceilometer的collector。
  •  Rating processing:计费引擎, CloudKitty的核心组件,对外提供设定价格的API接口,对内负责计算所有虚拟资源使用记录的费用。它从collector获取原始的使用记录,然后根据事先设定好的价格及计价策略对这些记录进行费用的计算。同样该模块采用插件式设计,具有良好的可扩展性。现在社区实现了一个名为hashmap的rating module。我们可以根据自身的需求开发我们自己的rating module。还可以在同一时刻加载多个rating module,并且设置执行的先后顺序。最后该模块处理好的计费信息会传递给Storage和Report writer。
  •  Storage:负责把rating processing处理好的计费信息持久化存储到后端数据库。由于在设计的时候引入了ORM框架sqlalchemy所以支持多种类型的数据库,例如mysql、postgresql、sqlserver。另外查询计费信息和创建报表的API也封装在这个模块中。
  •  Report writer:最终的计费信息在存储到后端数据库的同时,还可以用文件的形式存储到磁盘上,方便与第三方系统交换数据。目前支持输出json格式的文件。

分析了CloudKitty的应用架构后,那我们对CloudKitty的内部数据处理流程就很好理解了。如下图所示,从分析计量组件产生的数据,到最终根据计价策略完成对资源使用数据的计费, 总共需要4步:

 

CloudKitty从Ceilomter获取资源的使用记录,根据admin用户预先设定的计费策略生成计费记录,然后end user就可以通过CLI或GUI查询到自己的计费信息。

Current status and Roadmap

相对于OpenStack的其它组件,CloudKitty算得上是一个比较年轻的项目了,去年8月才在社区注册。在今年6月份我们决定采用它做为公司内私有云的计费模块时它还是一个孵化项目,到今年十月底的时候就已经转变为OpenStack的正式项目了。之所以发展这么快我认为一个很大的原因就是上文提到的OpenStack计费方面的需求太强劲,社区太需要一个项目来填补metering和billing之间的空白了。CloudKitty加入Big Tent后,社区活跃度有了质的提升,根据社区统计数据,CloudKitty加入Big Tent两周后获得的contributions比加入前半年的总计还要多。CloudKitty近期(M cycle)主要的开发计划大致如下:

  • 添加Gnocchi支持

主要是性能/可伸缩性方面的考虑。当前的CloudKitty在架构上存在一个很大的性能方面的风险(其实问题根源在Ceilometer),由于CloudKitty需要调用Ceilometer的API获取虚拟资源的使用信息,但是大家都知道在数据规模比较大(数千台虚拟机)的情况下,Ceilometer在查询的时候会有很大的性能问题,这样就会导致CloudKitty的collector在收集数据的时候速度变慢,从而产生连锁反应使整个CloudKitty的处理速度慢下来。近期,Ceilometer社区为解决查询时的性能问题导入了一个名为Gnocchi的组件(Gnocchi是一个时间序列存储后端,它对存储和检索时间序列的数据有着天然的性能优势),专门向外提供Metric数据的查询服务。所以为了适配这个变化,CloudKitty正在开发一个工作在Gnocchi上的collector,希望利用Ceilometer的这个改进一劳永逸的解决获取计量数据时的性能瓶颈。

  •  增加名为pyscript的rating module

装载了这个rating module后,支持用户编写python代码来灵活定义自己的计费规则。以前要自定义计费策略你必须自己开发一个独立的rating module,在这个过程中你需要对CloudKitty的内部实现有一定程度的认识,但是有了pyscript计费模块后,你完全可以把CloudKitty当做一个黑盒,只要专注于用python来实现你自己的计费策略并上传到pyscript即可,这样就大大降低了CloudKitty的使用门槛。

  • 提升图形界面

CloudKitty在图形界面这一块还比较欠缺,社区最近主要是想提升统计报表的功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cloudkitty运用 的相关文章

随机推荐

  • python如何调用c++函数

    ctypes方法 由于ctypes是python自带的库 xff0c 并且用起来也方便 xff0c 适合中小型项目 xff0c 就记录来学习一下 将test cpp编译为动态链接库 xff0c 这一步很重要 xff0c 随时可以复制 g s
  • python怎么把数字转化成字符串

    在 Python 中 xff0c 可以使用内置的 str 函数将数字转换为字符串 例如 xff1a span class hljs meta prompt gt gt gt span span class language python n
  • iOS开发如何实现抖音瀑布流

    实现抖音瀑布流的方法 xff1a 使用 UICollectionView 或 UITableView 在这些视图中 xff0c 您可以使用自定义单元格定义不同类型的视图 xff0c 并使用布局对象来定义每个单元格的大小和位置 计算每个单元格
  • macOS打开原生的NTFS读写功能

    macOS打开原生的NTFS读写功能 2020 07 20 22 59 23Mac评论16 0852字数 781阅读2分36秒阅读模式 Mac本身实际上是支持原生的NTFS读写的 xff0c 只不过这一功能被隐藏了 xff0c 但是可以手动
  • nginx转发https:SSL_do_handshake() failed

    大概情况 xff1a 前端项目是vue xff0c 部署到nginx xff0c 由于项目中使用了第三方接口 xff0c 直接访问会存在跨域问题 xff0c 所以使用nginx进行转发 xff0c 但是请求的时候报错了 错误日志 SSL d
  • vi编辑器有哪几种工作模式,它们之间是怎么进行相互切换的?

    vi 编辑器有三种工作模式 xff1a 命令模式 插入模式和底线模式 命令模式 xff1a vi 编辑器默认进入的工作模式 在这种模式下 xff0c 可以使用各种命令进行文本的编辑和操作 插入模式 xff1a 在命令模式下按 i 键进入 x
  • 如何在powershell中更新到最新的powershell

    要在 PowerShell 中更新到最新版本的 PowerShell xff0c 可以执行以下步骤 xff1a 打开 PowerShell 运行以下命令 xff0c 检查当前安装的 PowerShell 版本 xff1a span clas
  • Linux 查看日志文件命令(整合)

    当日志存储文件很大时 xff0c 我们就不能用 vi 直接去查看日志了 xff0c 就需要Linux的一些内置命令去查看日志文件 系统Log日志位置 xff1a var log message 系统启动后的信息和错误日志 xff0c 是Re
  • linux dbus安装卸载,ubuntu安装dbus

    下载地址 编译安装 configure prefix 61 home ubuntu dbus 1 13 18 install make amp amp make install 出现如下错误 xff1a configure error Th
  • [小白]Windows10系统安装Linux系统

    Windows10系统下安装Linux系统 1 简介2 工具准备 镜像文件下载 启动盘制作工具下载 xff1a 3 前期准备 分配空间 xff1a 制作启动盘 xff1a 4 安装过程5 重启6 故障解决7 感想 1 简介 个人计算机小白一
  • linux display参数,linux 的display变量的具体说明!

    环境变量 xff1a DISPLAY xff0c 它指定了一个显示设备 xff0c 所有的图形程序都将把自己显示到这个设备上 DISPLAY的格式为 xff1a hostname displaynumber screennumber hos
  • torchvision安装不成功原因

    直接pip安装不成功 xff0c 显示找不到对应的包 xff0c 这时候用whl安装方便一点 在这里下载 https span class token punctuation span span class token operator s
  • 位运算-左移和右移操作

    位运算 按位与 xff08 amp xff09 xff1b 按位或 xff08 xff09 xff1b 按位取反 xff08 xff09 xff1b 按位异或 xff08 xff09 xff1b 左移 xff08 lt lt xff09 x
  • Linux(虚拟机) 扩容

    环境 虚拟机软件 xff1a VMware 14 系统版本 xff1a CentOS 7 扩容步骤 VM上修改磁盘信息 将虚拟机关机 xff0c 然后点击VM顶部菜单栏中的显示或隐藏控制台视图按钮来显示已建立的虚拟机的配置信息 然后左边菜单
  • 苹果笔记本访问服务器共享文件夹,mac查看win7共享文件怎么操作_mac如何访问win7共享文件夹-win7之家...

    我们在使用mac电脑的时候 xff0c 常常会有需要和其他在操作win7电脑的用户进行数据的传输 xff0c 这时就可以通过共享的方式来解决 xff0c 然而对于一些刚接触mac系统的用户来说可能还不知道如何查看共享文件 xff0c 那么m
  • ax200黑苹果蓝牙驱动_旧主机改造,新增无线和蓝牙功能,摆脱线缆束缚

    购买理由 前些天买了书桌 xff0c 准备开始打造自己的小 天地 xff0c 下一步就是桌面无线化的打造 xff0c 因为我的台式机没有无线网卡和蓝牙 xff0c 所以需要配备一块网线网卡 xff0c 且必须具备蓝牙功能 考虑到 WiFi
  • windows实现ssh免密登录

    1 在windows的powershell窗口 执行ssh keygen xff0c 随后一路enter 2 这里以用户名为root ip为192 168 0 1的服务器为例 xff0c 将所创建的公有密钥上传到服务器的 ssh 目录下 3
  • Python配置免费的OCR识别(OCRSpace)每月25000次(保姆级教学)

    昨天我写了一个配置百度的OCR识别 xff0c 说实话百度的确实还可以 xff0c 就是太贵了 xff0c 于是今天问了一下GPT xff0c 确实有个相对免费的OCR xff0c 就是OCRSpace 点我进入官网 xff1a OCRSp
  • ios 画线平滑_ios-iPhone平滑草图绘制算法

    ios iPhone平滑草图绘制算法 我正在开发iPhone上的素描应用程序 我让它正常工作 xff0c 但是看起来不像这里 我正在寻找任何建议来平滑绘图基本上 xff0c 我所做的是当用户将手指放在我叫过的屏幕上时 void touche
  • cloudkitty运用

    cloudkitty安装 https blog csdn net u010305706 article details 50239089 在OpenStack开发社区向 Big Tent 模式全面转型之际 xff0c 一个新的项目 Clou