 Okay So thanks for coming this morning. I'm Christophe Sotier. This is Stefan Albert We are both working for a company called objective free and we are about to talk to you about Cloud kitty, which is a rating component. We are developing in the company Since we are just a small company and the French company. So by the way, you might notice that in my English I will just give you a few facts about our company We are an open source company. We just work on open source technologies with a strong emphasize on infrastructure actually, we have a strong emphasize on innovative Technology like for instance open stack, but also technology that we can use around open stack So we'll talk a lot about automation like perpet on civil or virtualization like KVM or Docker or all this kind of stuff We have a strong commitment in the company. The first one is to Satisfy our clients We are really happy to say that we have more than 98% of our Customer who have followed trainings with us were satisfied by that It's quite important because we gave something more than 3000 we had more than 3000 trainee So 90% of satisfaction is quite high We tried to be a major open-stack contributor with our With our way because we're just a small company like you see later But usually we are in the top 20 contributors. So which is quite good for us We're also making some nice shots as you can see, but this is not our main interest We also have to do some billable stuff for our clients. So we do consulting expertise deployment support we developed a wide range of activities around open stack like starter pack, which is a mix of trainings and proof of concept and we have a quite complete training catalogue Just to give you some numbers since rating is quite related to figures the company has been started in 2009 we have a growth of about 40% for this year and In this revenue about 11% are dedicated to research and development We are about 10 and we are 10 in the company We have two offices one in Paris and one in Toulouse, which is where the headquarters are located and More important here. It's our fifth open-stack summit. So we're involved in the community for quite a long time What will Tackle here is our open-stack involvement We spread open-stack whenever we want Like I said earlier, we do a lot of trainings with your support We help people to increase their level and their knowledge of open-stack I am quite involved in the French community since I'm the secretary of the French community We do a lot of proof of concept. We contribute anytime we can and we also Deploy clouds for some of our customer or partners and one thing that occurred a lot during this employment was I Can I build my customers? I cannot charge for the service I'm providing So the first answer we gave was oh, that's annoying because you can't find anything on the open source way in the open source world or at least something which isn't Maintain which is maintained or still active and at some point we said, okay, it's been the Third or fourth time we've been asked for that. So let's do something about that. So we said, okay Right now you have nothing for sure But in a few months you have something and we'll we'll develop that thing and that thing is clocking it So clock it is an additional rating component for open-stack It's developed with the full respect of all open-stack best practices We will give you an overview of that in a few minutes. It's fully integrated with open-stack We have we are able to retrieve information from Cilometer using the API or whatever we need We can get information from safe and Stefan will explain that later We are fully into getting it on rise on horizon like you might be able to see Inside the demonstration we give you and it's highly modular really highly modular Clock it as you can see here fetch is Okay, I'm the son was not working if I turn it on it won't work Clock it here right here fetch this information from an API because that's the way to do things and then you process data and Using and depending your usage you want to do depending your role It will give you different options and different things to do By instance if you're an IT manager you will be able to give your users a Tool to predict the and track their cost usage of your cloud, which I mean is quite important for them If your cloud provider well just need to charge your customer not just that but this is quite important for the safety of your company So you'll be able to define the full pricing Policy you want to apply for your customer You'll be able to address all your clients because it's multi-tenant you'll be able also to analyze the Usage of your customers because you'll have an administration panel that will give you a disinformation and Something that we have developed lately in clock it is that even if you're not providing a cloud yourself even if you're just An editor from the application you can use clock it because clock it it can be a bit separated from open stack and just Allow you to charge and to create the rating and join of your application Are in the French in our using something which is not Claude really yet Okay, so let's dive into cloud city architecture. So as Christophe emphasized previously We are highly modular so every piece I will show in the next slide are still the module So it's a way to load a piece of code into an existing application First PC piece is the tenant feature So basically it's a way to load you IDs. So it's tenant IDs in the case of open stack So you can have different tenant features For example, if you want to apply rich angle SAS application and not open stack You just need to have your own driver And for example database and then you load IDs of your clients and you can apply that to SAS application for example so it's a way to Make cloud kitty work even outside of open stack application In our demo at the end we'll use the keystone turn of nature Which basically fetch all the tenants that cloud kitty can access and Check for the rating role as soon as you had a cloud kitty in the tenant with the rating role It will get fetched and all the data in the tenant will get our processed for rating So just a quick look at the configuration pie. It's pretty simple. You've got a tenant feature section So you can specify your back end which will be loaded dynamically in the code later Another section keystone feature Feature where you set your keystone credentials as admin So cloud kitty can fetch all the tenant and see what's going on Second point in the is a collector. So basically it fetch all the metrics data from back ends You have two possibilities. Oh, by the way, the double blue arrows static configuration in the configuration file and the credit Orange arrow for dynamic all dynamic Configuration so two possibilities even you set a module in your configuration file For example Cilometer if you only want to do Cilometer or a more advanced way is to use meta collector Which exposes and yep and API to your Administrators so you can Use multiple collectors Set priority on the metrics you want to collect for example If you got a Cilometer and a vendor plug-in for network application And you want to have all your compute data from Cilometer you can set Compute for Cilometer and networking information from your vendor plug-in to have additional information for rating for example if you want to have If your vendor plug-in can show you east west and south north Bandwidth then you can do rating on this kind of metrics Again a quick look at the configuration so you've got a collect section which is the generic Configuration so you set your collector is it's very Cilometer the period is the rating period So basically one hour it means that every hour we will check for new data on your metric back-end and push it back in the Rating pipeline wait period is the amount of Periods we lag in the past to be sure that all the data is present in your metric back-end and The services is simply a list of all the services you want to collect and apply reaching home You can have a large amount of metrics you will collect you're not Enforced to use them later in your rating process and then again the Cilometer collector section Which is basically keystone credentials to access Cilometer as we are using separate separate parts for every Authentication tenant fetching you love to put your credential multiple times Okay, so the third part is Pretty simple. It's short a shared code between the collectors. It's transformers their goal is to Take your metrics data and put them in the length format that is and a symbol understandable for cloud kitty So it's just shared code and you can enforce The dependencies directly in the collector modules Okay, so now the interesting parts. It's our rating part. It's a fourth fourth part So rating it's Pretty simple. You've got a lot of module that you can load dynamically in your application And you can choose to enable or disable them on the fly with an API You can choose to every rating module can expose its own custom API So you can configure them directly from an API There is way to load Code in your client and in your dashboard. So basically you expose a custom API Your clients don't need to know all the API is working. You've got Steve Dore namespaces So the client will automatically Automatically get new shell commands. So you have directly and direct integration in your CLI application or horizon dashboard and They are executed sequentially. So you can set priority for every rating module on the API on the fly So you can execute them in in a defined Deterministic way The storage parts. So it's pretty simple actually. It's just a civil module to an extension It's responsible of rating all the data to a back-end in our example is sequel alchemy. So it's equal database And it's here to ensure consistency. So you know that the data you put in your back-end will get consistent. You don't have Multiple rights of the same thing Etc. We have a common API on top of every storage back-end. So you can query Your storage back-end from the API to filter on some resource types period and other metadata so you can generate a report really easily and The last part of configuration. Sorry. So it's two lines actually So you can set your storage back-end easily here. It's sequel alchemy Last part orchestrator. So it's huge glue code of all the previous pieces you've seen It's a component that loads all the previous parts and do the dependency checking Its goal is to maintain the Walker pool. So In cloud kitty, we have a huge pool of workers so you can thread it and have a good performances There is API workers and processors worker Basically, you've got an API node like you can set on the front of your Infrastructure and every message is go through a message queue So when you when some of your clients want to have a price for example They want to start a new instance and they want to know the price before the instance is started You can have a nap an API call which will go in the message queue Is processed by the processor so you can have huge computers to do a processing and then it goes back to the API And there is a processor workers which clearly do all the collection and the rating and the storage So back to Christophe Thanks All these information that are gathered by clock kitty need to be used after that So that's where the report generator takes place It will take the data that we have processed and put them into a consolidated file actually since clock kitty is quite modular you can Produce the file the way you want and even you can produce many files at the same time So if you have different tools since this is the goal of this kind of file If you have different tools that need to take this information, you can give them at the same time If I have a closer look at the ash black module, which is a rating module Stefan just not just mentioned We had to introduce a way to organize things so the first thing we define was a group a Group is a set of rules that to want to be applied at the same time Then we have the notion of service a service matches a clock kitty service, which is basically The family of thing you want to process to process you want to process compute you want to process network You want to process storage? That's it Using this are inside a service you have many failed you want to address it can be the image the flavor Things like that the image ID actually the flavor things like that and once you have this file ID You want to define some price for that? So it will be Using a mapping as result the mapping is just you said for this image like you'll see later You you because that's amount of money it would discuss But for a threshold it would be with different level by instance for storage You want to charge your customer this price for the first step of Storage, but when once they are gone further this level of storage You want to charge them another amount of money? So that's what threshold is for and so when you gather all these Abstraction groups of our service fill mapping and threshold you are able using ash map to define your own policy so Let's give you a demo of that We're about to do a rating policy, which is outset quite complex because it will involve a few stuff and Let's have a look on the impact on the user. What will be the output for the user? we'll start with All I said about the API is a rating module all to enable them disable them So we'll show you how it's working So you've got new panels actually in horizon. You've got a rating panel You've got two panel one for users and one for administrators So here you we are in the admin admin section and you can access all your rating modules There is two fields Oh We are going to enable ash map actually so you just click on enable module and it will send an Message to all your processors to tell them to enable the module. So basically It enables you to ensure consistency on all your calculations The messages are sent to all the workers. They finish their processing and when they're done They load the new configuration so you don't have an inconsistency in your calculation No further we'll show you all we do rating policies. So we will work on the ash map module We'll start with the compute. So we want to charge people on compute usage. So you set a service as compute, okay? And it's basically a huge tree of rules You create a group. So here we want to charge on instance of time. Okay? It's just a tag. There is no meaning to the name of the group. Okay, it's just to Different rules we create a new field. So a field In cloud kitty is a mapping between a resource and its metadata. So here we want to Charge the people based on the flavors they use. Okay, so we'll start with in one nano Which is a small one. It's a Dev stack one actually and And there is two type. Yeah, we forgot to talk about two type flat and rate Flat is the base price you want to apply. So basically you can have multiple of flat price for different fields and the best at the highest flat price will apply and rate is made to apply discount or Modified the price basically so we apply two field mappings One for M1 nano one for M1 micro with different prices on an on a per hour basis and We want to show you what? What the rates type is doing so we will simulate Basically, we want to say that Windows images consume more resources than Linux images So we want to add a 10% increase in the price So here we reference the image ad so the UID of the image in dense in The field to map and we set a 1.1 to apply 10% more to the price So next we want to rate another service Which will be volume so again we create a new group because we want to Separate the calculation from the end-to-end sub time because end-to-end sub time is a Is a set of rule and we would don't want to apply for example threshold rates to our end-to-end sub time calculations So again, we've got a flat price, which is a price per gigabyte for volume Okay, and we set the group and then so service threshold There is two type of threshold actually there is a Service threshold and field threshold service threshold apply in the quantity of your service. So if you're familiar with Cilometer is a quantity in Cilometer and Field threshold apply on the metadata so you can apply levels on Metadata value of your resource So here we want to say different price for example when you're going past 10 gigabyte You will have a discount and when you go past 20 gigabyte you have a discount to so 5% for 10 gigabyte and 8% I think for 20 gigabyte so Next thing is the floating IP. We want to charge our customer for every floating IP They will consume So again, we create a service mapping not a field mapping because we want to apply our rating rule on the number of floating IP they are using and We don't need to know metadata of the floating IP We create a new group because we forgot to so yeah, you you can modify all your rating rules on the fly and the New configuration as a reload Configuration messages are sent to all the processors so they can reload the configuration as soon as they are finished with the current processing So now we will show you the predictive pricing which is a feature you can show to your users Actually, we only do this on instance creation But we plan to add it on It's that creation so people can send it templates on your cloud and know how much all the resources in your template we cost them as you can see there is a Below the total RAM Number you can see the price so it will be changing as soon as Their user is choosing a new flavor or new image So for example, there is a rate on the flavor so you can see that 10% Increase is applied if you choose the windows image So that's for a predictive pricing and now we will show you what's What's going on with the rating and the reporting in Cloud City, so we have a Small panel which shows you the total for the current month so you can know All how much you have consumed and then there is a whoa, it's looping Okay, and there's a reporting view. So basically you can show to your Clients what they are consuming so they can know if it's Based on bandwidth usage on compute usage, etc We plan to add more views for reporting so they can have History of what they consume previous months so they can know if it's Because their bandwidth usage is increasing that their billing is going up, etc Okay, and Christophe will show you next Since Cloud City is fully open source, we have a roadmap that we are really happy to Show you and to share with you Currently We're about to start looking for a partnership with some major actors so that they can promote and we can have an integration with them we really hope to be able to Enter the big tent in the last cycle so far clock it is on the stock forge already, but Entering the big tent is clearly a goal for us and from a for technical roadmap We want to add as I just say we want to add new reporting in the dashboard We want to add translation, but I'm sure you can hear us. We are French So French people want to have French UI so we need to add translation We are we want to add new rating parameters So at the moment when you modify your configuration for the rating it's applied as soon as you apply your new configuration So it might Be some problems if you want to apply new rating For the next month for example, so we want to add validity period like you can have in X 509 Certificates say This rating rules is applied from this period up to this period and you can have some nice transitions between your rating policies we want to Improve our walker pool to have a nasa and cruise walker pool because at the moment is all sequential so it's It's not the best way to scale. We want to have a nasa cruise API because Huge huge consumers. We are huge volume of data and reporting data So you can have timeouts on your API so you want to query it multiple times and We need to add a synchronous API to do this and then we want to have a configuration a configurable rating period so For example your bandwidth you don't want to charge your users on an hour Perspective because there is burst and it's not really representative of their consumption So you want to charge them by month basis for example So we want to add this possibility so you can have an instance of time for one hour and then a bandwidth consumption for a month and That's it for the technical points Since you all see we're right here at the UDS Vancouver we're Are planning to Do some communication stuff like a dedicated website actually This is something that we've already started to work on and it should be on I said maybe in the next few weeks We hope so at least we're about to attend the cloud week in Paris, which is an event at Wilbur that will take place in First week of July. I think we hope to be there at the next ODS in Tokyo for sure Cloud kitty is actually running in production in some of our customers already We can mention the it era which is a customer of us Which is a small French company that runs a public cloud But we have a few of them who are using cloud kitty in production or advanced testing at least We hope that maybe You too Will use it or test it so please feel free to ask us for any questions you have Actually if you want to test it you won't start it to test it in production. You will just test it maybe on Dev stack so The integration and to test the cloud kitty on Dev stack is quite simple just take these two lines Here on your local conf and that's it. You start your you start your Dev stack and you have a cloud kitty So it's quite simple actually and Please come to visit us on our booth because We are here. It's a booth T 55 We're here to help you to answer all your questions because There are for sure many things you haven't been able to explain right here You may not have seen very clearly the demonstrations. So we have the link We have the videos with us so we can explain them to you directly We can talk with you. We'll be very happy to give you the last shots. We have to Not a lot unfortunately We will give of course. We will publish the the slides online Putting the links to the videos too. It would be easier on it and I think that's it you have our contacts here our Twitter and things like that and that's it If you have any questions, I think it's time Yes, so the question was We have apparently tackle quite deeply the rating part, but for a public cloud provider There are some other needs like billing and processing payments like that Can answer but you can answer too Basically, we don't plan to do that. We are clearly for rating The idea for us is to say that all the building stuff to produce the bill really to produce the file that your user will need and the Payment processing like you said all this kind of stuff is already for all the big cloud is already in place or All companies have their different needs. They're different tools. They're different process many companies that clearly so they They don't want to have another tool to do that So we are more focused on giving them the file They will put inside their tour inside their ERP using the right format and so that they can interact with it instead of Brought bringing them a new tour that we replace the exit tour with their all this turn and see like that So we're just tackled rating just to add a quick thing Actually, we want to bridge the gap between your matrix and your building system We don't want to do a building system because tax system is different in every country accounting is different in every country That's huge. That's huge. That's how to how to maintain and there is a lot of project to do that So basically what you can do is even write a storage back-end that will put it back in your building system directly without Even generating reports or you can even even create a new rating Module and use your building system. So you take data from quality Use your rating module push it back in your building system Pull it back if you need to get it back store it Even in your SQL SQL back-end or push it back again in some new building database That's what we do with the the client was mentioning earlier. They already have an ERP They are already have the building system the processing of payment They already have all these kind of things and they don't want us to Change that because they already have an infrastructure for that They already have clients or all these kind of stuff because they're not just doing public cloud They're doing other stuff. So they ask us to be able to integrate integrate with it Any questions? Yes Yeah, can you go to the microphone? Sorry, thanks Threshold buildings or you reach a certain threshold and you can up the rate But can you can you front load that right now? Are there any plans to do that in other words if you have customers that you already want to put on? The platinum plan or the gold plan and you want to charge them different pricing. Yes, we can yes That that can be done. Yes. So the question is that we have Threshold, but can we do plan for customers saying that okay this customer as Sign for sign up for this plan with this capacity and thing like that and can we chat for that, right? So yes, we can and actually some of customers already asked us for that. So it is it is a case. Yeah, and as a question Hi Yesterday in the rating session it became very clear that there's many people doing their own thing for their own use cases And in the end there was a question. Is there some place where we can all pull all this together? Should that place be cloud kitty? Do you intend to be the rating system for open so the question was Yesterday there was a yeah, you write on the microphone, but I would just repeat it Just to be sure I understand clearly The question was there was a rating session during the ops track yesterday and The conclusion the conclusion we were there and the conclusion was that many people were using their own system developing their own system And so do we plan to be a common framework for all of them? Actors we really hope so That's what we hope to do. Actually. This is something that we have started to do along Sometime ago already because when we start to announce Cloud Kitty, it wasn't last September or something like that We are runs it were quite widely a few companies said, but we're also doing something like that and we said, okay So that's great because we love to see that people are interested in rating And so we decided we decided decided to have a lot of meetings together to define the perfect architecture that we want for a rating system for open stack and so we Defined the architecture and at the end we compare that with the existing tool and It turns out that the architecture there was the closest to what we get was Cloud Kitty So we said, okay We should put our info all together on Cloud Kitty And so we have addressed a few points that were bothering the people The other company the people from the other company so that it won't be really open really wide that can address all the needs that we have for this architecture and Cloud Kitty is the activity you're seeing right now is this result Okay, thank you. I've got another question on scaling There surely there must be some scaling limits. Can you scale up to let's say 5000 hypervisors 10,000 virtual machines? so the question was for scaling and If they're I would just say that do we have plan for scaling to address a lot of data so Maybe if I can say that we want to have big users actually our clients are not that big so we will have more hundreds of VMs So we don't have real Feedbacks from big users so we are really happy To have feedbacks from great users big users So you can see where are the pain points and what we can improve to scale Actually, we're using Cilometer APIs. Some people don't like that We want to add a new collector a new key collector so you we can have better scaling opportunities and Basically, if you are using stack tack or every other stuff, you can just create your new module. It's really simple to Get a metric. It's just a module and your module exposes a function and the function is responsible of Pushing back data to cloud kitty. So it's really simple, but we don't have with experiences on big Cloud use age, but actually just to complete We clearly have developed our kitty to be able to scale So all the components that we explain you earlier They can be separated. They can be exposed. They can be exploded because they are communicating with a messaging like all these are Components in open stack. So we have designed open Cloud kitty with the same mind than the rest of the open stack components So to be a scale to be to be scalable So we we don't have the test case yet, but we think it should be okay. I have a question about The link between I would say a tenant and some kind of rating system So basically the future of open stack and the identity API is v3 I would like to know if there are plans to work with v3 because it changes a lot in terms of The way it works So we are working with v2 at the moment of Keystone we Don't have plan for v3 If people need v3 we will work on v3 But for the moment all our clients are using v2. They don't use a federated Stuff in open stack. So we don't support v3 at the moment If there is a huge demand for v3, we will look at it But at the moment we want to add new features Create a more robust Rating component like I said, there is some Stuff that we can improve like validity periods and we don't want to focus on v3 if we can have a Real robust a rating system before Actually, I think it's quite related to the previous question because the people who will be interested on all the new v3 identity stuff will be the one with a huge With the we've used clouds So if we are not able to bring them the scalability we we think we have and we've if we won't Start working on v3 Since you have noticed at the beginning with just a small company We are welcoming a lot of patches for sure, but so far the patch are not that often so We will come patches whenever they get whenever they arrive for sure but this is something that we might do clearly and we are really open to have a lot of feedback and a lot of Questions about that, but this is not on that. I will it's not on our roadmap yet because we haven't faced the need yet That's it And there's a questions. Yeah Hi, so I Do work for a large enterprise and we're trying to put an open stock and one of the things that comes up is we're looking at the Reading side as of right now everything. So I have a couple questions Just mainly I guess feedback or maybe feed food for thought One question is the financial auditing aspect of things anything financial related There's an entire audit trail and things that need to be maintained I'm just curious. Is that something that your clients needed or you guys have started looking into or thought about? so the question was Usually when people are using to I started to touch to the Billing system or to the money actually Then it's to be an audit of the financial stuff I a customer did quite a lot of tests on their own system to see if it was working They didn't have outside a proper financial Audits like this, but they did a lot of tests and tests and a lot of testing and so far it was working. Well, so That's it But we if you have any idea you can do that properly sure Mainly by auditing what I mean is that Financially posts so two years down the road They should be able to see the history and make a report saying that these certain things had this much charge at that certain time So those that's the auditing part second question I had was People did talk about having having customers on platinum gold things like that. That's very interesting Within an enterprise we have I call it funny money where one park has to pay certain money But since Nobody in at least in the enterprise We don't have the credit card system where you put down the credit card and you'll get charged as you keep getting using it So it's usually an upfront cost So I'm curious if any of your clients have thought about or have you guys thought about maybe looking at You put in a VM or a project and you say that this is the upfront cost that they have now provided And then as the time goes on at what point they did below How much they had initially paid so I can go back and ask them for more money Is that something that has ever come up? No, I don't think so. No, I don't think so Actually we are welcoming all the ideas we we have created a quality to have an open source rating component so everyone who wants to add new ideas and Shape the future of quality. We are really welcoming them Because everyone is creating his own rating system and building system and we want to share all the Knowledge of every people on the rating part to be able to have a solid and robust rating part Thank you. I think we are out of time. Yeah, you can just talk to us right now Thanks