Great, so let's let's get started. So First, please make sure you add yourself to the to the agenda in the meeting notes If you're not able to add yourself then speak up and we'll add you on your behalf Also, is there anything that anyone would like to discuss that is not on the That is not on the meeting notes added a topic on making progress on first responder use case Input coming from the use case discussions Yeah, thank you, Rob. You actually did this exactly the right way Which is what I headed out and something with the agenda. I would encourage those folks to do so as well Okay, so we have it so we have recurring for events we have a few recurring calls we have this one we have The NSM doc use case which occurs every week which occurs every Wednesday at 8 a.m. Pacific time and we have the NSM use case which occurs every second fourth and fifth Monday at 8 a.m. Pacific time as well. We are also participating in the CNCF telecom user group Which occurs every first and third Monday at 8 a.m. Pacific time The birds of a feather for next week has been cancelled due to the fact that most people the most of the people who are driving that the this particular group will be a cube con and There is going to be a talk on this is going to be presented by I believe Dan and Dan cone and and Taylor is that right Taylor? Yes, I'm I'm also sharing the Green there the link to the talk so Yes, sorry. I was muted. Yes This is and that problem title probably needs to just be updated from boff to tug so the intro for the telecom user group will be happening in there as well as You've seen a test bed is going to be related, but it's not it's one initiative related to the tug I'm not sure what all is going to be gone gone on that. That's still getting updated With Cheryl and Dan I'll be mainly focused on the test bed myself. So we also have a CNCF working networking working group that is ran by the CNCF that occurs every two weeks on Tuesday and That occurs at 9 a.m. Pacific time we have next week coming up. We have cube con and The cube con itself is from May 21st through 23rd. We also have a few co-located events Those colloquial co-located events are vital mini summit Cloud Native Network service day and we have talks in both of them as well In the main session and the main cube con session. We have an intro and deep dive in in the maintainer track so If you so if you'd like to learn more if you're if you want to if you want to join in help describe when a work service message to others Feel free to feel free to join in if you will be in in Barcelona We also have cube con China coming up at the end of June in Shanghai We have an intro talk that will be given by me and Nikolai We have on s Europe coming up Which is the call for paper closes on June 16th? So if you would like to give a talk there and If you if you would like some help putting something together Come come reach out to any of us who are To any of the committers and we will help you set up your your talk We have any of 2019 we have and cube con in November Well, both of them unfortunately located at the same time in different cities But one of them is in Los Angeles and cube con is in San Diego The call for papers for cube con is currently open. So again, same thing as on S If you'd like to give a talk there, you know, definitely speak up We will definitely be submitting a few network service mesh talks there as well If you have an event that is not listed Definitely speak up and also open a pull request. There is a link to the site and And so onto the social media community team Lucina you have the the floor Thank you Sure in the last week We gained 13 followers for up to 185 people following and service mesh on Twitter We've followed 200 more. So we're over 1,000 following accounts and We have 21 tweets. That's four over last week and retweeted about 10 things and I scheduled five tweets in Hootsuite to go out Kind of one a day to promote the intro to network service mesh the deep dive as well as the talks during the FTIO mini summit and the LFN session If there's anything that anything else you'd like me to schedule for I'll be happy to do that today and then I May set the account on autopilot until Cubecon, I'm also presenting to talks at Cubecon next Tuesday and Wednesday to prepare for cool Autopilot sounds great. I'm delighted that you have a scheduling tool going. That's awesome I feel a little silly that I didn't realize that was a thing The other thing I do suggest is if you have some other network service mesh related thing For example, I know we have people if you do talks and demos and booths, etc Two things that I would strongly suggest you do one is update the events page on the website and the other would be let Lucina know so that she can schedule things because create me if I'm wrong Lucina Adding at your leisure something to the Hootsuite for scheduled tweeting is not hard asking you to actually pay attention and live tweet things is Yes so so Which Also brings us to the frequently asked questions page. So That's something that I'm going to get started with Today, and I'll shop it around on the NSM in the NSM dev Slack channels that people can add or change their Views on things so that way that that way we have something ready for for Cubecon we have So Prem and I have been working on a on getting a meet-up set up in the San Francisco Bay Area Prem do you want to talk about it? Sure? So thanks for it so the idea of the meet-up is essentially to Start with a network service mesh and then go on to have Related talks example in a sum with NY and aspects like that so in a way Frederick, I was able to secure the funding at least for the I'll connect with the team and then The first one Also, just calling out in case of Anyone else interested, please let us know please Frederick nor Reach out to me and then we can definitely look on how if you want to host it Or if you want to partner in doing the meet-up, that would be good. Yeah, so that's the update and as a next step I'm working with the With our company to get funding for the meet-up.org. It comes with a charge we'll probably predict we can probably create the meet-up page in meet-up.org and then Probably then we can probably tweet about it and then publicize the event once we decide on the agenda nice and also, I had a talk with Dan Cohen yesterday and He So he also said that if we want to do anything in San Francisco City that The Linux Foundation has a space that can be used for events. Awesome. Oh So I told him that we will take him up on that as well But that the first one on this is going to be is is likely going to be held at Lumina, right as long as nothing as long as nothing goes Sure sideways on it. So So that's that's another thing that we that's another resource that we have that we can that we can make use of. Yeah, definitely sounds good. So Okay, so That's the next steps. I think we will get that going in the meet-up.org And then you can share it with the rest of the team Yeah, I think that sounds good and then once we run the first one and we gain a Sense of the size of the community We can we can start to look at like what is the cadence that we want to to run because one of the tricks to attracting a lot of people is to have very predictable set of meet-ups with high quality content and So if you're it says you're predictable people know to block off their calendars at a specific time And it just becomes part of their ritual Yeah All right, so we have my pleasure So we we have Since we have cubecon next week We the question is do we cancel next week's call at cubecon? And I also wanted to take the opportunity since I think we have the leads for the other community Weekly community calls here to give them the opportunity to consider whether they want to cancel their calls or not It's up to them But yeah, definitely this one we need to decide So to help with this the Cube the 8 a.m. Meeting in Pacific time it will be 5 p.m. In Barcelona Just for just for reference I'm super unlikely to be able to make this meeting next week during the cubecon There's just entirely too much stuff going on all the time I don't know how other people feel and in terms of the folks here and who's attending cubecon and who's not Yeah, I feel the I feel the same way and historically at previous events. I've also had trouble with connectivity there Yeah, that's also a thing. I know that 90% of the people who regularly attend the docs call is Gonna be in cubecon so I'm just gonna go ahead and call that one. So next Wednesday. We're gonna postpone docs for sure Cool all right, so Should we go ahead then and say we're you know, we've already got you know the call on docs is called for next week Should we say we're gonna cancel and put probably on the meeting? Site that we're canceling next week for this call as well I think that we should for this specific call and The last one is going to be the the use case call And that's rump. He's just rump. He's in Prim's decision Um Yeah, I think the use case is after that would be on 27th, right? They're probably you're right. Good. I think yeah I apologize. I got the picture on No, it's a it's a little confusing even I'm wrapping my head around these scheduling. So yeah Okay, so let's say Tuesday Tuesday and Wednesday the calls are Let's let's prominently put cancelled on them for this week and then we'll list next week and With that we'll we'll catch up next week and see what's going on. So we have Some preliminary release notes So someone can open it up So we ran this through the docs call as well. So this is This is the initial set of release notes that we're they were looking at So right up front the first thing that we want to do is make it easy for people to work out how to get started so This is where we describe How do you how do you install it? How or how do you link to? Material that describes you how to how to how to install it we want to To make it very easy to find out where it is and link them to to working demos and so Once we've done that and then we describe we jump straight into what is what is network service mesh? So I took a departure from from the norm not that we have norms yet on our own releases but very it's very common if you look at like Kubernetes and and Various other communities that what they'll do is they'll just list all the pull requests saying here's what's changed The problem is that if we do that we'll probably list around 900 commits from day one to today and so rather than do that I just I opted for I Opted so 800 commits, but it'll be it'll probably be 900 by the time we get to it But I I opted for Describing what network service mesh is and what the major set of components are and So there's a couple to do tasks that are that are in there that we need to that we need to fix up but Basically describing this in network service mesh. This is the this is the reference architecture that we're that we're releasing and also make it very clear that the reference architecture is Not it's not all of NSM that it's just a small part of NSM And that the big part is going to come as people continue to build on top of it and integrate their own other things into it Call out that it's a state is now a CNC of Sam Park box project We now have a logo when I wrote when we wrote this we did not have an official logo yet So we now have a logo that we're going to add in here as well And Finally a set of known issues So we will also have known issues And describing Describing that this is an alpha release Don't run it in production Yep, if you if you do run it in production then tell us everything that breaks We Go back to how to get involved So we need to fill in like where to find the meetings where to find score where to find us on slack mailing list, etc, etc and One last part is we have a document that we've been filling out and is basically a list of people who have helped make never service mesh what it is today and so We're asking people in the community to add yourselves to this and It doesn't matter what with how how small the the contribution wise I mean if it's just showing up here and asking questions on a and Well, we've had people who've come in here and asked a single question which has changed the trajectory of some of our of some of our approaches Today we're here to talk about Is that Dennis I think it's Dennis if you can mute yourself or just I don't know if anyone has the ability to use him Cool, all right. Thank you Yeah, so so it doesn't matter like how How large or small the contributions that you have are like if you've helped with use cases or you've helped with With documents or or so on like add yourself to this list because that really drives that work service mesh You know, it's it's it's not just a small handful of us at the at the top That that makes all this happen like it really is a community effort and there's so much of the community is done In order to to get us here And so we want you to we want to try we want to try to call out as many people as As we can is having help in the space. So The link is in the the URL and if you know of people who have helped that are not here Like definitely definitely have them in as well, do we have any questions or comments on the on the release notes? Yeah, I think that's something else we're going to put in known issues is there are a bunch of known issues about limitations in the kernel Some of which we've bounced into so for example, the Linux kernel Appears to have a global limit of 128 Mac addresses And it's on cable and so if you're doing something where you're programming neighbors as part of your connection context I can't make you mean you could go tweak your system to increase that limit But I can't make a default Linux system actually scale It's just it's not a thing it does So you can download the the kernel patch it Reinstall it reboot the system for a user. Well, you could tweak a parameter and reboot the system It's a doable thing. I'm not fair enough. But yeah Yeah, thanks. So That's a good call out We will have the same problem as well not only with with our prequests, but Systems with how many Interfaces you can have on a on a single system as well, which is part of the reason whether we really need to bring in Well, which is not really we bring it. We've already brought them in but to To encourage you use of things of things like shared memory Yeah, I mean, please. Oh, this is just kernel interfaces. My f's You know the limit is how much memory you have on the system The kernel interface is I think the limit is a thousand twenty four in total You know and that shouldn't be bad for most nodes at this stage But that that that limitation is going to become all kinds of intractable as servers go up and not just for network service mesh for frankly everybody Yeah, this might actually Give it enough time. This might actually be one of the one of one really good reason that People in the kernel community may actually, you know, We may be able to convince them to up that number if if it's not too difficult of a process, but Or make it more flexible It's kind of weird that it is Pegged at something that inflexible. I mean, I particularly the art table one blows my mind I mean, I've I've I've seen as you might imagine a lot of our table implementations in my in my day I've never seen one pegged that way Well, so how do you want to list these type of these type of limitations? Like where do we where do we want to store them? I think we'll just put them in known issues because they they are just known issues They're in some sense. They're kernel bugs and I don't think they're gonna bite most people at this point Most people are going to be using us for all three so they won't use the IP neighbors stuff So they won't hit that limit on our table size Right now most nodes are topping out at a hundred and a half nodes So a thousand twenty four interfaces is going to be much less of a big deal for them. Um, but as people sort of start growing up server sizes It's going to be more interesting Okay, so we'll add that to do known issues them It's added as a as a to-do as well for that specific one because that's going to be important So we have CI stabilization Ed you have four Yeah, so I just wanted to recognize those of you who have been doing development work the last week or so probably notice that we've had a lot of Trouble with our CI And it seems to have we sort of view Andre and a bunch of those guys have sort of rooted down this to a small number of Of root causes one of them was that as we've added new things like AWS we haven't always figured out the Figured out the right set of limits on quotas for things and I think those are mostly fixed now So we would hit a place where we couldn't create the clusters In order to do testing because we were hitting limits on quotas on various cloud providers. The second thing that's happened is We weren't cleaning up. We were actually leaking clusters Which is kind of a dramatic thing to leak and again, then you hit the wall eventually with the cloud providers And I think that's been fixed A third thing that happened was apparently some of the dependencies between jobs weren't quite set right So that you know, we would have integration tests that would try to run before Images were actually built properly and then they would naturally fail And then I think the last thing that we got cleared up was we had some places where There was some silent swallowing of Of clusters not being properly created which looked like Test failure because the test went to run and there was no cluster to run on but it's actually cluster creation failure So hopefully that will get enormously better at this point But I did want to sort of acknowledge that that's been a problem and what it really comes down to is Just Standing up stuff like this in the cloud to run reliable CI there there have been some learning Opportunities there I like the living opportunity It's all about tone Yeah, I I personally have found like If you if you want to work out how a system works, how do you Like how does this? How do you start up a project? How do you how do you run a server? What parameter are necessary and so on So if you're looking actually game editor A project how do you how do you run a server what parameter are necessary and so on so if you're looking actually game that experience Like CI is by definition That Like it's you're you're spinning up assist your building a system You're spinning it up you're seeing you're seeing how it works and verifying that it works And so so you have all of the code there that that describes how how these mechanisms work So it's it's actually a really good way to to get involved with With the with the project so if someone wants to if someone's been looking for a for an entry point and to never service mentioned it's having a little bit of difficulty and You have some previous And you have some previous systems experience By all means dive in You know and we'll and we'll help you Are there any action items that we want to call out on this said No, it's just one of those things where I noticed it wasn't on the agenda And I know that if I if I wasn't as involved in sort of getting to the small number of issues I would be super concerned with what I'd seen in the CI in the last week And so I did want to make sure that we brought it out front and center We talked about it. We talked about what was going on and the fact that we think we've actually shaken this out at this point It'll probably take a day or two to actually be sure cool And I think that that we should we should say it clearly that we have three public clouds plus packet which is again kind of public cloud Deployments in in our CI and synchronizing between these and Making sure that all these work The way that we expect them to work at the same time At the same time, it's I mean it just takes some learning opportunities Before before you do CI is actually incredibly ambitious We run patch by patch validation For a very large number of integration tests across the three major public clouds in North America plus vanilla Kubernetes on bare metal every single time And so it's a very ambitious CI and the fact that you know, we're actually doing it is quite awesome. Yeah, and in terms of In terms of best practices in the application world, so they there's this There's this push towards What they call continuous Continuous deployment and continuous delivery. So this one is not continuous deployment, but it is continuous it is pushing towards continuous delivery towards that direction and It's just exactly as you described any any commit you go through runs through a large battery of tests Things are fully automated if something breaks you fix the automation you fix the you fix the bug and you don't And you don't wait until like a nightly test or a weekly test to work out that things are broken because by then You have no idea what broke things Yep so Nikolai you want to talk about the Android release Yeah So I did and I believe a couple of other people who did some grooming around the backlog here and what's in progress We also merged some things And Think that we are I mean Okay, today we were supposed to do the The release but yeah, still we have some issues but still I think that we are in a good in a good shape Relative to where we are. I mean what What's what is the status of The backlog what was it like three three weeks ago, so I think that we have pushed out here So what we spoke last week was that we are going to consider Creating the release branch at some time around today so that we can We can have a stable set of demos there for the cube con So I am fine with that. I mean, I think that's that we are we are the stage where we can we can do that I mean at least regarding the demos. I don't think that we have any issues there and they should be They should be completely fine. I mean if if we branch today, that's one thing on the other on the other hand we also There is this push around consolidating the images that we use in our CI And I am also I don't know how many of you remember but there is another repo code examples where I'm also pushing some things there and I'm also working on Moving or at least replicating the same examples that we have in the main area put there so My question here would be do we think that the examples could be this source of truth where we actually do the The demos from or we should just keep the idea with the branch and continue with it Yeah, the other one I would want to throw out there is I kind of like to see CI stable for a couple of days before we pull the branch I really want to see the branch pulled not only for the demos of cube con but also because that freeze up master again You know for development and there's a lot of good reasons. I want to see the branch pulled But I kind of like to see the CI relatively stable at least on map, you know as it's coming across on master For a day or two before then just to make sure that you're actually stamped out the CI problems And we're not gonna have to try and double commit those CI fixes Does that make sense? Okay. Yeah sounds good Yeah makes sense of course Okay, so then Then let's just quickly quickly go through the through the in progress things here So we have a couple of things around IPv6 Which seem to be blocked more or less On some Some problems that we found with bringing in To the latest VPP release 2.1 So I'm not sure if If this should be a showstopper for us, I mean like should we consider IPv6 for the release or should we not I think that for the time being we can but Maybe we'll see that down the road other than that. I don't see anything that is really particularly outstanding Probably mostly things around the CI and I would agree with you right here that maybe maybe maybe this should be our Our main point here. I mean just make CI stable and then branch and Yeah, quite frankly what I would really love to see is I still would like to see us push to get IPv6 working If we can We have a little bit of time before we pull the branch because they're going to get sky stable So we can keep pushing on v6 and see if that comes together if it comes together it comes together, but you know Having v6 working and I think would be really really a good idea So IPv6 payloads it really depends on the Just fixing or at least figuring out what's what's going on why they started failing when 2.1 Gets in But for the cluster, I think that that it would be I mean our our CI and everything is so complicated already I think IPv6 on top of it before we consider a substantial Refactor or at least some kind of more constantly dating this whole Big YAML file that we do. I know that Andre had some ideas around changing the CI I mean It's actually one of the reasons that I think I'd be really happy when we get the branch pulled Because the kinds of things that that Andre is wanting to do I think are super good and important in terms of simplifying the CI But I'm not sure there are the things to do late stage on Yeah, of course, of course, of course Now, I think your point is that the world we're too far along to add the IPv6 cluster now I Need to say if that turns out to be the case then Getting the branch pulled earlier is also good because that work can push forward on the On master and what was the issue that we needed to go version 2.1 of the agent for the payloads The issue is that tests are failing with 2.1 No, but why are we having to go to v2.1 Is by question and for v6 payloads. Oh, yeah, because we needed to To enable there was a syscatl to Enable IPv6 in the containers which needs to be done. Ah, yeah. Yeah. Yeah. Yeah. Okay. Yeah, I get this For those of you who have not been following closely It turns out that the network namespaces if you're a v4 cluster They are set up to not allow you to have v6 addresses in them by default And so there was a fix that needed to make that not so so that you could have v6 interfaces for payload dropped into pods in a v4 but only So, okay So that's the thing we can sort of figure out the question I would have on the the v2.1 patches Are we seeing are the has that been re-based on the fixes that we've done for the CI so far and or could it be Because there's a lot of weird shit They got fixed Yeah, okay, so the last push was Seven hours ago. Yeah, it might be worth encouraging him to Basically to to re-update for master because I think there are some things that have been fixed recently and try again Sorry guys, you call I Probably with IPv6 we could check Google Cloud since as I've seen it has both IPv4 and IPv6 IP addresses for pods Yeah, that's not not the problem in our packet also has both addresses. So that's not really the issue I mean Regarding the clusters. I think is that you essentially you will need we will need to have a separate deployment for for Kubernetes cluster Additional to whatever we have now. So, okay, ideally we we should just deploy Kubernetes again with IPv6 enabled and then run the test again and this will just explode all the All the CIs test that we have already. I mean it will be Yes At the moment, I'm trying to as pipelines Could be a bit better We'll figure out So here's what I think I'm hearing right which is the the IPv6 kids cluster Stuff in other words running NSM Cluster that may bump out to the next release because the timing the testing NSM with IPv6 payloads Let's go ahead and see if we can get the Get that patch updated to what's currently you know on top of what's currently a master The test fails that I'm seeing there are look like some that we solved with some of the fixes that went into the last year That really cause infrastructure issues. So let's go ahead and see if we can get him to update this to the latest On master and then let's rerun the CI again and see where it stands sound good Yeah, now real quick for our IPv6 proponents on the call and you already made the call to know in the chat Is my question is Making sure we have IPv6 payloads working on Basically if you had to pick between that and having working on an IPv6 cluster, which one do you care more about Can you ask that one more time Ed? I was you were breaking up in my headset. That's okay So we have two things on IPv6 and and I would like to get both of them But priorities are always a thing and so that I find it most productive to ask people to priority or rank things So for the v6 proponents, which do you care more about having v6 payloads running across the network service mesh? Or having the network service mesh running on a kubernetes IPv6 only cluster me IPv6 only cluster Interesting, okay, that is not what I would have predicted Jeffrey do you know anything? This one's tough. So once again The service provider redheaded stepchild. Um, I have like it's like dictated like anything I do must have IPv6 support So I need both if I had to prioritize I would probably pick payloads because for the cluster itself I can cheat and put an IPv6 zip in front of the services and then I'm just do IPv4 local And I mean long term though, I want both but I would probably start with payloads personally So just a little bit of information of changes in kubernetes coming up. There is in the near future. They're aiming for For a summer release. They are they're going to have dual stack IPv4 and IPv6 working so we may be able to Make use of that in this in this scenario as well. So christmas is coming this summer. Got it That's a very I would say it's a very optimistic Assessment because even the design the kubernetes enhancement hasn't been merged for dual stack support. So I Won't see it. I think it will not hit a quote probably next to releases at very best Yeah, my my opinion is It's It's not there until it's there and so until it's been properly merged like don't rely on that information, but In the near future, there is a possibility that that some of this may May be resolved But we should not rely on it So add to your question about the part the workloads or the the cluster So for me my use case is I don't really care if my cluster is on a v4 money like control plane What's important to me is that the switching layer example VPP and the workloads can do v6 as well Okay, so we see it's more the workloads than the Do That would seem to be the payloads then right so if you've got a network service Yeah, you can actually carry v6. So that that's what I expected actually honestly So, okay, that's good to know that I misunderstood your initial statement So that that's good and this is like anything else for the way All of us who've been around the block with IPv6 We don't do things we know that the way that network service mesh has been architected It should work perfectly fine with IPv6 with no problems whatsoever We also know because we've already found a problem with the payloads That will be false until we actually test it and find the little myths So Okay, so it sounds like we're leaning towards payloads being the more important one then Yeah, I'm in the same boat as Daniel Okay, that's actually good because I think payloads is potentially quite a bit more addressable if we get lucky Then the fixes to the CI that went in late this morning should Resolve all or most of the issues with the VPP agent 2.1 and so we have the potential To have this converge fairly quickly on the v6 payloads To be fair though, I want you to fix all my problems ed so Pretty sure that's been your expectation all along, okay, so then it's clear I guess Um, okay, so the conclusion is we're going to go for IPv6 payloads mostly for the time being and We are going to wait a couple days to for the CI to stabilize like wait mean active waiting Actively trying to make it more stable and then we branch before we go to kube-con and we have the demos there from there That they should conclude the currents status of the release We have I think like 10 minutes. So Ed, do you want to quickly bring up the topic of the stickers and then we give the floor to Ramki to do his Yeah, if Ramki is cool with that the stickers are not really so much a topic. It's just a victory lap Okay, so It's too good, this is me just kidding Sorry Obviously the stickers will win so I know that I know who's gonna win Yeah, so basically Presuming that the stickers that I ordered are delivered properly to me literally the day before I get on plane to kube-con We will have 500 of each of these stickers available To spread around, you know, we've got two stickers that we did one is the very sensible You know circular logo with network service mesh IO on it The other one was Everyone knows I've got a problem with QR codes. And so the second one is my problem with QR codes manifesting itself So the so the second one is the sneaky booth one you can go and stick on people's booths Well, I mean the second one actually if you scan the QR code it will actually take you to our website And it takes you to our website in a way that can be tracked by google analytics so we can see what the response is on the sticker So um, but like I said, we'll have about 500 of each. So if you find me at kube-con I'm happy to give them to people to hand out themselves. I'm happy to give people to head out of their talks I'm happy to give them to people to head out of their booths I'm just happy I was trying to play around with the AR VR tool just to see if you can if someone scans it can essentially show the mis-creator Awesome You can probably let ronky get to use cases. Yeah, thank you Actually, thank you. Um, so uh, you can actually just project the open the use case document. I can that oh, yeah, awesome. Thank you. So perfect, so, um so we Having very good discussions as part of the use case call and narrowing down to a specific Near-term use case that you can work on um, so far the first responder use case came out as something Uh, which is uh, essentially top notch and of high interest and an area where nsm can show concrete value um, and what we also did was rather than just Drawing out a top level use case. He broke it down to sub use case or functions Correct. So we have to thank Jeffery for that. Yeah, thanks Jeffery for bringing in that. Yeah, of course. Yeah, I have Jeff and uh, Yeah, Daniel you know It matches so many I mean all the operators for the um discussions um, and um So basically as part of it We said the first sub use case or function would be the mobile client site, right? The next sub use case would be sort of what happens in the mobile network packet core, right? So basically the second and um, and also The third one was mobile network ran, right? So basically these are the use cases the sub use cases. He broke it down to um, and in that what we did an analysis was sort of um, hey um How can we make concrete progress on these sub use cases or functions? uh, what we realized was there is a fantastic Open EPC implementation available. Uh, so this is basically from sprint and intel They are the primary uh contributors. It's called omac It's a full-blown EPC implementation every component exists and notably What is of interest would be a cloud native control plane and data plane? Um, even that is fully desegregated right now. This implementation is 4g and then they're moving to 5g uh, very quickly And specifically in the 4g. What is very nice is they have a 4g s gateway p gateway control plane and data plane are fully fully cloud native um High performance with tpdk s rov all the options are available Uh, right and you can even um separate out the s gateway and p gateway if you just say or you can package them together, right? um And so basically the idea was so far. We've been looking at hey Uh, what are some real vnf's to on board to nsm and this seems to be One spot on right where we can jump in and and it has got multiple network interfaces For example, specifically in the sktp gateway data plane Besides the k8s interface. Uh, there is one interface towards ran, which will process gtp u packets and there is another interface towards the Internet or sgi interface that will uh, you know emit out ip sec tunnels Um, or just a standard vlan to whatever you choose, right? Um So, um Now, uh with this view what we're seeing is uh, it's probably worth You know for the team and for the community to work together on this Uh, you know on driving this specific sub use case um And here the goal is hey, uh, this project is coming from intel. So the questions were asked, right? You know intel is the heavy proponent of multis. So here our message is very clear We're going to complement multis in you know in automating the necklace network service as you clearly see Multis has is a good specification, but doesn't drive automation. So basically You know everything even the ip addresses are all manual, right? So and then It basically gets into a plugin specific network plugin specific exercise. So Where nsm can really help us essentially you know in network automation in the case of Hardware and software with different capabilities. For example, the hardware may have sri ov or smartnik Or maybe may not have any high performance. Uh, you know, uh attributes, right? So, how do we Automate it seamlessly and uh Keep things simple from s cnf perspective, right? Uh, that's what that's where nsm value comes in and Regarding making uh, even more specific progress our thoughts were hey, uh, why not um Work very closely with the telco working group, right? Um, we have Taylor here. So basically, hey, um, They've always been looking for good bnx and this is something which we can help drive closely working with them And in terms of Not just working together but also utilizing the setup right common setup and then Making rapid progress Which could also lead to sort of, you know, the next step around how we can Deploy this on the packet infrastructure. They're taking it to the further next level Where that again there seems to be Bigger interest in tying to other sub use cases such as you know cbrs, right? Basically from the folks from cbrs alliance who are trying to get in touch with like jorah lindhorn Who is a key person there and um that could also sort of help us advance You know this use case and sub use case is the nsm and packet, right? Um, at least this was the thought process which uh came out of uh, you know several Use case meetings and uh, really thanks to the use case stream for you know helping get here to a level of Concrete detail which we have here. And of course, uh, pre must be besides me a key proponent of this use case It's like the thank him Well, the team might be thanks from here. I think awesome team Yeah, I think one other ask here is probably We were discussing yesterday is uh, we would know more details when rubber hits the road So at least if we can start implementing Some of the parts of it and then also one of the ask here is if We have any cnf vendor who can probably provide or try to Have an implementation based on nsm that would essentially help out Because one thing what we are looking at is take open e pc and then As ramki was mentioning Try to get into the nsm and then develop the Use develop the business logic as well as the client needed for the first responder. So that's the activity That we are looking at and uh, I think implementation is going to be the key Even a simple park would essentially provide us A lot of or give us a lot of confidence In showing the world on how nsm looks from the real use case perspective And also one closing thought here Nikolai brought up a very good point on you know, the roadmap, right? There's several items use cases ci So we do think This can be a concrete driver for several other activities We start off with a concrete use case and a specific sub use case with an edge and then Then that could be the driver for Other specific talks around ci or integration and what we are trying to do Okay, we are at the top of the hour. Um, do we Think that we should drop up kind of fret. Yeah, I think so Okay, well the I guess the last part is um, uh, before we finish up, um Ed do do we have any intention on doing some form of an nsm happy hour? I think we should I think we should do some form of an nsm get together one of the things I want to check with today is Typically speaking on a cube kind of ends. They have an area with tables and whiteboards and things on the conference floor The evening event schedule is going to be insanely packed. So doing a happy hour. I think it's likely to be um problematic But what I'd like to do is figure out a place in a time where we could all get together Around whiteboards and as a community sort of brainstorm some of the the things going forward Because there's a lot of cool things going forward that we can and should do as a community That I would love to talk through with everybody. Does that sound reasonable? Yeah, I think that sounds reasonable and so we'll I think we can do two things. So number one for the people who are here Um, hop on to the nsm slack channel because your slack should still work in in Barcelona the second thing is will also announce Times and dates for any of these type of events that were coming up both on slack and on on slack and on With that, I don't think we have anything else and uh prem add that to the next uh to the next session Sure, unless it's time-sensitive and get a hold of us off Asynchronous with that. I want to thank everyone for your time. Have a great Have a great day and be safe on your trip over if you're coming to Barcelona And we will see you either next week or the week after Thank you. Have a good one. Thank you guys. Thank you guys. See At least half of you In a week


