 Okay, let's get started. Welcome to everyone for this presentation on NFV resource management. And the collaboration we are doing with the Blazor project and the Promise project. Let me first introduce my two co-presenters. So we have Tariq Khan. He's an architect for the HPE's NFV architecture. And we have Masahita Muroisan. He's a software engineer working for entities public and private cloud solutions. And my name is Gerard Kunzman. I'm working for entity Dokomo, the lab or tourist in Europe in Munich. And I'll guide you through the first part of the presentation and then I will hand over to my colleagues. So what we are going to see in this presentation is first I'll describe the problem. Why do we need resource reservations? Then we will also introduce to you the two projects. The one is the OpenStack project Blazor and the other one is an OpenFV project called Promise. After this we will mention some possible solutions, how we think we could address the problem. This is still work in progress and also we can have some discussion on how we plan to solve these issues. And we will also then show what is the current status of the work we are doing and what will be our next steps. So the first question is why do we need resource reservation? So we have a private cloud or a managed cloud and there we don't want to over provisioning our resources. So we will always have to deal with a finite amount of resources but the demands can be infinite. And we have several users to this cloud so there might be concurrent access and resource integrity is very important. Elasticity is very important capability and also different requests may have different priorities. So some of the core services in our network we need to guarantee that they are always running but there might be some other computation and processes which have lower priorities. And then also for us it's not enough to just reserve a certain quota like 10 virtual machines but we need for the telecom VNFs for the services they may require very specific capabilities. So it's also very important that we are able to reserve specific characteristics of the resources. For other use cases and user stories I'd also like to go to this development proposal in the OpenSec product team. Here we have listed a lot of requirements and use cases around resource reservation. Okay. I'm handing over to Tariq now. Thank you, Geralt. Before I go into the use cases or the problem statement did any of you get a chance to attend the session right before this one on the first floor? You did. So you don't need to be in this session. So over here we are going to talk a little bit about the basics of reservation and why reservations are required and to give a couple examples of some use cases that we have used to drive. They came from the Promise Project and they're driving the development of the Blazer project. Now of course outside of these examples I thought, you know, of course we are city, almost everyone's traveling staying in a hotel so we can also talk a little bit about analogies of hotel reservations which are very applicable to what we are trying to do over here. So in this one one of the things is around the flexible usage. And as Geralt said, for private cloud, you know, no matter what we say, there's always limited capacity and we want to be able to use it. And while it's important for almost all use cases for the telco or NFV use case, this is exposing the need for reservation a little bit before things are coming from other places. Indeed this session this morning was from a proposal from Scientific Working Group that's also making a case for why something like this is required. So in this case what we are talking about is if there's a consumer who's going to use a service and in this case we just said watching TV and understand that live stream doesn't necessarily require instantiation of a lot of infrastructure but in case, you know, if you take it that you need to require, you want to be able to provide some service APIs and these service APIs are going to reserve some component and the reason the reservation is required is that at this point we don't want the end user experience to be that we tried to do it and the thing failed. And then you need to have an external entity orchestrator or something, go ahead and redo it. And it becomes a lot more important if the service chain has multiple components in it which is to say that it has multiple VMs or multiple things that need to be deployed. If the last one fails then service chain is not complete and we have problems of the user experience. So in this case we want to be able to have a service API to when it's invoked using appropriate and my colleagues are going to talk about it appropriate IDs then you want to be able to get access to it. And in the same thing the other use case is that what if the same user half-fit through it decides to record it and the recording means that now some resources were already being used, now we want to assign some additional resources and we may have some adjacency requirement for these resources so we want this not to fail as well. This is very similar to a group of folks coming to OpenStack Summit and wanting to stay at the same hotel. If you were a single person, you may, I don't think anyone does it, you may go and knock at the door of every hotel, do you have room? Or you may reserve and then at the time of reservation the hotel has not assigned your room but they had made sure there's capacity available and you have made your preferences known and they'll try to make sure that those preferences are met. So kind of recapping what we just talked about, it's around flexible usage where you're able to put in your requirements both for immediate should you want to but more important for future use. And this will allow the operator of the environment to come up with innovative ways of perhaps not charging or have a very small fee of reservation but you pay the full price when you're actually using the resources. Another statement is especially, again, more specific to NFV but applicable to other use cases as well, that if you want to be able to assign some or reserve some resources then there may be a need of resourcing of reserving very different types of resources. And in this case we're saying that if your employees, you know, they at a minimum, you know, most of the employees in an organization they require some kind of backup mechanism and they'll require some kind of remote connectivity or VPN access. So your existing employees may have a backup for a service chain along with some VPN service chain and you may have a situation where perhaps different business groups have different requirements. So it's coming from one resource pool and IP addressing, you want to be able to keep it contiguous. So you may do it but you may want to ensure that other employees that come in, they also are provided resources from the same pools. And if you don't have a mechanism of providing this level of reservation then the new employees in the same groups may not be able to get backup resources assigned in the same backup pool or the IP addresses assigned from the same IP address pool. Another option that comes in is where you may have, and again my hotel analogy, that you may have rooms that have different characteristics and those characteristics may be, you know, a nice view of the parking garage behind you or maybe looking down at Boston Commons. So you may, for some reasons, you may want the Boston Commons view or you may want, you know, two rooms that are adjacent to yourself. So in this case, we're just trying to say that if you have different, you have resource pools or compute nodes that expose different capabilities and they may be, you know, some providing better storage, some providing better connectivity then you want to be able to, when you're making the reservation be able to request appropriate resources. And again, we're all talking about using it through APIs and the last one comes into, since we're adding this time factor in the system, reservation system, now we have a little bit richer information that we are able to potentially collect. Now we are making reservations and which is very important information to be able to use for capacity. And this is very important information to be able to use for capacity management and some other management scenarios. So you want to be able to use this time information making the reservations and the reality of it, how people are able to, are using whatever has been used. So it provides a much richer set of primitives that can be used by capacity management system. It's a little bit more richer information on what is it that people thought they're going to use and what is it they're actually using. And then coming down to the same level of information can be made available for data analytics engines and of course providing a group that lets people have a view of how their reservations or what their reserve resources against the utilized resources are. And with that, I'm going to hand it over to Masahid to start. I think I'll take that part. So several years ago when we started to look into virtual network functions, this problem came up that reservation seems to be an important feature. So we tried to find some supporters or some community so that we can work on this issue and try to find a solution for it. So one of the activities we started was in OP NFV. We initiated the promise project. So this project is exactly addressing these two aspects that Tariq just mentioned. So on the one hand we need to have these reservations. On the other hand also we need to be able to manage the available resources in the future. What did we do in this project? So we started, first we started writing down the reservations from NFV perspective that we have for resource or reservation. So it's very important that we can do reservations for future usage, but also for some use cases it might be good if we can do reservations for immediate usage. Imagine for example you have a very complicated service that you want to set up and this requires allocation of many different types of resources with specific characteristics. And if you start doing this now sequentially and you like after the third or fourth step you run into a failure then you need to roll back and start everything again. If you have a reservation you can kind of test already whether the resources that you need and the combination of the resources is available or not. Also what is very important for us is we are supporting the ACNFV specifications and also this is why we need to have a solution which is very well aligned with this one. The OP NFV promise project at the moment we are having bi-weekly telcos so if you're interested in this topic I invite you to join one of our telcos where we can discuss also in more detail about this topic and all the information about the promise project just go to the week page in OP NFV and you can find the meeting dates, the emailing list and so on. So then also in OP NFV we cannot do the work standalone but we need also some upstream project where the code will be hosted for example and here we identified the OpenStack Blazor project which is the reservation as a service project in OpenStack. This has been already started a couple of years ago but then it was kind of stalled for one and a half years and now just recently a small group of different vendors and operators have revived this project and we have a lot of sessions also during this forum around the Blazor project. So in the Blazor project the target is we can lease or reserve some resources in the cloud environment for a specific amount of time either immediately or in the future and these resources can either be virtual resources like instances, volumes or networks but it can also be hardware resources so you can also reserve a full host with a specific characteristic. Some of you may know this project it was formally labeled climate but it was then the name was changed to Blazor and also here we have weekly meetings this time IRC meetings so if you're interested in this activity just join one of our IRC meetings also the URL is given here so you can find all related information about the project here and with this I want to give over to Masahito he will explain the potential solutions that we have to address the resource and reservation as part of the Blazor project. Hi, thanks Gerard. I'm Masahito I'm working for Blazor project so in my part I want to show you how the Blazor project solves each problem in that each use case is shown by Tariq. So for the flexible usage scenario we can use the basic feature of Blazor the Blazor defines the leases as top-level resource types in its API and one leases has multiple reservations and one reservation has its reservation ID so users create leases and reservations with Blazor API and then the user create their open-source resources related to the reservation with its ID so back to the streaming live streaming TV scenario this is how Blazor work in this scenario first customer switch on device to live stream TV and then service API try to reserve our computer resources as many as resources they will use in that streaming then Blazor try to reserve and then if the Blazor can reserve the resources it means that the service API can create their resources in this infrastructure for the future recording request the station is quite similar to that streaming scenario first customer try to record future event and then service APIs try to ensure the resources they will use in that request then if Blazor can create their reservation for that request the recording event will can create their computer resources for the recording event for the next heterogeneous resource reservation the use case is quite similar to the flexible uses so in this use case is Blazor will reserve storage resources and network resources as well as computer resources like VM or containers so when customer create their backup resources in their crowd the Blazor try to reserve the resources for new employees as well as the current employees so after the new employees coming in their division they can will use these reserve resources in same infrastructure in that with the old employees and then next for resource negotiation Blazor will work like resource endpoints to identify best case deployment scenario so I will show you the scenario so when customer try to create service change with specific characteristics for the VNF Blazor ask all data centers that they can accommodate the request in their crowd it mean that they try to create reservation is equal to asking that the center can create the reservation and then some data center will response the request then if the data center can create the reservation it mean that Blazor will offer the user the reservation that reservation has enough amount of resources to the request from the customer and finally Blazor project will give us some good information for the resource manageability for the capacity management, metering, analytics and for DUI so first for the capacity management Blazor will give administrator the information about the usage and availability in the future of resources so the administrator can think how many resources we will use in the future and for metering Blazor relate utilization information to metering service like Cereometer, Monaska and your own metering service and for data analytics engine Blazor will give the information to the engine about the pattern of request to how the user want to use their resources and then the engine can calculate the data can analysis any data of the usage and so on and of course the Blazor project will provide some DUI based on fly zone so all administrator can handle the information the DUI as well as the CLI and API and in my last part I want to show the current status and the next steps of Blazor project First, the latest Blazor project release is Okata release number 020 The Blazor project is a little different from other project because the project was inactive between Kilo to Newton release so we focused on reviving the Blazor project in Okata release such as using the author library instead of their own library and using Keystone with the API instead of with the API and of course we updated some documentation following the changes for Pyek Release we will be numbered 00 we are focusing on some improvement of reservation for computer resources the main feature in Pyek Release is new instance reservation because the other instance reservation in Blazor project was deprecated because the old instance reservation super relies on the Nova V2 API extension that was already deprecated and removed from Nova project and then another features are roughly categorized for improving the operability of Blazor API such as improving the updating or reservation by API and so on and in Blazor project in addition to the technical site we are planning we are thinking of improving the community site of features because like a currently Blazor project sorry the contributor of Blazor project is only from NLV areas and scientific areas so of course we have some use cases but we are welcome to people that people who are from different areas because we need more use cases and more requests for the reservation so if you have any requests to the reservation please join us and we are super welcome to them yeah thanks a lot so yeah I think this is very crucial so at the moment as you see we just started to adding some new functionalities and features to Blazor and we're still in the process of shaping how we do this so we need your input we need your feedback we need your use cases so that we go in the right direction I want to avoid that we go to a dead end we have a solution which is only for solving some of the problems on the short term but it's very important also that this is a solution that on the long run will be beneficial to not just NLV but also other communities so I'd really like to encourage you to go to the Blazor page check out the Blueprint specs that we're currently drafting give you feedback maybe join our weekly RC meetings and increasing the participation of the community is very important here and I think we were quite fast also with our presentation so we have some time for Q&A so do you have any questions around our use cases that we presented of course these were simplified scenarios do you have any questions on the specific projects often with promise or Blazor please come to the mics and raise your questions couple of questions I didn't quite get what is your unit of reservation in our case if you want to do reservations I want to be able to say maybe I want to reserve this 10 VNF and the VNF is a construct of many things together is your unit to have to ask you to reserve this many cores as many much memory storage or you have something different how do you express the reservation so we have different granularities in mind so on the one hand if you know you want to you need to start a VNF then you know the VNF needs certain underlying infrastructure resources so maybe you say okay I need like five cores but NUMA should be enabled and all should be like in the same data center so such features you would give in the reservation but how are you expressing that because in my case let's say I have a heat stack that expresses that the need that maybe I have a flavor identified a host aggregate that will have the right CPU pinning NUMA boundaries whatever it needs do I have to go and extrapolate all that out of the heat stacks and then express it in a different way to blazer or is there a thought of maybe you can extrapolate it yourself if I give you a heat stack eitherly this should be possible that if you have a flavor already this should be possible you can reserve this particular flavor but do you see what I'm getting at because the heat stacks could have seven handed resource types in some cases there's a lot of things to satisfy that need if I want to reserve that I don't want to have to go to the trouble of taking all that as a separate element of data yeah and the blazer first of all, the blazer doesn't take over the heat stacks I'm talking about maybe being a source of an input and then you can extrapolate what the resources are from there you don't have to execute the stack you can understand the jammal and pull the requirements of that stack as opposed to asking the user to extrapolate all that and now it's another item of work if you will another task of managing the VNF now to be able to gather a little bit of just an idea the other question I had is how do you deal with failure scenarios when you reserve something and again it dealt with placement and all that and something goes wrong and you lose some hosts or something and you have the reservation but you can't satisfy it anymore because you lost the capacity in that target stack yeah good questions I think the question was is under the discussion in blazer team how we handle the failure in the computer resources or other resources we are discussing now about how it depends on the user or blazer or cloud service provider it's like if you are the public cloud user sorry cloud public service provider the you could have some priorities through the instances or storage or something then the the role priorities will be removed from the reservation or something on the other hand in the NFV side the sum of the use case will be different usually different so the simple answer is it's under the discussion now for sure you need some notifications to the user I like this comparison also to the hotel reservation of course there could be a fire in one of the rooms and you have full house and you need to cancel one of the requests then maybe you have some VIP customers who are frequently visiting your hotel so you don't want to throw them out of the reservation system but someone else maybe and the third question you talked about blazer managing multiple clouds maybe I misunderstood but how is that working in blazer if you're you have many, in our case we have hundreds of regions and we moved away from a centralized keystone so every region has their own keystone in that model how would blazer work is it independent per region how do you know about multiple regions are you living above the regions are you living somewhere else in current implementation blazer only on top of one of one region so multiple region is also under the discussion and it's depend on the design it's depend on the architecture of users like you are using keystone in each regions but some users will use the keystone for all of their regions so of course we I think if there is any use case or request we should not blazer project should support multi regions is it answer for your question yeah I think multi regions something you support alright thank you hi folks it was a nice presentation thank you and the gentleman already asked most of the question I had but I have one additional question I do understand how you do the resources but my question is how you going to release them I mean like if you going to use the external cloud for your resources from the pricing perspective is almost same as it so just blazer manage the resource I mean release I mean releasing the resource it mean that which component will be in charge of deleting or creating resources is it for example like at first step you say like you need 100 VMs you might say okay I'm going to use 50 of them and another 50 I'm not going to use so you don't have to pay for the rest of the VMs then you can release those resources right I think it's depend on the sorry I usually say depend on your station but I think it's depend on the service provider the strategy the the the thing or something like that so if your crowd want to want to audit or check the number of your reservation the changing of the number of instances is matter you should change your reservation okay so it's not manage in the blazer yes I would say this is out of scope of blazer so there can be some policies how you need to pay for the reservation and for the actual usage and I think this is not part of the scope of blazer approach but in your specific use case you're not going to have a reservation you're not going to have a reservation but you're only using 50 right now and 50 maybe you'll use 6 months down the line because they're the time factor that's been added now so you'll reserve perhaps from a specific time now if there's another reservation request that comes in which you'll only use from the actual advantage and completely agree from the point of view how you monetize it how you do it outside closer there are two features of blazer that will be related one is the update of the reservation similar to the hotel reservation if your company wants to come to the summit and you plan for 100 colleagues then like one month before you realize okay the budget is not there but you'll have the reservation or half the reservation size the other one what we also think about and this is also part of the ATC NFE specification is kind of a no show so if you say my reservation should start from tomorrow noon and then within 24 hours you are not actually using the resources then for example also these resources can be freed for other users so nobody's on the mic so I may take the opportunity to ask another question just blaze API support some kind of bulk reservation I think gentlemen also ask similar kind of question can blaze API get input from the YAML file or something like I want 100 computer nodes and this kind of network and this kind of volumes attached to them such kind of features supported we'll support it okay great thank you so this is what we call a lease which can have several reservations inside so you can have the lease kind of is a bulk thank you okay we would have time for one more question I think people are satisfied thanks for your participation in our presentation and if you check the forum schedule you will see there are a few upcoming sessions on reservations or related to reservations so I'd welcome you to also join those discussions thanks a lot