 Welcome to the upstream this panel. My name is Stormy Peters. I lead a team of community managers within Red Hat And we have here today a group of experts on the open-source software projects that make up all the things We've been talking about today But before I let them introduce themselves, I'd love to see how many people are familiar with the term upstream How many people know what they're about to watch so about half of you. So I want you to put your hand up again Look around if there's somebody whose hand is not up next to you turn and tell them what upstream means to you so so upstream Sorry, so you can also continue conversation at lunch upstream to me means the open-source software project that everyone contributes to So a lot of times we say upstream first Which means make sure you contribute all the things that awesome things you've written to the open-source software project So everybody can work together and collaborate It might mean something else to our panels so they can jump in if they want to But I'm gonna have them introduce themselves so you can see their face hear their voice So that you can track them down at lunch or later this afternoon and ask them your question or tell them that idea that you had in response To theirs so I'm gonna have them one by one say their name what they do And then I've asked them to tell us what their favorite genre of books is and how that might relate to what we're talking about today So part I'm gonna put you on the spot Is this on yes, okay I'm a perna. I lead product management for Kubernetes and Google Container Engine at Google And let's see. What was the other questions favorite genre favorite genre? I Would have to say that well, I like Bollywood movies. I guess that's that's one thing which is maybe musicals But I also like documentaries and I'm mostly Fact-based and real stuff and I think The connection to cloud native and open source is that with open source software You can really go in and you can look at the code and it's what you see is what you get which is very Refreshing and honest Hi, I'm Brandon Phillips. I'm the CTO and co-founder of CoroS If you're not familiar with CoroS, we've built a bunch of open source projects in the ecosystem some of which are used by Kubernetes things like flannel and etcd and then we build a product called tectonic Which is secure simple and current Kubernetes. It's built on pure upstream Kubernetes what Favorite genre my favorite genre is sci-fi Did you want to go into the questions about like how it relates if you got away that relates? so the the novel that I read most recently was dune and I Think I think that maps well to kubernetes. It's a very It's a very Very resource constrained planet. You have to be very careful with how you use resources Which I think fits well with our scheduling model and kubernetes Hey, I'm Paul. I work on open shift, which I think most of you are Have a passing familiarity with let's say I also like science fiction, which is probably not a shocker to anybody that somebody on the stage would say that I've most recently have been reading the novels of gray gigan and they're not Necessarily about technology primarily they're more about the the human condition and the universe But they as a plot point tend to feature people who live their entire lives in software like as sentient software And this is like super interesting to me to think about a software city running in a kubernetes cluster But it's also kind of terrifying because I'm like is one of my bugs gonna kill a sentient piece of software in like 200 years because I don't think I'm gonna be debugging that Hi, my name is Alexis Richardson. I'm the CEO and co-founder of we've works and We make a bunch of open-source projects, which are used in the community fairly widely Probably best known for weave net, which is an SDN and for we've scope Which is a tool for visualizing your application and troubleshooting it and more recently We flux and cortex and all of these come together in our commercial product. We've cloud Which is a software as a service for operating clusters be they kubernetes or open shift or docker or some weird combination of all three and On the subject of genres, I guess I'm gonna join the club here and Confess to liking sci-fi and fantasy But when you think about you know, what is open source and open shift and kubernetes most like It's quite challenging because there are so many examples to pick from and we've had June already and I think is it like game of thrones for example We have the CNCF board meeting this afternoon, which will be nothing like the red wedding. I promise you I Read a really great book last year called the goblin emperor Which is about somebody who's thrust into position of trying to manage an extremely complicated empire And I think that is and without having a single clue about what's going on That's a pretty good analogy for running a software company. I definitely recommend that book. Thank you My name is Clayton Coleman. I'm architect for open shift. I also I'm gonna say like sci-fi so This is maybe a little bit along Paul's line of thought But one of my favorite books is a deepness in the sky and it's basically slower than light Giant, you know interstellar spacecraft, but unlike, you know, the more Positive and upbeat. Yeah, instead of instead of being this like very bright clean futuristic spaceship They're these giant spaceships that no one understands how they run because it's layer and layer and layer and layer of software All the way up its abstractions all its turtles all the way down and abstractions all the way up And so instead of being programmers your archaeologists and you dig through the different layers To go find the program that you can then adapt to go use because all software has been written And so every time I think of that I think of I hope one day that I can aspire to be one of those low levels of that Interstellar spaceship and be somebody else's problem That is awesome. Thanks for the analogies to books So after every question, I'm just gonna kind of look over the audience And if anyone raises their hand like after a question, I'll take an audience question If not, I'll just start the discussion up here. Um, so we have a bunch of users in the audience And I think most of the developers and most of the companies working here are familiar with why we won't work upstream Why we work in open source and I think a partner said, you know Kubernetes should be the platform for the world and what would you tell the users in the audience about what they should be Doing to get the most out of their day when they have the developers here in the audience Why is it important that it's open source and what does that mean to them? In their day. I didn't give them canned questions, by the way Sorry, the question is what why is open source important to me to the users to the here about a third of the audience I think from this morning This is a question people ask every year and have been doing since 1991 and the answers change every year Which is a really interesting thing It used to be the case that people would say open source You know, you could see the bugs and if the issues with security you could request for them to be fixed And that was drawn as a contrast with companies like Microsoft which at the time had a very hostile stance to open source and very much wouldn't admit having any bugs For example, you know, I think today open source is about participation The idea that you can be empowered by a tool and you can help make it better. It's very powerful to users A lot of the people, you know, the idea that you are contributing patching Getting involved on slack getting involved on github and that's part of your day-to-day work as a normal developer in a normal end user company Or startup or big company doing open source. I think is integral to open source today And that's a huge change. That wasn't true 10 years ago. That was the exception So I think that's fantastic I think probably the other reason that people Gravitate towards it is in almost every organization that we work with There are constraints and those constraints generally mean that Software engineers have to make the choice between Going back to the vendor of their software to make the thing fit into their constraints or just looking at it fixing it and moving on with their day and I think As a software engineer myself, I would much rather just fix something and move on then have to work with another layer of management So I think that's that's a big part of it So for me, I think that as a user long-time user of open source software It's important to me because I've like learned a lot as a developer by combing through open source code and Especially now that you know, it's really easy to just reach out to people that work on projects You can learn directly from the people that wrote this stuff, which is pretty amazing if you think about it the world has gotten a lot smaller and You know now if you if you want a lesson in software engineering, you can go on Kubernetes Slack and say hello or OpenShift IRC and ask a question learn something and that also helps us as Developers because the more you have to explain something the more you really understand it and The more questions you get about it you tend to prepare more And and do some deep learning in advance of those questions too and I was gonna I was gonna add to what Alexa said which was There's a like we're at the point where it used to be that it was an ideological thing to be an open source You did it because you believe so strongly in the mission But I think it's just part of what we do like that I think someone's used the phrase citizen developer and I had no idea what that meant But I think there's some element of like we're all participating in making things that are useful to us and as that web of software grows It's actually more important that we be able to work with others to be able to improve this foundation like you know When we get to those giant ships with all those layers of programs Like we want to make sure that the foundations are really good And I think like that's an opportunity that we have to like help make our tools better Like blacksmiths build their tools up from scratch and get better and better over their lifetime And when an apprentice goes out he often goes with his own tools But he takes some of his master's tools and I think that's like some element of like we're all going to be programmers at some Point we're all going to touch these big complex computer systems And if we don't understand how they work we have no way to control them Like they're just magic fairies inside of our phones And I think we need to actually get to that point where we understand what's going on Yeah, I think for me, you know when I first installed Linux on you know my Computer in my in my dorm room. I think there's this this feeling of control You know because it's very it's very flexible. I own it. I can change it. I can go read about it I can be part of the community So I think I think that element of control is is is very empowering And also the community and the fact that you can learn from the community you can contribute to the community as an engineer that feels That feels very natural So I think those those have been the two reasons for me But you asked what the users think and I think we have a lot of users here So we should ask the audience You know any any users want to mention why it's important to them for to work on an open to be using an open-source software project Yeah, you're gonna have to shout Maybe one point that I saw especially in the development of Kubernetes and What's going on with within that area is I can see what the Next step will be I just saw that with the role-based access control. I knew That that feature was in alpha before now. It's going to get stabilized and it's gonna move forward and it allows me Firstly to contribute to the development of that and and secondly to see what can I expect for the future? And this is for me one of the most important points when it comes to to open-source development and using an open-source tool And also the freedom to do whatever I want with it. Yes, that's a great point and and as a product manager I mirror that you know It becomes one community your users your contributors the people that are involved becomes one community and I think we We have a virtuous cycle because I want to know what users want to do and that's what I want to build Any questions from the audience or any other points? Yes, I Have a question for the panel here So I work for Jennifer networks and we have an open open source product call open contrail But with our experience with communities like OpenStack one thing I Realized is as the communities grow larger There is the tendency to feel like you're working for the community rather than looking after what the end users need So how do you? Balance between that like you know that ultimately the end user is what is who you're serving And yeah So that's an interesting point. I'd like to answer that first if I may This is an opportunity for me to talk about the difference between CNCF and OpenStack OpenStack is a attempt to build a extremely ambitious Architecture for an extremely complex and important problem, which is the infrastructure automation problem at scale and to do that What it has done is it has created a in my opinion slightly monolithic way of looking at the world Which has created on the plus side a quite homogeneous community, which is very big But on the minus side a lot of interlock between the different projects, which means that The effect that you describe happens I believe that a solution maybe not the only solution But a solution is to make sure that there are more smaller projects moving at their own speeds Well, when I say smaller, I mean smaller than OpenStack Within the CNCF there is one huge project Kubernetes, which is moving incredibly fast But they're also smaller projects like Prometheus and FluentD and GRPC and they're all right size and within each one of those Communities you don't quite have this sense that you describe because things are scaled down to the problem at hand There isn't the sense of having to look over your shoulder and worry about what the other project is doing because you're part of some huge homogeneous vision of some unknown person Yeah, there's also the governance structure. You know, I think if you have a foundation That is You know very heavy in its governance then I think what you're saying can happen where you're working for the community rather than the users whereas at least so far Kubernetes has been very independent in terms of The technology that and the roadmap it's largely driven by the contributors who are also the users Some of whom are also the users or they are Providing to the users. So that I think if you have a governance structure, that's too bureaucratic That that can be a that can be a killer I was gonna say I hope I'm not stealing Brandon's thing because that would feel rude I was I mean great minds think alike One of the things we've talked a lot about in Kubernetes is making it easier to break it up in terms of like there's been discussions about what's core and What's not core and Extensibility and all of those are really an attempt to say there's a fundamental Challenge that's really really Coherent but it if you grow too large you run into all of the challenges that people have described Which is you have to have some big architectural vision and I honestly think that the most successful path for the Kubernetes community is actually You know to make the trade-off and say that there is no big grand magic architectural vision that you know It's gonna carry us 30 years in the future, but instead to step back and say we've done one thing really well Let's make that be stable and secure and reliable And then let's let a thousand flowers bloom and I think you know This is always the tension is like you could go build things the Kubernetes way But I think that leads to a lot of missed opportunities to change the mindset and I think you know My cynicism in this is that no two pieces of software ever work what like perfectly together, right? Nobody's like gosh look at the problems we were having with presentations this morning, but It ultimately comes down to you can make things work You make things work well enough to get actual value out of them as a user as a company as a as a someone developing applications And I think I think we should be willing to trade this perfect integrated vision For the flexibility to to bring new ideas in and continually be changing because that'll be a constant So as users Just as users How do we know which one of the projects are stable and that we we should actually integrate these into our infrastructure? So we can use them What's the what's the thing we should be watching in the community to make sure that not only we know they're mature and it was good to See the the beta the alpha and the stable But then the interdependencies between those projects who on the who in CNCF is responsible for making sure that those Interdependencies are gonna be stable and that it isn't gonna fall apart. Yeah, so Really that comes down to a lot of the decisions that happen inside of the Kubernetes project So you'll see a lot of testing happening inside of the Kubernetes project around Just every single release and so going back to kind of what Clayton was talking about For some of the foundational components like they're pretty like strong opinions and there's kind of like a reasonable set of defaults That come out of the project and those are sort of the things that should for the most part end up in people's environments But we are kind of building a legally system and so inevitably it will be up to You know taste and testing of individuals setups to ensure that it's it's good and complete Yeah, the Lego analogy. I think is a good one There are parts and pieces each of which is well tested and stable, but they can fit together to create different toys completely different toys and They're for different environments and that's part of the Architecture, I think the base architecture of Kubernetes is very modular It's meant to be Something that can be customized for say a bare metal or a different cloud provider And so there there will be these just just different distributions that cater to a particular environment And then you go with and you trust You know the the distributor Paul to take things back to how can we Best keep users interests in mind I think one thing that's extremely important is to have a good path for users to become developers and Other types of contributors because users tend to know what they want like they they're they're using something to accomplish a goal and If we can give them tools to help the project Help them accomplish their goals by contributing. That's that's really powerful, right and sets up like a positive feedback loop I'd like to try as well. Yeah, I think that's an important point and touched on the issue earlier around the importance of open source So trust is fundamental to the relationship Between a user and their software and if you don't trust a piece of software You soon stop using it and there have been different approaches to building trust and software over the last years But I think right now we have a really good model which mixes, you know distributors vendors communities foundations and channels like Slack and GitHub where people can interact one-on-one with You know leaders from the development teams for example, I think all of this is crucial to building trust At the project level and then different organizations can play a further role to strengthen that trust So for example, the CNCF can publish information about what works with what and at the moment pretty much everything works with pretty much Everything within the CNCF because the projects are sort of fairly different But I think in the future that's going to become much more important. You probably noticed that recently Container D and RKT will put up for the CNCF and it will be very important for end-users to understand Which containers work with Kubernetes for example at any given moment and that might be a changing thing So, you know versions will get updated people will need to be told and doing that through a neutral foundation like channel is a sensible thing to do On top of that there are there's more. I mean, I think there's a crucial role for distributions and vendors So for example open shift I believe is 100% open source, but it's an assembly of multiple projects So that comes with it trust that somebody these two guys and others have made an effort to make the pieces work together Then you have things like tectonic, which is a commercial distribution, but also providing you that guarantee So these are all different ways in which trust can be built up And it ultimately comes down to relationship between you the user and who's providing you with the software And to go back to upstream you can always use upstream or create your own Mix and match different components that suit your environment And I think the other thing that that shows that that the projects are thinking about users is a lot of the work That's going into cloud interoperability right now So for example the service broker API work is I think an example of that So and I would make a like this is a kind of a stretch analogy. So you have to bear with me I sometimes go for very torturous analogies, but like the spaceship. Yeah, that is exactly like that I think in this case the I would I'd like to see kubernetes become the Microsoft Excel of distributed systems Which is it is not there To ensure that you can do 10 billion rows and all that but people do it anyway And they get value out of it and it's useful and everybody can kind of approach it Everybody can approach it from the beginning and say I know how to take this piece and put it together with these other pieces and actually Run distributed systems successfully and I think you know There's lots of different aspects of distributed systems feedback loops and all this but like that formula is an incredibly powerful thing We need a equivalent formula for kubernetes to let you run these things keep them together and You know get something out of it at the end get a result out of it, which is your applications keep running That was a stretch. I know all I can think about now is clippy with a K. That's right. Please. Would you like distributed systems with that? It looks like you're trying to build a distributed system. Have you considered not I Think we have time for like two more questions from the audience Maybe one question when it comes down to What you can expect from from open source and from stability. I believe what we should really think about is What can we be sure that an API or an component in kubernetes solves? Because this is one of the things that I've ran into recently is Persistent volumes having the wrong users configured when I start them up And then I need to run as a root user and reconfigure that and there were some bug reports for that But all of those were closed and said this is not what a persistent volume should solve This needs to be solved on a level and I can rely on that and I can accept that and I can be sure that this is Going to stay for the future and it's not going to change and this is one of the things that I believe is most important for stability and interoperability in the future Thanks, that's Paul's fault actually sorry, dude Paul was responsible for that and you know So here's your chance to like buy in one of the free beers at the end of the day and try to change his mind See me after this for a beer ticket And I was gonna say like the sense of humility that people in kubernetes need to have is like what I mean like one of The things that's made kubernetes specifically successful has been a bunch of people trying their best to take all the really important lessons that they learned and Like come up with the simplest possible thing that could actually work that doesn't Overshoot and it doesn't always get it right like there's lots of little things and that's just the way software is like those layers of All that software going back in time that are just gonna be built up forever like we just want to try to do our best to take that feedback and Be reactive like if kubernetes has to change kubernetes will change I think that's the best part about open source is that there is always an opportunity for that Yeah, I think I would say that the there's a very high level of conscientiousness You know amongst the engineering and technical team behind the project Would take the responsibility very seriously in terms of structural You know that we have the alpha beta and stable labels for different Features the alpha indicates that the API isn't yet Pin down and there could be changes and so that's a you know use at your own risk type of thing Beta gets towards you know once once something goes beta then you know it's the it's not going to change and then stable is it's been You know it's been through the through the washer So we try to do that and provide that kind of label to help along So I think that there One thing that we'll probably find as we refine the kubernetes API is for example is that the the contract Matters to the extent that it actually specifies all the things that are in the contract. So I Think that we'll find that the the more specific the contract is the easier it is to one Make it coherent for users about what they can expect And to ensure that when we say an API is stable that we can actually test it because the contract is well-defined Like it's it's very easy to make Like a new API resource and say these are the fields, right? But the interplay of those fields in a particular resource with another feature May not be defined in a stable API. Where does that leave you right? So there's probably additional Specificity that will improve things for everybody both like as a user and then also as a develop developer It's good before we go ahead. Thank you for the feedback Before we close I have one more exercise for all of you I'm so you're gonna go to lunch and I'm sure Dan has a few words to say to you before you do that But before we say thanks to the panel I'd like you to turn to the person next to you and tell them what kind of conversation you are gonna try to have at lunch So who are you gonna? Try to find what do you want to talk about? So turn to the person next to you and tell them what you're gonna talk about at lunch All right, so you actually have to save the conversation for lunch, but that's awesome I'm gonna I'm gonna close the panel here. Oh everybody awesome conversations But I want to close the panel by everybody saying their name one time so you know who they are again So I'm gonna have everyone on the panel just stand up tall and say your name so that if anyone in the audience wants to find you They know who you are Aperna Sina you can find me outside doing lunch Brandon Phillips Paul Maury do you see me about that drink ticket? Alexis Richardson and Clayton Coleman. Thank you very much