Welcome to my talk today. I'm going to talk about evaluating risk for open source cloud native projects. I'll start with a brief overview of why it's important to think about risk. I'll talk about the differences between company owned open source projects and projects under foundations, along with some thoughts on neutral governance and how all of this impacts the risk. I'll also share some thoughts about what policies and other documents to look for, along with how to evaluate the community risks. And then I'll wrap it all up with a few final thoughts and links to some useful resources. But first, I'll tell you just a bit about me. I've been in the technology industry for over 20 years, working mostly on open source projects from within companies like puppet and Intel at Pivotal. I was responsible for driving Pivotal's Kubernetes contribution strategy, and I was actively contributing to the Kubernetes contributor experience special interest group. Now I'm working in VMware's open source program office, and I'm responsible for our open source community strategy. So lately I've been active in the CNCF contributor strategy CIG, in particular the governance working group. I'm also on the steering committee for the Linux foundations to do group where companies collaborate on ways to run successful open source program offices. I'm also a board member of Open UK, which is focused on developing and sustaining leadership and open technology here within the United Kingdom. I'm a governing board member and maintainer for the Linux foundations chaos project, which is focused on using metrics to evaluate the health of open source projects. I also have a PhD from the University of Greenwich here in London, where I was researching how people working at many different companies collaborate within the Linux kernel. Unfortunately, the scenario on the slide is probably more common than many people realize. One of the biggest examples of this was a couple of years ago when it was discovered that open SSL had a security bug. In their cryptography library referred to as Heartbleed. Open SSL is a technology that almost every company in the world uses in one way or another. And it was during this crisis that most of us learned that open SSL received about $2,000 in donations per year, and was maintained mostly by a single person. So yes, that's right. Software that is widely used by almost everyone had almost no resources to maintain the software. And there are probably hundreds or thousands of other open source projects in the same or similar situations. In this case, the Linux Foundation got some companies together to provide funding for people to work on open SSL and other similar projects on a full-time basis. And I know VMware and other companies have also been contributing. While this situation was resolved relatively quickly, we might not be so lucky in other cases. So evaluating risk is important because it can disrupt your business. It's also important to think about risk as being on a continuum, like with most things in life, there are no sherbets and no project or technology is completely without risk. There are only projects with more or less risk across a variety of categories. And whether you should accept that risk is a business decision that should also take into account how you're using the project. And in this session, I'll talk about how to evaluate the risks for open source projects, but all projects and all software have risks. So evaluating risk is something we should do for all projects, not just the open source ones, but I'll talk about how you do it for the open source projects in this talk. I wanted to start by talking about why it is so important to think about who owns or controls an open source project. Because it's something that many of us don't spend as much time thinking about as we should. The projects governance documents can help you learn more about the ownership control of a project. And from a risk perspective, you should be looking for projects with neutral governance, where decisions are made by people from a variety of different companies. Projects that are controlled by foundations and ones that are owned by an individual company can have very different dynamics and different risks associated with participating in those projects. I'll start with a couple of examples of what can happen with projects that don't have neutral governance. Licensing changes are one thing that can increase our business risk, especially when an open source project is controlled by a single company. In 2018, there were a couple of high profile examples of companies like Redis Labs and MongoDB, who became fed up with the cloud providers who sold software as a service offering based on these open source projects, without giving as much back to the companies who were doing the development as the companies would have liked. And these companies, their solution was to put more restrictive licenses on their software. In the case of MongoDB, they created a new license called the server side public license. They would be used for MongoDB, but it also be used for security patches for previous open source versions of the software to prevent people from just continuing to use an older open source version and applying the security patches to it. The problematic bit of the license is in section 13, which says that if you use the project in a software as a service offering, you have to not only make your source code and modifications available, but also the source code of the applications used to run the service. Recently, Elastic followed suit by moving Elastic Search and Kibana under the SSPL, and they made this license change as part of a minor point release rather than a major release, which is kind of interesting. It's important to note that while they say that the SSPL is based on an OSI approved license, they were not able to actually get the SSPL approved by the OSI primarily because of some concerns about the restrictions put on how people use the software. So the SSPL is not an OSI approved open source license. This means that by most definitions, MongoDB, Elastic Search and Kibana are no longer open source projects. Situations like this one increase your business risk and can impact your ability to deliver software. License changes require time from lawyers to help us interpret these new licenses. And new restrictions on how we use an open source project could delay our product delivery and decrease our productivity if we need to spend extra time finding and implementing a suitable replacement. Governance issues caused by corporate ownership of open source projects can undermine the project's success and lead to disruptions within the project. In some cases, these disruptions make it difficult to make progress on a project, but they can also result in the project working and becoming two completely separate projects. Forking a project in particular can be extremely time consuming for the project. This takes precious time away from the development of the project and it slows down progress until things settle back down after the fork. It increases the business risk for companies who are using or contributing to the project since it can make it difficult to get contributions back into the upstream project during periods of disruption. When a project works as a company, we need to decide whether to continue with the original project or embrace the fork, which is a gamble, especially at the beginning because it can take months or years to see which project will eventually prevail and go in a direction that works well for how we use the project. So here are a couple more tangible examples. MySQL was forked into what became MariaDB when Oracle acquired Sun. Many of the original MySQL core developers, including the creator Monty, didn't think that Oracle would be a good owner of MySQL and they wanted to ensure that the code base would remain open. In a similar fashion shortly after the same acquisition, LibreOffice was forked from OpenOffice. And less than a year later, the developers who were being paid to work on OpenOffice were laid off and OpenOffice was donated to the Apache Software Foundation. Both of these forks caused a significant brain drain away from the original projects, since many of the original developers began working on the new forks. And in the case of LibreOffice, the fork became more popular than the original project. When the Istion K-Native project started, companies like Pivotal, VMware, Red Hat, and IBM contributed a bunch of code to these projects with the understanding that the projects would be put under the CNCF. Later, Google decided that they were not going to transfer them to the CNCF and because they owned the trademarks, the rest of us had no real choice in the manner. In both of these cases, the communities have been able to negotiate for better governance, which has helped stabilize the projects. But I still think these projects are at risk of eventually being replaced by other technologies or eventually forked if they're not put under a more neutral foundation or neutral governance. One way we can avoid situations like the ones I just talked about on the last two slides is by supporting projects that are under neutral foundations, like the CNCF, whenever possible. However, it isn't always clear whether a foundation is neutral or not. If the Board of Directors or other leadership bodies are made up of people who work at a wide range of companies, especially competing companies, that's a good indication that it's a neutral foundation. If the Board members are primarily made up of people from a single company or a couple of companies with close ties, it's not likely to be a neutral foundation. Trademarks are another thing to look at. In a neutral foundation, the foundation should own the trademarks associated with especially the name of the foundation, but probably also most of the projects. If the trademarks are all owned by a company, especially a single company across most of the projects, that's a red flag that the foundation is probably not actually neutral. It can also help to look at the projects under the foundation, were they originated as a single company, or did they come from a variety of companies? Do the projects have leaders from a variety of companies? Do they have CLA's from one company or is the CLA from the foundation? The more you see references to a single company across the projects, the less likely the foundation is to be neutral. The CNCF, the Linux Foundation, the Apache Software Foundation are all solid neutral foundations. On the flip side, the open usage commons is not one that I would classify as a neutral foundation. One of the reasons that Kubernetes has been so successful is because it was contributed to the Cloud Native Computing Foundation. Putting Kubernetes into a neutral foundation provided a level playing field where people from a bunch of different companies could work together as equals to create something that benefits the entire ecosystem. The CNCF has a big focus on helping Cloud Native projects set themselves up to be successful with resource documents, maintainer sessions, and help with various administrative tasks. Open source projects that are controlled by a single company are higher risk because they operate at the wins of that company. And there's little recourse for outside contributors when that company decides to go in a direction that doesn't align with the expectations of the other participants within the community. Think back to the examples from earlier where projects moved to non open source licenses or were forked. For company originated projects consider the reputation of that company as a steward of open source projects. But always keep in mind that they can change their strategy at some later date. I'm not saying that you shouldn't participate in open source projects owned by companies, but you should think about the risks that you're taking. In some cases, it makes a lot of sense to accept this higher risk, and we do it all the time. But you should try to make sure that you understand the risks that you're taking and how those risks could impact your company. Governance can be found in all open source projects in one form or another to specify the processes for how people work together within the project. Ideally, it will be it will be clearly documented, but for some projects, especially smaller ones, it might be a bit more ad hoc and informal. Regardless of what form it takes evaluating projects governance is an important element of assessing the risk of using or contributing to that project. Governance helps outline the expectations around roles and responsibilities, along with the decision making processes, but it will vary quite a bit by the size of the project. A project with only a few people won't need elaborate elections to select leaders. But the project should have at least a few basic roles to find like maintainer, for example, for CNCF projects governance documentation is encouraged for all projects. But by the time a project hits the incubating stage, they need to have a governance MD file showing who is currently leading the project and how future leaders are going to be selected with a requirement that the process be employer neutral. Knowing how collaboration occurs and how decisions are made is vital to being able to make contributions that are more likely to be accepted. If the processes for collaboration, leadership and decision making are not clearly documented as a part of the project governance. This can increase the risk of participating in or using the project because it introduces a lot of uncertainty into the mix. There should also be some kind of project charter, which can take many forms and frankly, in most cases, it's often not actually called a charter at all. But instead it takes the form of some sort of mission statement, a statement about scope, values, principles, and similar concepts that are often found either within the governance documents or in the media files for the project. The overall cloud native ecosystem is complex with many different projects containing overlapping functionality. A charter, especially a scope can help end users understand how your project fits into the overall ecosystem and what functionality it does and does not offer as compared to the many alternatives. Having this documented early can help avoid issues and misunderstandings later. One way to help mitigate this risk is to have some discussions about governance within the community to gauge interest in getting some help with governance and a lot of communities. There can be various types of informal governance that just isn't documented. Quite a few people tend to avoid working on governance. So if it's missing, you might be able to volunteer to help and it's a great way to learn more about how the community operates because leadership is such a critical piece of governance. I wanted to spend a little more time talking specifically about it. At a minimum, there should be some kind of documentation about leadership within the project. For small projects, maybe it's just a list of maintainers in a README file. Or maybe owners or maintainers files that indicate which people are responsible for the various aspects or areas within the project. For bigger projects, you'll want to see more details about the specific roles and responsibilities for different leadership positions along with how others can move into leadership roles. There might be committees, working groups, special interest groups or other groups with opportunities for leadership. If you become an active participant in a project, you'll want to understand how your contributors can move into leadership roles. Having employees and leadership roles helps reduce your risks as a company since these employees will be in a position to understand more about how the project actually works and be able to help mentor other employees and bring them into the project. There are quite a few different options for selecting leaders as part of defining governance. And the ideal is to have a process that provides a fair and level playing field that defines how contributors become leaders. This should be documented so that all participants can clearly understand the criteria and process for moving both into and then out of leadership positions. Most of the bigger projects like Kubernetes have an election process, at least for the top levels of leadership like a steering committee. You should also look for programs that give people opportunities for shadowing, mentoring and sponsoring new potential leaders. This shows that the project is serious about growing a diverse set of people into new leadership roles within the project. As I mentioned earlier, CNCF incubating projects need to have a governance.md file showing the leaders and how they're selected with the requirement that the process is employer neutral. The key is that having a fair and transparent process for selecting leaders like elections, for example, reduces your risk of participating since your contributors can participate in the elections and have a say in the governance of the project. Higher risk options would include organizational leadership seats where a certain number of positions are allocated to specific companies where those companies get to decide who gets their leadership positions. And there's no easy way for new leaders to work outside of those companies to move into those leadership positions. Regrets of how the leaders are selected, you'll want to make sure that there are opportunities for your contributors to move into leadership positions to reduce the risk for the projects that you contribute to. In addition to the governance documentation, there are also quite a few other policies and documents that you should look at as part of your risk assessment for a project. There are so many abandoned open source projects just sprinkled across the internet. And there is no single reason that projects are abandoned, technologies evolve, people change priorities, maybe the community loses interest. One thing that can reduce the risk of embracing an open source project is if the project is adopted by a bunch of other people since active projects with plenty of users are less likely to be abandoned. It isn't always easy to know who uses a project, but an adopter's file is a good start. It's a project has one. An adopter's file is actually required for CNCF projects to reach the incubated stage, although it may not be public until the project is graduated. Other projects might choose to have this earlier. And for CNCF projects, it's usually in an adopters.md file, but having a strong user base reduces the risk that the project might be abandoned. People often worry about security for open source projects under the premise that if everyone can see the code, they might also be able to find and exploit security vulnerabilities. But the flip side to this is that there are also more people who can view the source code for the purpose of fixing those security issues. This is where innovation and diversity of ideas comes in. So within a product team working internally on a project at your company, you'll have a limited number of people assigned to the product. And an increased chance that your shared backgrounds lead you to think of things in similar ways. With people from many different companies and different backgrounds contributing to an open source project, these innovative ideas will also apply to proactively making the project more secure, along with then of course, reactively fixing any vulnerabilities that minorize later. However, this certainly does not mean that open source projects are automatically secure. One thing I look for when assessing the risk of open source projects is whether they make regular releases and quickly patch security vulnerabilities. You should also look at the project's security policy documents to make sure that they have a solid process for allowing anyone to privately report vulnerabilities and for dealing with those reports quickly and efficiently. Projects that take a proactive approach to addressing security issues and releasing fixes are going to be a lower risk. There are a few documents, even the small ones, or few documents that every project, even the small ones should have. It should go without saying that open source projects need appropriate licensing documentation. And some licenses require things like notices file or notices files or license headers within each source file in addition to just putting a license file in the repository. Projects should also have a code of conduct that people can easily find with details about how to report incidents, along with the consequences of violating that code of conduct. The contribution documents should provide enough details about the contribution process so that someone new to the project can make their first contribution. The communication process should also be clearly defined so that people know where and how to communicate within the project. If everyone understands how people within the project communicate with each other, it avoids frustrating experiences for both new and existing contributors. One way to mitigate these risks is to volunteer to help some of this documentation and establish projects long term contributors may not notice that their contribution documents are incomplete or even incorrect. And someone new to the project can often be a big help in finding the problems that are needed to improve that documentation. And the better all of this is documented the lower the risk since your contributors would know what to expect and how to navigate the project when they want to make contributions. The community can make or break an open source project and the overall success of the project often depends on the community. The community is usually the first thing I look at when deciding if a project is healthy. Is the community actively engaged in productive discussions around the project. Are they helpful when people have questions or problems. Are they welcoming for new contributors and new users. Do they treat each other with kindness and with respect.  From the beginning I felt welcomed, the people were fun, and there were plenty of opportunities to step in and help out with things. Kubernetes also has loads of resources documentation and training for new contributors, along with mentoring programs, which helps people get started and want to continue participating. You'll want to look carefully at how people treat each other on the mailing list. And in GitHub reviews and it's like an IRC and all of the other communication channels projects with a culture of treating each other with respect and kindness are going to be a lower risk. Because your employees will want to continue to contribute. On the other hand, projects with toxic cultures put your employees and other contributors at risk. There could be real mental and physical health risks for your employees. And these toxic environments can impact retention since employees might be so eager to leave the project that they'll look for another employer where they won't have to work in this toxic community. And if the culture is too toxic, it can be very difficult or possibly even impossible to mitigate that risk. And if the community isn't amazing for a variety of reasons, this, this is a risk. It doesn't necessarily mean that you shouldn't get involved or use the software, but you should approach it with caution and understand that there is a risk that could go terribly wrong with the project as a whole. If things get even worse within the community and your key contributors just start disappearing out of the project. If you're actively using an open source project, it's likely that you'll find bugs or want to contribute fixes back upstream. For new projects you're considering, you'll want to make sure that maintainers and other contributors typically respond in a timely fashion, seeing large numbers of issues and pull requests on a project is a red flag for me, because it can indicate that either they don't have enough contributors to handle the incoming contributions, or worse that they don't actually care about or want contributions from others, which is something you see in some company owned open source projects. But these two scenarios not having enough contributors to respond to pull requests and issues is probably more common. And most projects I've worked on have struggled at one point or another with keeping up with full requests. In some cases you can help solve this problem by making contributions to open source projects part of the job for some of your employees and helping work through this backlog. As I mentioned, there are legitimately some projects that don't actually want contributions from people outside of the company or outside of their existing circle of maintainers. And this can happen when a project was open source for the wrong reasons like politics or marketing without buy-in from the people who are responsible for the project. And these projects are a much higher risk since you are way less likely to be able to get any changes incorporated into that upstream project. We don't always spend enough time thinking about the contributor risk associated with many open source projects. For any open source projects we rely on, are there enough contributors that if one of them won the lottery and retired on a beach, could the project continue with minimal disruptions? This is a bigger risk for projects that are highly complex or contain technologies that require specialized expertise, like we saw a few years ago with the open SSL, Heartblade example. You should also look at organizational diversity as a part of the health and risk for open source projects. If all or most of the contributors are from a single company, what happens when that company has a shift in strategy or gets acquired or runs out of money and just goes out of business? Would the project be able to continue if that company pulled all of its employees out of the project? And again it comes down to risk and whether we're willing to take that risk. Now before I wrap up the talk, let me leave you with a few resources that you might find useful. The CNCF contributor strategy CIG is a governance working group and a contributor growth working group, which provide guidance about contributor experience, sustainability, governance and openness to help CNCF projects develop strategies for maintaining project health. The to-do group has a bunch of guides that have great info on all aspects of creating and managing open source projects. The open source way guidebook has an entire chapter on governance along with loads of other details about all kinds of open source projects. And these are all great starting places for understanding best practices for open source projects to help you evaluate your risks. Most business decisions boil down to an assessment of risk and making trade-offs. We should all be thinking about project risks in light of how we're using these projects within our business. If we build products on top of an open source technology, we want it to be as low of a risk as possible. On the other hand, if we're using an open source project as some small piece of some non-critical infrastructure, then we can accept more risk. Now no project is all good or all bad, all risks are no risk, and no one solution is going to be right for every single situation. Project risk, like most things, exists on a continuum. Deciding which risks we're going to accept is the beginning, not the end of the process, since we should also be thinking about how we can monitor and mitigate those risks over time. We need to think about the risks we might be taking and make informed business decisions about which risks to accept. With that, I will say thank you for coming to my talk and we'll open it up for questions.


