 Alright folks, welcome. I am Paul Pindell, I'm with F5 and we're here to talk about open programmable infrastructure. I want to let my co-presenters introduce themselves. Hi, I'm Dan Daly from Intel. And Chris Murphy from Red Hat. I work in emerging tech in the CTO Office of Red Hat. Alright, so I want to apologize right up front. We've got a dinner at about seven o'clock so we've only got about an hour and 45 minutes to talk to you guys today. So first off we want to talk about what is open programmable infrastructure project. Something that we've been working on for a little over a year and we've got some announcements to go through. Some what is it and why is is it important? Why do we think you guys should care about open programmable infrastructure? We'll probably call it OPI project for short. So if you take a look here the open programmable infrastructure OPI is a standard strip in organization and we want to make sure that folks understand we're not talking about a technical standards org. We're not talking about an IEEE standard. We're talking about a common framework. Our goal is to create a common framework for these IPU and DPU like devices that we can use to interact with them and interface with them and configure them, provision them and monitor them. So that's the goal of what we're trying to do here and these are next generation devices. They are up and coming devices. Some are in the market today. Some will be in the market soon and they are devices that we're talking about in this talk. You can see links to our website and to our github where you can find all sorts of extra good information. I want to talk about the why. Why is it that we think this is important? And the best way to do that I think is with a quick story. So around Christmas time this year we were getting ready, my family, to go over the river and through the woods to grandmother's house we were loading up the family truckster, got it all ready and my wife came to me and said have you changed the windshield wipers? They need to be changed and it was six in the morning, it was dark outside, it was raining and I didn't want to change the windshield wipers but I had the windshield wipers so I went out to change them and I opened up the package and out of the package fell 17 different adapters for my windshield wipers and a couple pages of instructions. Instructions like find a penny and use the penny to figure out how wide the arm is. If it fits inside this slot then you need to use this set of instructions, if it doesn't you need to use that set of instructions and so here I was in the rain getting wet trying to change my windshield wiper blades and I don't know I have any of you seen a Christmas story Ralphie knock your eye out? Yes so I was like Ralphie's father cursing at the furnace at my windshield wiper blades and as I got them done and I figured out what was going on and I got the right set on and all that stuff I said to myself there's a story here this is exactly why we're looking for the open programmable infrastructure to become a thing. What if there was just one way to interface a windshield wiper blade with a wiper arm on your car? What if they were all the same? What if there was just one way to do it and it was easy and everybody knew how to do it and there was three steps and you were done. That's what we're trying to do with these different vendors cards. These cards fit in servers they could be in a switch but how do we interface with them in the same manner across any of those vendors solutions such that we can get a a set a level set of functionality out of them. How do we make sure they're easy to provision? How do we make sure we can put security services on them and how do we get all of that done? So that's the why of what this project started with about a year 15 months ago I think it was. We have a couple announcements today we're really excited about this we've been this has been a long hard trudge to get to today for us. Many of us started this not being open source experts and knowing what to do and today we're excited to announce that OPI is joining the Linux foundation has joined the Linux foundation we are a the newest Linux foundation project. It's been a long process and we're excited to do it. And here are the the members that have the founding members that have joined these eight companies Dell F5 Intel Keysight Technologies Marvell NVIDIA Red Hat and Tencent Cloud. So these eight companies have put their money where their mouth is they're joining us in this effort to fund this project and make it available. Doesn't mean that's the only way to contribute to this project there are lots of other folks that are contributing to the project that are doing so by contributing code contributing their time contributing resources and there are several that are in the process of becoming members putting their money where their mouth is becoming members and supporting this project that way. It took each of us I think each of our companies quite a bit of work to get through the legal hurdles get through the procurement process get through the oh can we say that in a PR process can we all of that marketing stuff all of the legal stuff that had to happen to create this project some companies just didn't get it all done and they're working on it and they are we've heard from others that are interested and are on the process and working to join the project as members so one of the things that has happened is the IPDK the infrastructure programmer development kit has joined the open programmable infrastructure project as a sub project so it has the same governance under the Linux foundation and the same it will have the same technical committee and all of that so it's it's a sub project within the OPI group and with that I'm going to hand it to Dan. Great thank you so starting with that I wanted to maybe get into well what is a DPU what is an IPU and I don't think I have enough time you said we have till dinner yeah yeah we've got another hour so instead of trying to go through the the tight definition of that let's start with how they're really different from what we're doing today so today if you look at from the one million uh uh foot level if the CPU is running some applications and it has devices it has these peripherals one of which might be a network might you might have some disks you might have other types of things that you attach GPU to your CPU the DPU and the IPU if if you look at what fundamentally changes is that instead of that being a peripheral hanging at the bottom of the CPU it is now an independent entity that is attaching to the CPU over PCIe and so we create this independence from the CPU so that we can provide services that are programmable these infrastructure services that allow you to say well today I want to push a set of ports maybe a set of device disks maybe a set of GPUs to the CPU provide these services you know program programmatically and this is a really big change and so this this is one of the reasons why we need a group like this is because now that we have you know made this fundamental shift in the platform uh how do we program it how do we take this newly created control point and make it secure make it run all the applications that we need to run and be able to program it and so instead of kind of getting into the really dirty details about that uh what exactly these devices do we can draw a box around it and say this is a new separate trust boundary uh from the CPU and so now how do we get in there and how do we bring up that system and so to break down the the three key things that we'll be working on inside of OPI the first step is to independently boot that system bring it up potentially making sure that all the right security pieces are in place provision it give it all its credentials make sure that it can access all the different pieces that you have and then once you've brought it up uh you want to operate it so put the operating system on there and start to program the little bits and pieces that might be inside of that platform some of those bits and pieces might be sort of specific to it being a dpu or an ip you might have an accelerator you might have special networking you might have some capabilities that maybe you don't normally have on the cpu but in this special platform you want to have some standard interface to go and get at that you know that that new specialness that's on that that's on that ip or dpu and then lastly you know something that really differentiates this from a regular peripheral is that's running real applications and sometimes those are those same applications that you used to run the cpu where you're doing virtualization maybe you're running open v switch maybe you're running something for storage uh some of those applications that used to run on the hosts have now migrated down into this new environment and it would be really great if they don't have to change that much when they make that transition into this new environment and so you know if we uh are successful in sort of standardizing these three things you know we will have created a ton of value where you know people can take their applications that they've developed bring it to opi test them out and see if they work or if you're a vendor you can bring your device dpu ip you or whatever you want to call it bring it into opi and see if it you know adheres to all the same parameters that we've defined and so our approach then is not to create some new standard to say all right well this is you know uh run this software stack and you now you have yourself a dpu ip you whatever instead what we're going to do is try to find a pathway where we can reduce some of these variations that we have so we started with boot actually and we found maybe a hundred different ways to boot the thing and so we want to find a secure way to do it you know uh that covers all the right uh checks all the right boxes but you know gives us uh you know a very clear way to to do all of these different functions the same we also want to start reusing some of the things that we already have on the cpu that we know work and mentioned open vswitch there's lots of things that we're already doing in network virtualization that we want to reuse there's lots of apis that we use we want to make sure that kubernetes can run we want to be able to do the same things we're doing with service mesh all these things that we uh uh are expecting to be able to run on a cpu should be able to also run uh on an ipu dpu and then lastly you know we've have uh all of these best practices for say security or for power management or just sort of lifecycle management in general being able to put these new devices into your fleet and manage them as a whole you know we want to be able to recycle a lot of those same ideas and just reapply them to this new new platform uh another thing that this platform can can do is it can have certain allows you to have certain controls over what's happening on the cpu and so we want to be able to when we take those you know security practices of reapply them to this new environment where you've introduced this new control point so uh uh you know this is a picture that we've been using for about a year or so uh that kind of describes the evolution if you look on the left is sort of the stack up of the cartoon of of what you're doing when you're doing network virtualization today and when we move to dpu's and ipu's we draw that trust boundary line we chop the system in half we move a bunch of stuff below uh and so the the this this on the right hand side becomes our problem space because once you've introduced that cut line you know uh what are you doing to make sure that the that the systems independently are secure and how are you you know able to move those functions that used to be on the cpu move them down into the ipu and then allow and dpu and allow that the ipu dpu to provide the right abstraction is back up over the pcie uh and and back into the cpu uh it's it's all about control really as to be able to uh one of the common functions that you have in these dpu ipus is for them to boot the host to be able to say uh i'm going to boot up the infrastructure below first and i'm going to use that to determine okay well what image should i boot on the on the cpu what mechanism should i use to boot the cpu should i should i pick cpu to it should i pass it a disk that has its has its image uh it allows you to give uh you know a a nice bounding box around the cpu in addition to booting you can also pass it it's i o that maybe it's been assigned you know a lot of these uh techniques came around uh the idea of bare metal hosting to be able to provision uh you know an entire system and be able to give it its boot image give it all of the discs that it wants all the ports that it wants all the i o that it wants uh and be able to you know control the speed and the size of all those devices maybe i want to give it a one gigabit port as opposed to a uh or a 10 gigabit virtual port and so these are the types of these are the reasons why we draw that line uh and these are the reasons that uh you know you couldn't really do this with a smart nick because the smart nick booted up and was part of the the system uh another really nice side effect of this separation is that these new devices do have a whole bunch of special stuff on them to accelerate these common functions they'll probably have something to accelerate their networking or make their networking programmable they probably have something to do high speed crypto to be able to do compression and so we can within opi create uh you know apis that are specific to those special accelerators and not have to run that special accelerator software on the host itself we can keep it in the walled garden of the ipu dpu uh makes it a lot simpler to sort of standardize and make it and adopt so uh so so given that you know our plan really is to start with a set of common approaches that we see you know uh in the open source and curate pull down those those pieces that are valuable and be able to find that that common thread and be able to reduce that that that variation down to something where you know we're supporting the right set of applications and we're making it easy for a new vendor or a new device to come into the environment and and run and these common programming models will make it easier so that you know we what we don't want is everyone to bring their own sdk have their own api and then and then if if you're going to try to make sense of this you have to sort of adopt that vendors api instead we want to flip it around and say all right well here is the set of software uh that uh that we've pulled from the open source that we want to work and you can be part of this environment if you can support these uh these different design decisions that we made and that allows you know that sort of uh more flexibility in in both the top and the bottom it allows uh if i'm an application vendor and i want to bring you know my value to this environment i i can come to opi look at the different interfaces that are being used to you know to boot to program and to run applications look at those parameters and then be able to port my application and know that it's going to run on these different devices that are supported separately as a as a uh device vendor ourselves we really like this because it allows this common frameworks for you know to let our special goodness that might be in our device our special value add to come through and uh not have to you know worry about how to do all of the baseline functionality uh and so with that i'll digress and sure i just want to say none of those cowboy things on those slides were my idea no like did you dan added them yep i was like hey this is this is cool we got cowboy things that's on the cowboy yeah uh but they were not my ideas i know you were looking at me frank and saying chris put those on there was not me so um specifics about how our our group is functioning so um we have different subgroups we have one main group meeting a week and then all the subgroups have you know individual meetings some of them are weekly some of them are every other week depends on you know what's going on in that group um but these are sort of what they are we have an org group that works on just forming and how do we bring a new members and things like that um we have a vision statement group uh well vision group that focuses on you know what is the direction of the project what are we trying to accomplish and trying to connect vision across some of the technical subgroups and align things right um outreach and event group helps plan things like this like where we're going to come do an event or some of our uh virtual events we had one a few months ago we will be having more events probably virtual i think in the in the coming months so if that's something you're interested in definitely check out our um project website and we'll be announcing it on there um but yeah we plan to go to other conferences and talk about what we're doing like dan said we want to reuse things part of reusing things is working with a lot of other open source projects right so in order to go and collaborate we will be you know attending other conferences and things so we can collaborate with these other open source communities right we don't need to reinvent every wheel every wheel is going to end up round so let's figure out who's already decided how to manufacture a wheel and work with them the orientation group that's really just me um but it's about bringing in new members you know getting them access to things and teaching them about um what we're doing if anybody wants to help it doesn't have to be just me um minimum requirements group this group is focusing on you know what are the features that a piece of hardware needs to have in order to work with this group now that wasn't to be exclusive or in trying to keep certain vendors out but really we needed to define a common base because you can't boil the ocean so we needed to start with like these are the features these are the things that are required as a minimum base in order to work with our project you know um things that differentiate you know this hardware from a um smart nick for instance you know being it having an independent cpu having enough resource to run an independent operating system you know attaching you know via a system bus things like that are things that the minimum requirements group has defined um those are all published out on our github so if others are interested in learning you know what those minimum requirements are we have those published um our governance group so governance group the first thing the governance group did was try to figure out which um foundation we wanted to join we have made that decision we are here today we are joining the linux foundation i have never personally launched an open source project before this has been an adventure and i have learned so much yes and i think we're all thankful that we have resources within our companies that we could ask and helped us at red hat we have a ton of great resources for this but it was still an adventure governance has a bunch of other things to accomplish yet now that we have joined the foundation we will have you know uh board members we are going to stand up a technical steering committee you know and we have a bunch of things to accomplish around that so more governance things coming in the near future um open apis that is one of our technical subgroups so the open api subgroup is um trying to focus on making an api abstraction layer that will help um application vendors and software vendors you know write to one common set of apis and be able to swap out the hardware underneath that works right so this is very important to a bunch of our customers we have heard other customers said yes i like the idea of this hardware but if you're going to lock me into a single vendor solution i'm not coming you have to do it in a way that i know that i can still be flexible and i can you know write my application one time and maybe i need it on this vendors card for reason x but over here i want it to run on this vendors card and i don't want to have to rewrite it every every time for each vendor i will say from red hats point of view that is important to us too you know for us when we're trying to look at how we integrate this hardware into um open shift or into open v switch you know when you're looking when you're talking to the open v switch community imagine if we tried to come to them and we submitted six different patches for how we want to do dps for each different hardware vendor how are they going to feel about that how is any open source community going to feel if every single company and every single you know person who wants to play in this space wants to do it different the ecosystem just will not thrive right we're all believers in open source or we wouldn't be here right and one of the beauties of open source is being able to come to a consensus in a way of doing this so open apis will focus on multiple different areas everything from networking storage security there's a whole lot of different um telemetry monitoring are all subjects they know that we're looking at like actually telemetry might be in the provisioning that's not provisioning some groups sorry but anyways um looking at the different ways we're going to try to create an abstraction and api layer um for this ecosystem um the use cases subgroup is focusing on defining some some use cases taking input from our customers of where we should start right there are so many things we can tackle in this space but defining you know where we need to start and where the customer demand is for the use cases we go after um that's part of what the use case group is um defining and then you know they can um push those requirements into the other technical subgroups for like this is what the customers want to see this is where we should be focusing um provisioning is um our third technical subgroup and this is provisioning and life cycle management so this is the group that is focusing on how do you boot the devices how do you connect to them to do debug um how do you talk between the dpu layer and the cpu layer how do you connect it into the system you know all those sorts of things how do you do security you know um a lot of this may be reusing existing things because these are not new concepts but how the pieces fit together defining that testing that together and creating a blueprint of a way to do it that's what we want to accomplish right um this was something that came up early in dpu's for red hat when we were talking to um some of the system oem vendors right you know we were saying hey we want you to go to market with us you know we want to put rel on a card or whatever can you do it on your manufacturing line and and you know i mean the response was we can't do this different for every card give us one way if we're gonna have to change our manufacturing process it has to be consistent right and there's not consistency today right and it's complicated you know you got to read through all these instructions and there's no easy button half the time you can get you know something stood up and then you look at it sideways and now it doesn't boot anymore and you know i mean it's complicated we need to reduce the complexity um and make it easier for our customers or this ecosystem will not thrive right i mean we're really trying in our technical subgroups um to do the things that will make this new hardware be successful but hardware isn't going to do anything for you without secure easy to use consistent open source software that's what we truly believe right and that's why we're all collaborating here because we believe this everything application vendors platform you know and vendors um adapter vendors telcos you know different customers you know everybody really believes in the vision right um what we need is more technical folks to come help us drive this vision we have so many experts across this you know industry in different areas and we're gonna need help from a lot of different folks to engage in our technical subgroups to make sure that we come to the best solutions right so our technical subgroups along with our other subgroups but we would love more participation so if any of these groups sound interesting to you um oh the last one i forgot poc sorry steve steve leads the poc group and i almost forgot about it um so the poc group is you know trying to take um potentially some of the things the other sub technical subgroups produce and you know standing some things up on um actual hardware showing how some of the pieces fit together you know at first it will be you know simple and over time it's potentially going to grow but it's really about you know showing how the things can work together having some things customers can try out putting the pieces together and doing the integration if that sounds interesting to you you can talk to steve so if any of those subgroups sound interesting um this is the link in our get hub to where we have the descriptions of all these subgroups so it goes into more details about whatever subgroup is doing and it also has um the subgroup leaders um information their name on there and you can click on it and if you join our slack channel then you can go that will send you to the slack channel and you can go into the subgroup channels and just show up there and raise your hand and say hey i would like to be added to the meetings and the subgroup leaders will get you involved um so it's that easy to contribute um to any of these subgroups and there may be more subgroups that come up right this is just where we're starting today as more things come up we may have more in addition to you know the subgroups um opi is kind of an umbrella right and we will have other sub projects under it today the first um sub project that we have officially under opi is the ipdk um sub project and we expect more and we we welcome more and in fact currently in the works nvidia is you know recently officially joining the project and you know looking at how to contribute doka components potentially as a sub project um under opi right um but yeah we expect there to be more um sub projects as we go along so how to join already talked a bit about joining the subgroups that's one way you know you don't have to be a technical person we can use all kinds of different skill sets technical folks also super welcome um to come and participate in the subgroups if you have a sub project that you think hey this should really live within that opi umbrella we're interested in bringing a sub project come talk to us you know and we'll see if that fits and we think it wants to be you know a sub project um under the opi umbrella as well um so that's another way um to do any of the technical contributions you don't need to be a you know founding member or a premium member there are other benefits that come with if you are one of those so we'll talk in a minute about how you would join that way as well okay so links how you get to some of this information say the opi project websites um on that website up in the um upper corner there are links to our slack um you click on that link you'll get a slack invite that is the easiest way to talk to us there's a main channel in there come in there say hi introduce yourself be awesome um let us know you know you're joining we can get you invited to meetings there are also a bunch of channels for all the subgroups feel free to join any you want or if you need help figuring out where you know might be the right place let us know um so there's that but also on the opi project there is a a join um link and there you could fill out a google form that will provide us with your email address your github id and we can invite you to meetings get you in the github you know so you can start contributing if you you know you're ready and you want to come join that's great ipdk also has their own website and their own github you know that you can access to learn more about ipdk specifically and how to contribute there that's another way um now the linux foundation piece like i said there is benefits to being a actual can you know paying member of the project right you get voting rights there's different governance things we have them all you know documented and we can share but if anybody is interested in their company officially joining the project like our eight founding members and more that are in the works we've provided the link here the enrollment form you can fill out and then you can start the conversation with the linux foundation about what it takes and all that or if you have questions reach out to us and we can give you more information on that part as well all right one other way to interact with us we have one more session here on thursday we have a panel session or a birds of the feather type session here's the information and the link to where it is on the os s um schedule but it's on at noon um various members not just us but some other founding companies are going to be there it's a great place to come chat with us learn more let us know if you're interested challenge us if you want you know hackles i guess you could if you really want um so that's the information about that session and we would love um you guys to all come and participate now um before we do questions i wanted to ask all of the opi community members that are here because there are some members from our other um participating companies here if you guys just want to come up and you know give yourself a quick introduction in what company you're from all right come on guys you can do this i'm uh steve royer and i i work with chris at red hat and i am also the uh the the project lead for the poc and uh dev platform uh group that's it yan fischer from red hat um i lead our vision and goals group and also our governance group um so i'm working with chris from very beginning and paul as well so hi i'm to vote from my bell technology um i just come on in um i just joined two months ago yeah yes yeah so i'm still learning my way but yeah obviously my bell dpu hope to play a part in this ecosystem hi i'm laura hendrickson i work for f5 networks and i've been working in the background on this project since inception just i haven't been i've been doing threads awesome um somebody want to get like a group picture maybe erin can you just snap up sorry let's all get in okay okay that's true that's one yeah there you go awesome so questions you yes so the question for those online was that um he says dpu's ipu's they're interesting hardware specifically because they're our compute and he's wondering if they typically have a management interface like a bmc or do you use redfish or like how you know do you interface with these cards not all of them do i will say that um to be secure i would say it is it is um what you would want to be able to separately manage you know that hardware um early on we um put a stake in the ground that in order to work with opi the cards need to have a bmc on them and an ability to do you know management and we are looking at redfish as a a prime target you know for doing that um the rules may be not as clear cut because maybe the bmc is not on the card but it's in the server and you know so there's a little bit more wiggling as we're trying to figure out exactly how this is going to work but yes exactly um in order to do this securely and stuff yes you want to be able to separately manage it okay another question here yep yeah okay so the question is have we thought about um management software what would we use to talk to the ipmi interface and does it unify across these devices yeah i would say i don't know about you just but uh not not yet and uh but we know that those are out there and again this is a great area to be able to reduce some of the complexity and you know i think uh we look at let's say ovs is a great place where we can all agree that that's a great place to start for networking on the management side we're we're still looking for that sort of obvious uh choice to to make so that we're not just sort of building a sort of redfish you know bridge to nowhere but we've tested it with something that that you know we can agree upon you know is a good at least reference for for doing that function because it's definitely required and to manage at a cluster scale you know we're looking at kubernetes as a as a way to manage like a cluster of dps you know um or a cluster of cpu separate clusters for security reasons potentially so those are some of the things we're we're looking at yep next question in the back so the question is are there use cases that are already out in the wild and today are we still in like a poc experiment phase you know going on um if you know anything about aws nitro i would say their architecture is is yeah bare metal hosting is a great place to start it's a well-known use case that many of these dps and ipus are already in production on bare metal hosting and then you can sort of build up from there and sort of start to accelerate virtualized hosting and then on top of virtualized hosting you can start to accelerate kubernetes and then you can start accelerating service mesh start putting on firewall firewalls yeah you start to build up from there so yeah yeah yeah so yeah i would say that there are definitely hyperscalers already using um dps and ipu technology um a lot um and but there is there is a bunch and there is a whole lot more coming as the hardware has evolved you know early hardware didn't necessarily have a ton of compute resources on it um a lot of the adapters that are that are eminent in the market are going to be a lot more powerful have a lot more cpu um memory all that there's our timer is going on yep in the back as well we have a question online or okay we have one virtual question so this will be our last question and he said i'm interested in the project or i'm interested in this project to contribute do you have regular team meetings that we can join yes we do so we have uh generally it's wednesday eight a.m pacific i believe i'm in central time now so i think that's what it is yes eight a.m pacific and um if they want to go to the opi project org website click on the slack channel they can join the slack channel and ask ask us a question how to get involved and we'll go go about getting them set up and and send an invite to them yes that's the main meeting and then there are subgroup meetings too so if they're more if you're more interested in a specific subgroup area we can also get you connected with that and get you invited to the regular meetings absolutely and the sub projects like ipdk also have their own slack they also have their own set of meetings that are scheduled uh on their each of their different websites mm-hmm all right so we are done more questions more interaction at our panel session on thursday come join us or find us anywhere here um and we'll be happy to chat thanks everybody thank you all very much thank you