openstacksummitvancouver - cloudkitty an open source rating and chargeback component for openstack
TRANSCRIPT
CloudKitty by Objectif LibreChristophe Sauthier – CEO
Stéphane Albert – DevOps & Technical Leader for CloudKitty
The Rating Component for OpenStack
Innovative infrastructure technologies
Your #ID please ?
A 100% Open Source Services
Company
Satisfied clients &Community involvement
ConsultingExpertise
DeploymentsSupport
We Linux #Cloud #Virtualization#Automation
98% of happy traineesMajor OpenStack Contributor
OpenStack 'Starter Packs'Comprehensive training catalog
Branches Toulouse | Paris
The year we were born
employeesin our
Dream Team
And we are looking for more !
trained (and happy) people
OpenStack SummitBTW: who owns the loyalty program?
Our YtoY growth
The part of 2015 revenues invested in R&D
Yes We Count!
2009
2
+3000+30%
5th 11%
10
Our OpenStack Involvement
We spread OpenStackTrainings for all tastes, support and skill leverage, proofs of concepts
We contribute any time we can
We deploy OpenStack clouds for our clients & partners
We gave birth to CloudKitty to fill in the gap in rating
Let us introduce you… CloudKitty
The Rating Component for OpenStack
Developed with full respect of OpenStack best practices
Integrated with OpenStack
Interfacing with Ceilometer API and much more
Integrated in Horizon
Highly-modular
Metrics module
(Ceilometer or other) API
Rating policy configuration
Tariff view, even before resource activation
Cost analysis follow-up
Usage live follow-up and history
User view
API or GUI(Horizon
extension)
Admin view
Data extraction in any format for post-treatmentAPI
API or GUI(Horizon
extension)
Thanks to CloudKitty, you can...
IT ManagersCloud
ProvidersPublishers
Charge for use any application or SaaS
solution,
On cloud infrastructures… or old-
fashion ones!
Charge usage for all types of clouds
Address each of your clients – it's multi-
tenant
Analyze data from OpenStack… and also
from your own data
Define and apply your pricing policy
Give users tools to predict and track their
usage
CloudKitty's internals: developed with all OpenStack standards
Orchestrator
Keystone
Tenant Fetcher
Keystone1
Filters tenant to be processed
CloudKitty's internals: developed with all OpenStack standards
Configuration file:
[tenant_fetcher]
backend = keystone
[keystone_fetcher]
username = cloudkitty
password = password
tenant = service
region = RegionOne
url = http://keystone.mycloud.com:5000/v2.0
CloudKitty's internals: developed with all OpenStack standards
Orchestrator
Keystone
Tenant Fetcher
Ceilometer
Meta
Keystone Ceilometer
Collector
2
Fetch usage information Using multiple collectors
if using meta
CloudKitty's internals: developed with all OpenStack standards
Configuration file:
[collect]
collector = ceilometer
period = 3600
wait_periods = 2
services = compute,image,volume,network.floating,network.bw.out,network.bw.in
[ceilometer_collector]
username = cloudkitty
password =
tenant = service
region =
url = http://127.0.0.1:5000
CloudKitty's internals: developed with all OpenStack standards
Orchestrator
Keystone
Tenant Fetcher
Ceilometer
Meta
CK Format
Ceilometer
Keystone Ceilometer
Collector Transformers
3
Transformation of the various data collected Shared between collectors
Dependencies enforced by the collectors
CloudKitty's internals: developed with all OpenStack standards
Orchestrator
Keystone
Tenant Fetcher
Ceilometer
Meta
CK Format
Ceilometer
Keystone Ceilometer
Rating
Collector
Hashmap
Noop
Transformers
4
Processing of the calculation Multiple modules sequentially
applied (priority set by API) Module are dynamically
enabled/disabled
CloudKitty's internals: developed with all OpenStack standards
Orchestrator
Keystone
Tenant Fetcher
Ceilometer
Meta
CK Format
Ceilometer
Keystone Ceilometer
Storage Rating
Collector
Hashmap
Noop
Sqlalchemy
Transformers
5
Writes the
processed data to
backend
CloudKitty's internals: developed with all OpenStack standards
Configuration file:
[storage]
backend = sqlalchemy
CloudKitty's internals: developed with all OpenStack standards
Orchestrator
Keystone
Tenant Fetcher
Ceilometer
Meta
CK Format
Ceilometer
Keystone Ceilometer
Storage Rating
Collector
Hashmap
Noop
Sqlalchemy
Transformers
6
Glues previous components Manage the
workers
Report Generator
Output the stored data as a consolidated file
Various output formats (even multiple at a time)
Allows importing into third-party software
A closer look at Hashmap
Matching arbitrary values from service type to resource metadata Group : Define set of rules that are processed together
Service : Match a CK Service (compute, network,..)
Field : Match a resource metadata field (flavor, image_id,...)
Mapping- Can be attached to a service or a field
- Map the value of a metadata to a cost and a type of cost
Threshold- Can be attached to a service or a field
- Define thresold levels on a metadata to a cost and a type of cost
CloudKitty Roadmap
Q1 2015 Q2 2015 Q3 2015 Q4 2015
New dashboards with
reporting
ODS Vancouver
Dedicated WebSite
La PosteCustom POC Orange Business
Services tryLooking for much
more !
Big Tent OpenStack
Asynchronous worker pool
Partnerships with major actors
ODSTokyo
Translation
CloudWeek Paris
New rating parameters
e-téra project
Configurable rating period
Try it with devstack!
enable_plugin cloudkitty https://github.com/stackforge/cloudkitty masterenable_service ck-api ck-proc
enable_plugin cloudkitty https://github.com/stackforge/cloudkitty masterenable_service ck-api ck-proc
enable_plugin cloudkitty https://github.com/stackforge/cloudkitty masterenable_service ck-api ck-proc
enable_plugin cloudkitty https://github.com/stackforge/cloudkitty masterenable_service ck-api ck-proc
enable_plugin cloudkitty https://github.com/stackforge/cloudkitty masterenable_service ck-api ck-procR
atin
g as
a S
erv
ice
with
Clo
udK
itty
✂
✂
✂✂
✂
✂
Thank you
www.objectif-libre.com
@objectiflibre
Stéphane Albert (sheeprine) Christophe Sauthier (huats)