for the last six months instead of twelve months. This meeting is being recorded. So the first thing would be let's change the period instead of last 12 months to last six months. So I'll have to go to period, then deselect last 12 months and select last six months. And then I still need to have this data. I have to see the contribution of each month instead of just having the overall figure for the for the for the rest of the six months. So I'll drag and drop it here because I need them in terms of columns. By doing so, you could now clearly see how many HIV tests were performed for each month for each district. Okay, but again, this information, the way it has been captured in in data entry, it's been captured in terms of gender, female and male. Okay, so what do I do when I need, I need to further break down these figures into male and female. Let's say it's the HIV test performed. I need to see them for September 2021. They are one thousand nine hundred and seventy eight. How many were males and how many were female? Because it's not specifically for this, but rather for for for the entire figure, not just one, this one thousand nine hundred and seventy eight. So the first thing will be remember these table comprises of data elements as well as the indicators and the indicators that have been configured in a manner that they just calculate the percentage of the total. So before I break down this, I need to make sure that whatever that I've selected in the pivot table abides to the disaggregation of sex or gender. So first, before I add in my disaggregations, I'll go and update the data dimensions. So I'll just I'll just concentrate on one. Let's say just the HIV tests performed, then again height. Now that I have only one data dimension, which I'm sure that these these these values have been captured with the disaggregation of female and male. So the next step would be go and assign these disaggregations. So under under these disaggregations, unfortunately, the system cannot categorize in terms of what are the categories and what are the organization group sets. They're all available here, but you cannot differentiate them because they don't have maybe like an icon that could tell this is a category option. I mean a category or this is a organization group set. So you just have to know them by by names. And the organization group sets are more less like you have you have facilities. You have from the organization unit hierarchy, you could choose to make groups. Let's say, okay, I have the facilities, but within facilities I have different different type of facilities. I have the health centers. I have the hospitals. I have maybe the dispensaries. You could you could create a set that would differentiate them in a manner that once you need data in terms, let's say just the dispensaries by using that organization group set, you could clearly retrieve data just by dispensaries and ignore the other type whether they're health centers or the hospitals. So first I'll just go and assign sex because I want my data in terms of female and male. So if you click here, sex, it will ask you first, where do you want to assign this dimension? Should it go into column? Should it go into rows? Or it should go into filters. Okay. So with this data, I need them to go into into column. So I just click column and by clicking column, it will open up this kind of window and it will give you the options that are that are available under under sex. So with manual selection, you could do the selection and the arrangement depending on what you want to come first. So it's either you need the female or male first. You could always select and the way that you have selected and the arrangement was determined on how data gets rendered in the pivot time. Or sometimes you would find this manual selection also allows you to select probably only one one desegregation. If at all you're only interested in knowing how many were female instead of male. So since our interest is to have all of them, I could click this double arrow. It will automatically select them all with an arrangement of female first then male. Alternatively, I could click first female, I mean male then followed by female. That means even the arrangement will start with male or female. Or the other way round, it could be sometimes you have probably selected male first and female second, but you need the female to go first followed by male. So you could just click here. If you click here, it means it has been selected or highlighted and you could use these arrows here to move up and down. So since it's female comes next, you could see that you cannot move it down anymore because it's the last one in the sequence. So I'll just shift it and move it on top of male then click hide. So if you click update, remember we had deselected the HIV test positive and of course the indicator that completes the positivity rate. So for now, with this kind of arrangement, I have my HIV test performed, but in terms of last six months by each month, that means it's from the last six months starts from February or the way to September 2021. But again, I have further broken down the data of each month by female and male. Now, if you have this kind of report and you have this blank data, would you really want to have it presented the way it is? The answer would say probably no. So instead of persisting these empty, empty cells, you could always go into options. If you click there, we have a couple of options under the option window. We have the data, legend, series, style, limit, values, and parameters. So with data, which is default selected as the first one, since it's the first one in the arrangement, we have a couple of items. We have the data dimensions and the rest. But this time around, our interest is to only omit the empty cells. So we have a section here, empty data, I could always click hide empty columns. It's going to hide all the rows that are empty, but if at all you need also to hide the empty rows as well, if you tick those, then it's going to hide all the rows and columns that are empty. So, but still from the way here, if I want to see so overall, how many HIV tests were performed in the month of September 2021, or by each month, how many, how many totals would I want to see in terms of gender, but also by district in overall, how many in total where these HIV tests performed. Again, you could always go back to options and under options, we have a section for totals. This is where you could check and by checking that means you're telling the system to give you the totals. And the totals could be in terms of columns as well as the rows. And not just the overall totals, but we also have the sub totals. So let's go first with the overall totals. I need my data to give to have a data in terms of columns. And if you go back here into this table in terms of columns, that means you're requesting to have in terms of how many total females, how many total males, and of course, the sub the rows, it's going to be my district. So if you select column totals, row totals, and click update, that means you'll have these kind of totals. You'll be able to say, okay, from this table, how many HIV tests were performed for the bad district. And of course, under the month of September 2021, how many HIV tests were performed for specifically female? You could also have it from from this column, column total. So that is one. But sometimes from this table, I would want, okay, I need my values, these figures to be sorted. You could always use these arrows here beside the female dimension. So if you click that, that means your data, they're going to be sorted in terms of the smaller figures to the higher and the other other way around. So if you click that, then it's also going to sort them in terms of the highest figures, high to low or low to high. It all depends on how you want the figures to be sorted. So that is the way you could play around with the options. So first of all, we can save this. Let's go and save. By saving this, you could go to file. Now you could see there are two, two save buttons. One is saving it as a new. And this one is more less of overwriting what is already there. So I'll go with save. Say save. And name would be, now for the purpose of this academy, I could just prefix it. My name initials, because we are more or less looking at the same, same information, but with different people, if we have them all saved with the same name, then the system won't accept because the name has to be unique. So I'll just prefix it. However, in real world, you don't have to use this kind of prefix. And again, with saving, always make sure that you incorporate the three dimensions that are available in this table. So that once you look at the name, the name of the visualization, you could clearly tell or understand what is being analyzed or what is being presented in that table. So for this table, we are looking at HIV tests performed for the last six months in by district in what, in animal region. So you could click find, save, then I'll say, let's take a M, sorry, M, let's go. HIV tests performed last six months by district in animal region. If you have more detailed information, you could always attach them under the description. Once you're done, you could save. So that means even if you log out the system, you could always come back and retrieve this, this kind of table. I hope that that makes sense. So I'll go and create another visualization because I want us to see even the concept of having the subtotals in terms of columns and rows. So I'll go here, click new, then go make sure I select pivot table, go under tab. Now I want the same data element selected, then go to period, I'll go and select years. Instead of last year, I'll go and select years as period type, then select last five years. I'll also click hide. And then by organization unit, I need my data in terms of facilities within within the bad district. So by default, training land it's ticked, but since I need my data by facilities and not all facilities within the training land, but rather all the facilities within the bad district. So I'll have to navigate and look for the bad district, select bad district, but deselect training land. But since I need all the facilities, instead of going through and ticking all the facilities, I'll use the level, click facility. So I'll also click hide. Now, if you click update, it's going to give you this kind of this kind of table. But again, I need to see my data by facilities. But from here, I could see the overall sum of HIV tests performed regardless of which facility. Remember, you always have to rearrange and make sure that these things are a shuffle. Then if you click update, now I could see in terms of of different facilities. But I still need to see this data further broken down in terms of gender, sex. So I'll always go select sex, have them all selected. And the column, of course, if you click update, now I have them like this. But if you look at this table, is this a better way of representing the data? I would definitely say no, because you could see that we have these periods repeated under each health facility. So instead of having them like this, again, I could take the period and have it arranged under the column as well. So if I click update, you would always see now the data at least make sense. Now I'll go and hide the empty rolls and columns as well as show the totals and overall totals. If I click that, now I have this kind of this kind of date, which is more or less the same like we had previously. But with the health facilities that I've selected, I need them grouped in terms of the type of facility. From this list here, you could see we have the PHC, we have the health centers, we have the dispensaries. But if again, this is because this is the only that is available within the hierarchy. But if we also had hospitals and so many other type, you could always come here into type. Now this is the organization unit group set. If you click type, you could always again have to specify the type where we want that further desegregation of type to be assigned to. Is it column rows or filters? So I'll go with column. I mean with row, why? It's because this is more or less to further break down the selected health facilities. And I have my organization unit, which are facilities arranged in rows. So my interest is to have the PH, have the dispensaries, and of course the health centers. So I have selected only this and ignore the rest. So if I click update again, you could see the arrangement. This is it's clearly a health center. But again, because I've selected a further dimension type as health facility, I'll have this kind of arrangement, which again, it doesn't make sense having them like this because it's they could be repeating throughout throughout the table. So instead of this, the better way would be reshuffle this so that the system could present them in a group. So if it will check, if it's a PHC, then it put a group of PHC, then in front of PHC, it's going to give you a list of all those data, PHC. So by reshuffling these dimensions and let organization unit group group set come first before the organization unit. If you click update, now you could see my data. All the facilities are still there, but they've been grouped in terms of the type. Now I have the overall totals in terms of rows and columns. But with this, since I have different type of facilities, my interest would be to see the total for each type of facility. How do I do that? Now it's when it comes back the concept of sub-totals. So you always have to go to options, then say the sub-totals, but it's the sub-totals of what? The columns because we have them, the data is listed in terms of columns. So if you click column sub-totals, if you tick that and click update, now you could have the sub-totals for each type of facility. I could clearly tell how many in 2018, how many female were diagnosed with for the PHC type of facility as well as the health center and disparities. So remember that we this table, it's not always, I mean, I won't be able to retrieve the same information. Instead, I'll have to go back and do this kind of selection and analysis from scratch.  So I have this kind of data, but sometimes I'll just take you back to options here so that we could also go through the other remaining kind of data options that are viable. For instance, you would want to see the dimension levels. If you go back to this, you could, you cannot tell what are these. Of course, you understand the organization unit because you have selected them by yourself when you're creating the table. But if you just have this kind of table presented to someone who doesn't know where is this data coming from, probably it would be difficult to know what are these in columns. So you have an option of clicking. If you click dimension levels, that means the system will be able to tell you what are these, whatever that you have here, this is data, what you have here, it's period, what you have these organization unit and sex, which is the further dimension. And of course what we have in here, these are the type, organization unit type. So that is one, but we could also do, we have this functionality of skip rounding. This is mostly used and valid when you're looking at monetary figures. If you're dealing with money, you wouldn't probably want to round off staffs because rounding off could end up creating or giving wrong, wrong information. So if we were dealing with money, we would probably choose to skip rounding. So that means if you had data in terms of decimal places, then they wouldn't be round off. So we also have the aggregation type. This is more or less used to give out the figures in terms of what if you have, if you want to present the data in terms of average or just the last value or the count, this is where you could also define an aggregation type. From that, we have this number type, which gives the percentage of raw and percentage of color. Or they could just be values. But again, this is only valid indicators, which are calculating data in terms of percentages or the indicators itself. You wouldn't want to do this kind of selection in terms of percentage because they are already computed values. But with raw data, like the ones that we have here, you would probably wish to see out of for this, for this 1000 and 21 number of females. What's the contribution in terms of percentage out of, like, let's, let's go here for this health center. We have 1000 and 21 females for the year of 2018. But what's the percentage of this figure out of 7,220? So this would be, you would want to see the contribution by percentage out of, out of the entire figure that is available in this health center. And I'm saying health center because I want us to check the percentage in terms of rows first. So what we have in rows is the organization unit. So you'd go under options. You have number type at the moment or by default, its value. But if you want to see the percentage, you could select percentage of raw. Of course, if you click update, that means it's going to give you a percentage of what? For the 1000 and 21 figure we had, if you compare it to the 7,220 total for all the year, for all the five years that we have selected, then that is only a 14.1 percentage. And of course, if you do that, that it doesn't make sense to have these photos. So that is, if you want to look at the contribution of each value that you have by rows, which is my organization unit. But also you have the percentage by column. So if you select that, it's also going to calculate the percentage of each by these columns. So whatever figure that we had here, the 7.3, it's a contribution out of the overall total HV test female we had. So that is another way you could further do the analysis with the parameters that you have selected under the pivot table. Okay. So I'll also, we remained with six minutes before we go to break. I think we can use these six minutes at least to also try replicating, create a pivot table that shows this same information. So it's now five, let's use those five minutes. And if you have any challenges, please ask. We'll be happy to assist you. So let's go to the pivot table, create a pivot table that is looking at the HIV test performed for the last five years. Disaggregate them by gender, I mean sex, female and male. And of course, the organization units should be all the facilities and a bad district.


All right morning guys getting ate up by mosquitoes We got a couple minutes to shoot time And I'm out here with Shane. You can't see him yet because it's too dark We're the only ones back in this pond right now. So we We should be we should have a good morning I'm gonna try to do my best to video. We got three mallards locking up landing about 20 yards from us right now More to come. Oh right that shoot like these birds came in Shane got one Drake Mallard Yes Nice shot, dude. The mosquitoes are terrible. Dude, hold them up Nice Nice good shot All right, we just had a three-pack come in we dropped two drakes We don't have the luxury of them There's Rocky today So we gotta be selective on our shots and drop them in the open Endless But beautiful These were close you guys Nice looking drake Awesome. All right, we're up to three Keep them dry.  I know that I turned it on but for some reason I don't think I have the first two Or actually first three birds on shot cam. So Sorry about that, but I know that I got this one I let Shane have two cracks at it I told him if a pair comes in I'll let him take the first shot at the drake I'll let him have two cracks and Yes, so Bird number four, baby Beautiful jake mallard This is nuts I'm literally walking back in the line Putting that other bird back Another group comes in and chop this tree It's a little too far for Shane to shoot so Number five for me and Shane orange feet, baby This is nuts Every time I pull my phone out to start video and Birds lock up and come in but little update. We're up to five birds now in between us We got uh five drake mallards and it's still really early actually. We got a dozen decoys today the two pulsators And I split my decoys up six and six. We got the sun out our back We're covered up pretty good in toolies and uh, it's a really it's a really calm day today. It's clear sky. It's no wind Hopefully these birds just keep trickling in been fun so far What do you think? Been a blast. It's been awesome Mosquitoes are so crazy.  These mosquitoes trying to fly in our weirs I'm shooting heavy business today. Shane shooting in the black cloud. Let's go Man, I miss rocking hair of uh Gaddies came in Me and Shane shot at him I got the I got one on my second shot Shane missed on on the other one. We're trying to Shoot our lane And this pond is plowed but Looks like a beautiful drake. Yeah, well nice Actually not used to picking up my birds Because I'm always blessed to be hunting for nothing but today We're in a pretty good spot where We can get all our birds Shane just shot at him Look like uh, buffalo heads They missed but Good day. Good day We're up to six now It's still pretty early so Trying to take good Selective shots and Get whatever comes in. There's been a lot of birds working Pentails and collards And gadwall Every time the pentails get close Somebody shoots and they flare up so Maybe later on when guy's on we'll get lucky I just walked over to the cart and put her sixth bird in first Non-mellard Been seeing a lot of gaddies work around us.  He didn't sail but he went down, but he wasn't completely stone dead So I had to run over here and He's trying to get away, but oh got him I'll shoot him one more time on the water though This makes number number five for me For Drake mallards and then Drake gadwall So this has just been an awesome morning Bandless But beautiful bird number six This was a four pack Four pack came in and One Drake three hens So again Trying to get Shane some birds A shot first Beautiful All right, I'm up to six Shane's got two And letting him shoot full first Try to get him some more birds As far as that four pack Three hens and a Drake and we got the Drake Crazy day Here's an updated look at the bag. I got five mallards and uh Gadwall And Shane's got two mallards That's a wrap for me I uh ended with six Drake mallards and a Drake Gadwall Me and Shane just dropped two birds And like I said earlier, unfortunately, we don't have Rocky out here and it's somewhat sick Shane Shot first and he he dropped the Drake And there was a big pack mallards is probably about eight pack So I wasn't really completely focused on his shot and where he shot And where his bird fell I shot another Drake And I watched it and I heard it stop water and Got my line and went out and got it. We're having trouble finding his Drake I never heard it hit water, but I was wasn't focused on it either. So we're gonna look here for a little bit Hopefully we find it If we do find it and that'll put us up to 10 birds if not We'll be Be back at noon. So this how this day went. I honestly wasn't expecting this. I was I told Shane I'd be happy if we shot Three a piece. It's been better than expected. It's gonna be hot bear today. It's already hot and sweating. I really wish Titus was out here to He had to work Night shift, so he wouldn't have been able to be out here So that's too bad. We could have really used Rocky right now We're gonna get to looking for that bird and get back in the blind Here's number seven for me I found him and put him on my gun Because I've been helping Shane look for his Drake. We're at nine birds right now if we find that other Drake will be at 10 I think we still have a little bit of time left Have some good hunting. So while we're back in the blind I put my gun away. Unfortunately, we lost Shane's I must have fell in Tully's We looked for about 15 minutes 20 minutes and we couldn't find it so There's still birds flying around. We're gonna have opportunities so We're gonna get a couple more jakes. Hopefully and go to breakfast. It's been an awesome day already. I can't believe it dude Absolutely. I can't I really I wasn't expecting that. I wasn't either. I told Shane I'll be happy if we get through a piece. Been shooting him at like 15 20 35 yards probably the furthest I'm so glad Shane came out here and was able to experience this when you get Big birds working in close It's there's nothing like it. I told Shane this is why I duck hunt. It's right here is why I duck hunt So, what do you think of that hunt? Absolutely phenomenal. That was so fun. The best. That was so fun We ended up with nine eight mallards and a Gaddle Drake So we're packing up.  I don't know what else you can ask for I'm so happy we came out here. So we're gonna pick up them take off Good day Passed it all Lucky lucky That's where we ran out too. Yeah, you guys are doing stuff without me Yeah, we did that We came into town and we're getting some food right now I've been coming to the store. He's unfortunately, uh, he wasn't able to be there this morning Which is a real bummer. I don't wish he was there But work had to work and uh, we're gonna have some good food for lunch celebration. No, yep celebration I'm gonna close this video out. Hope you guys enjoy all the content. Stay tuned for more