 Yeah, hi everybody. Welcome to open. Welcome to open sack is doomed. That's all I'm while you're all here at this conference, right? There were some alternate titles for the talk so maybe might have seen it flash by Open sack is doomed or how I learned to stop worrying and accept complete corporate control My job here is to sort of poke the bear Ryle you guys up you may not agree with everything I say, but if you do I accept a variety forms of payment If they have something funny to contribute and shout it out, I probably won't be angry with you I know I would For those of you who don't know me It might be my fault too because I helped to write a bunch of these things a long time ago Thanks for showing up for my wonderful clickbait title If you don't know who I am some may consider you lucky Hopefully none of them are in the room, but I'm one of the original little group who wrote Nova Before this open stack stuff all started with a couple people in here And I've worked at NASA and so rack space nebula and piston And nowadays I'm the CTO of a great little startup focused on developer experience and nothing at all open stack related So to help you out with with the talk to figure out, you know what I'm talking about in different things I made a little guide here I'll try to use different colors to denote different types of statements. I'm making that way you can figure out You know where I'm going with things. I don't want anybody to be confused. So here's a few examples to help out incendiary Everything that touches launch pad is poisoned I Really fucking hated launch pad or darn hated launch pad. I fought pretty much day and night Against it as we when we started it Clearly the bunch of people quite liked it But I actually had to spend I spent a lot of time writing a bidirectional bridge So I wouldn't have to use BZR It's actually still gets like github things just because people hate BZR that much But git actually has its own bidirectional bridge now. So you don't need to use mine This is a doom thing the rackspace API was the worst thing to ever happen to nova It's really not what we wanted. It was extremely delayed It really sort of set the stage for kind of what was next Things that are your fault keystone should not have its own user database Somehow I like left for a week and we got a user database They might have a session going on right now. I don't know what's what's going on there But yeah, the original keystone light stuff was really the goal was to just back end on Your existing user databases you as big companies have your own Yeah, there's no real reason to write our own And then unrelated this presentation Amazon web services names are stuff way better than we do We have a lot of really weird names in here And they none of them really make any sense unless you know some really weird inside joke so it'd be nice to So much fix that as a bunch So just to figure out who's gonna beat me up later. Can everybody who is a developer or an ops person raise their hand? All right Keep your hands up. Now if you've contributed to other open source projects besides open stack keep your hand up All right, cool. So we have a lot of people You people with the hands up don't tell the people who don't have their hands up. Whatever. I'm blatantly lying You put your hands down now So in order to talk about something being doomed you have to kind of decide where it was trying to go in the first place So this is a thing copied off of that That website that I didn't like And this is what's that's been on there. I don't know it was last updated But there's something important that stands out on that for me It's definitely one of the things I cared about most when I when we started with this project One of the reasons why we were trying to make nova and not use eucalyptus for example was WS star So tons of samol soap WSDL things like this or what we were trying to get away from And then the very first thing was a PI that was very heavily whistel Compliant, so yeah, this used to be the thing I cared about most before Open stack broke my heart, but Yeah, sad times But you know people are excited about the implementation now people who have Stockholm syndrome and people who are consultants so It's a good It's good for some people So there's a hundred forty three projects listed on launch pad Some of those are corpses of projects. Some of those are reanimated corpses of projects Plenty of them do more or less the same thing, but in ways that are incompatible Anybody who knows who they all are is probably on the technical committee and even then I would be Surprised if they if they actually did If there was an Olympic event for feature creep open stack would definitely take the gold There's 85 things called plugins in Nova, so I haven't looked at Nova a lot lately I just was scanning through the code base when I was making this talk There's a directory under the Nova API v3 called plugins. There's 85 things in there Besides the fact that you know the Nova API is pretty much undefinable because of this I think somebody forgot an important rule about open-source software And that is saying we have a plug-in API is basically your way your nice way of saying we don't want your code Plugins don't belong in the repo they belong somewhere else where you don't have to look at them or care about them The if we wanted it it would be a feature Likewise, there's also 91 contrived modules That seem to be more or less overlap with the API modules. I don't know. I don't like directories with 90 things in them I'm not really sure what any of those things are anymore. I don't again know whether anybody else is Ideally there's probably some tests somewhere. That's tech checking whether they work And if you turn on one of the options somewhere you might have it installed or something Yeah, it makes me it makes me pretty sad actually The other big one. This is a great joke, right? It's it's like on the dream host shirts But basically barring cloud foundry's Bosch I don't think anybody's worked with a more complicated setup system for a tool, right? So it's a it's probably the most complicated shell script anybody in this room has ever seen It does Basically define what opensack is at this point as far as I can tell but it is not it's not simple So how did we get to this right we we are no longer simple to implement Making something simple after the fact is just about impossible The usual way it works is somebody does a rewrite that replaces the old thing This is how we got say firefox out of Mozilla or for example keystone light out of keystone It's it's very it's a very active Job to keep anything simple you really have to be very Very attentive the whole time every option you add will be there forever We have a lot of them throughout a lot of projects Knowing how to keep something simple requires having a definable problem something that you You actually know you can solve As soon as you start trying to solve other additional problems outside of your original scope You start getting a feature creep the water has become less clear the original plant is modification It may not really fit and that's where most of your technical debt will come from Every API call you add will be there forever There's that's that's one of the saddest things for me about the rack space API was it's really been how many years now that we were We were stuck with a sort of non-conformant API It took months and months and months to sort of implement and it really didn't match the project at all It's why very few projects that you've don't evolve into spaces. They weren't they didn't start in They started with an epiphany you had an idea for an elegant solution to a problem and then you ended up with Feature creep you as you grow into new things the solution no longer fits the problem then you usually go and you refactor and write again But usually the even at that point it is nice at least that The new problems you've run into are only now addressable because you've solved the original problem So you got that going for you the next rewrite is usually better But that's how technical debt is formed It's the fifth authentication system you write is usually better than the first second third and fourth And by the time you finish it you already know what you want to do for the sixth. So you have to Usually yeah, you have to take a strong stand on things is Jim Baker in the room. There we are. I've met this guy at the at the HP party At the ranger station or whatever mountain your station And I told him I put it in the slide in the slide We were trying to decide on whether we wanted the avocado or bacon grilled you sandwiches And so it's a hard decision. And so yeah, of course you say hey, why not both? Which more or less works for grilled you sandwiches besides the obvious heart attack Area, but it doesn't work that way for software with you if you take both sides on the software You end up with a very indecisive a very indecisive code base One of the big challenges for getting sort of external corporate approval for For open stack early on was the fact that rack space was seen as being Like to in control Everybody thought that since they paid for all the conferences and things like this That other big companies, you know the HP's IBMs of the world weren't going to join them join the project So very early on We got a committee. We got like a board. I forget what it was called the beginning oversight committee or something project policy board Yeah, boo, that's right Whoever's out there Yeah, so basically you suddenly had to get things sort of approved via like a political Committee there were ways it was supposed to sort of be a way to solve arguments, but in the end it basically didn't Things have improved slightly Since then change there's changes in what sort of the roles are of the board But the amount of time we spent dealing with the project policy board rather than making development really slowed stuff down Do we need the board now hell? Yes, this thing is a gigantic machine now, right? There's 6,000 people at this conference. It's ridiculous. It's a it's a political political beast that a lot of people have you know, they're They're a horse in the race on but but back then it was it was a really bad thing for the project Multiple groups of the posing views cannot all own a code base It got really bad like warring patches implementing the same things in different ways People trying to hide their code in places where other people with opposing opinions wouldn't Wouldn't see them wouldn't notice them until they were already in the code base And it's much harder to get something pulled out than it is to get something in It got to the point where people were literally sneaking in code that they knew I wouldn't approve when I was asleep and Which again is why some people are part of like don't like me because I was very adamant about I don't want these Things in and people just would go around it entire projects came into existence Simply because individuals refused to work together They wanted to do something their own way and the way back then to do something your own way was to sort of fork off a project That way you could build your little section of it your own way which resulted in many types of APIs things like that We can't all own the same code base somebody has to run it a Committee was not the right choice It's basic committee software designed by designed by committee is Doesn't really It doesn't go anywhere. It's it you start you have features that you just add features and features and features Nothing really gets better Those team you need good software is designed by a team those teams can be across companies But they have to be working together towards the same goal committee is working towards multiple goals and compromises that leads things to having a Yeah, a very non-decisive Non-decisive code base. I didn't want my project to be open source so that people could tell me what to do Or so that they can you know help me write my code like I already Know what I want to write open source is not about contributions So open stack always is talking about how many contributors there are Open source is not there so that you get people to write other people to write your code It's it's there so that people can Find out what went wrong. It's so it's so that you can share the code with people and sometimes somebody will come in who Starts working closer to the project and has opinions about it, but open source is about providing a better product So people sometimes challenge like say Google or someone for like throwing things over the wall You want you want insight into the development process as a developer because like maybe there is a feature that I'm really hoping is Coming and I ask a question about it and you say oh that's coming soon You can actually see when it's when it's showing up But really open source about providing a better product as a if you're an ops person if you're a dev person When you're using this thing it will break Guaranteed you will never use a piece of software in your life. That does not break except maybe something written in like Ada and The goal is to find out what the person who wrote the software was thinking so you can figure out how to fix your Own problem. It's not so that you can go and have a Input on the direction of the project It'd be nice to but really that's not that's not their role They're giving you something and it's better than what it would be if it's closed source Mark talked a little bit in his presentation about Experiments so you know open stack was kind of an experiment and we have a lot of new experiments some of the smaller projects I think are doing actually pretty well looking through looking over stuff. They're pretty well They have a pretty well-defined scope. They they have a small enough team that they can actually still get some stuff done But without having an opinion as to what we wanted to do this is this is an experiment without controls It's sort of just wandering we like we let the we let the rat loose in the office and we're hoping to catch it later on or something It's not It can't be proven or disproven whether it actually has solved the problem or not It simply just keeps on growing and so right now. That's all we're doing. We're like a Kira at the end We're just growing and growing and growing With an opinion you have variables you have controls in your experiment and variables You can try again next time and do a different thing and have an idea that you might actually do it make it better Solution But the more I thought about I realized open stack did sort of pick a side And they actually really knocked it out of the park. They did they did an extremely good job Is by far the most successful project I've ever started or worked on early on? And I've you know had successful startups and things like this Open stack is definitely a bigger bigger business than any of those Unfortunately for me the side open stack picked his money They we wouldn't have six thousand people here without it It was decided very early on that we needed enterprise buy-in and like literal buy-in To make this thing to make this thing real we're competing against people like Amazon who have a very large cloud and the only way to for everybody to feel like they can get the The attention that they need is through very large companies Helping And that kind of fight is not cheap as big it has it has to have a big marketing department everything like this Which opens that does So sort of my statement here is that open sec isn't people Can we do like a hand raising thing again? Who here has worked for a rack space? I know I have All right anybody from HP How about a Dell? Cisco IBM Who else is here? Burantis Yeah And There's there's some rare individuals who just like are really into it themselves, and there's a lot of smaller companies have joined But a huge percentage of the people here are from from large companies open stack is actually companies And that's okay. They come in two varieties. There's those with heavy open-source backgrounds. Oh, I should also say red hat Yeah, there we go Ubuntu Thanks, so the Those are those are companies with large open-source backgrounds. So a lot of the stuff they they contributed Were contributed in a sort of a normal open-source way and a lot of other companies work on open-source software Or they've hired people who had good open-source backgrounds But there's also a lot of companies here that are name on a box companies that they sell a product Open stack is a way for them to get their product sold more and again. It it works. It's good It's it's been for that and they've They've been getting they've been getting what they want out of it, which is their name in front of more people and things like this Unfortunately for me that's astroturfing. That's not a community That's so I didn't put the word open stack on here because if people are taking a picture I don't it's such a dirty word to me that I don't want I don't want to soil this thing open stack by putting Those two words in together, but really that's what is happening There's a lot of community decisions that are led by large companies And that's not really a community decision it means the community is the company's not the people And I think that it's a it's definitely a misnomer to claim that this was sort of the people's the people's cloud It's not grassroots and everybody know like what astroturf means. It's like fake grassroots movement and that's fine Again, it's working. It works for tons of people. It's obviously being used by tons of people we see great keynotes every year by Gigantic companies using it in large ways Making plenty of people plenty of money. It's great ecosystem It's getting incrementally better at a bunch of the things it does It's just not what I wanted right when when I was writing the software I wanted to have the you know product a user experience like a developer experience I wanted to I wanted to change this cloud thing because there's so many interesting fun moving parts and cool algorithms and other Neat things to try I wanted my opinion validated by usage I wanted a platform for like redefining how I use a computer every day. I want no more usernames I want ubiquitous computing where my local machine and my and machines in like my office and everywhere else are just running whatever jobs One of the things I loved most when I was working at Google is every time I compiled something it compiled on like 80 machines somewhere It was great. That's what I wanted. I wanted to build that system for for everybody. I Wanted organic. I wanted to be like the substrate that Skynet is going to be built on you know, I wanted the machines to win But you know because there's been such strong push for you know from vendors and feature creep The developer experience has been just really shoddy. There's I don't work on software because I'm paid to work on software I work on software because I love writing software And it's just not an experience. That's pleasant at all an open stack is heavily political Heavily bloated and there's so very very very very many moving parts It's Yeah, it's unfortunately not Not a nice place to be So if you were to do this again, what would you change? Anybody who's worked has answers to this. There's plenty of things that you'd like to have had done differently the first time So here are some out of context quotes from the community That's vish. Sorry, I was wrong. I've made this up. So it's not really a quote from vish but the I Told him I was gonna put on there anyway We've made mistakes. Let's uh, you know Say that's okay. We can do it again. That's There's a lot of code there. Most of it doesn't need to be a lot of it's implementing things We we never needed in the first place and working around stuff. We implemented that we wouldn't do again this way We our resident our resident spook had a lot to say on the matter and you know that's I Think I think actually they were they were one of my like most pleasant experiences early on Very quietly in the back of room suggesting nice improvements every so often without necessarily having any Without seeming to try to make a power play. They're not selling a product. They're just trying to make their product better I think that is that's the mindset we wanted, right? We wanted how do we make this product better? Not how do we make this product support my thing? So speaking of supporting things? The I was very proud of I was very proud of Mike in the last release of cutting out a whole bunch of drivers at a Sender and I think he gave this little quote in a session somewhere. So hopefully some reporters get to it, too And they said well, you know, hey, aren't you or aren't you worried that group of all these drivers is going to Is gonna make your project fail and so There's a lot of drivers already in cinder. It supports a lot of things. He doesn't need He doesn't need the corporate buy-in. They need to buy into his stuff, right? And that's the way we should have been that's the That's the the dream of open staff for me, right was that I was defining something with a great Abstraction that companies would then come to and want to use. I didn't want the companies to define the project Sparky has been a wonderful a wonderful contribution to this whole thing And he's he's done a great job at making sure everybody, you know Here's about us and does things now. He's like running the foundation with Jonathan and and all those people I Yeah, there's not really anything to say about this code. It's just a funny slide. I guess But yeah So I guess what I'm trying to say is I think the five-year experiment is done We've gone as far down this path as anybody should ever want to We're never gonna fix the technical debt of Nova inside Nova. For example, it's too big. It has to be Changed we're we've been the experiment went off the rails years ago We've been being held hostage in like a room full of a thousand cooks and it's a very busy kitchen. It's not Yeah, it's We have to escape so I think we should rewrite the rewrite Nova I don't think it needs to do all the things it does right now I think we could probably make a lot of better decisions than the decisions that you know 100-ish people have made over five years or made five years ago as to what it should support I think it's a probably a fun job To say these are the things that we actually care about and you get to be opinionated write fun software and Yeah, I think that's where we should go with this I Never really liked glance It's It's just a list of URLs guys like I don't know it. Yeah, it was one of those projects that exists existed because Two people kind of work together, so And then you know we tried to salvage it, but yeah, it doesn't really do anything I'd love to stop with the terrible API's Just find an actual web developer anywhere and ask him how to do it like it's It's it's ridiculous having a bunch of systems guys write API's Because it's yeah, you really just don't know what you're doing man and so Yeah, I think we should you know stop it with those go look at actual web things I'm sure some of you some of the projects probably have nice API's some of the later projects, but But yeah, we have a lot of a lot of weird calls I think this is a device that sort of goes beyond open stack it's but people people have been towing the party line very heavily for a very long time and Yeah, think for yourself, you know, it's it's not it's not your bosses You're not trying to implement what? HP wants or IBM wants you should you should buy into the project and buy into a vision and buy into a dream And you should work on that and then tell your bosses. That's what we're doing So I think we should start the new experiment Do start the next one make new nova make something make something better something clean something lovely that we'd all like to work on Take some sides, maybe even your own side Have an opinion you can produce a lot of code very quickly There's a lot of tools nowadays you can make proof of concepts again Nova was written over a weekend and it replaced very rapidly stuff. That was much much more mature than it was Nova 2.0 or whatever can happen the same way So open stack is doomed Long live open stack So that's about all I can handle talking about it. I'm willing to take some Questions, I don't know whether they're that's like the kind of talk for question. All right, this guy So I think I think there's a The question is could you give a concrete example of what you would sort of rewrite in Nova? I think the so the API first off. There's really no reason to have a API as Epically large as that a lot of the things were started based on having the the Rackspace API and The sort of concepts listed there Those are sort of old ideas nowadays. We know a lot more about cloud stuff We've seen all the different things that people have are ready for cloud Containers containers are a really lovely way to like bundle your apps, right the code the processes you would like to write I think probably a Probably a focus on bare metal With a stronger container system I think is probably What most people out there who are building cloud software nowadays want to do that's like that that's what is currently happening You having an easy way to wrap container to rise things in VMs for security purposes I think those things are stuff that people care about now I don't think it's as exciting anymore to just spawn a VM. It's no longer no longer interesting So yeah, that's that's something I would do I would I would basically focus on focus on bare metal containers and Not necessarily just Docker so Any other Comments or anything like this Cool. Well, my job here is done. I hope I hope some of you have Taken at least some of the things a little bit seriously. Oh, yeah, somebody there Yeah, I I just I've been giving talks on containers a lot my company does container stuff Any talk any other ideas on containers since it's a hot topic right now Yeah, I've talked a lot about containers I think the Well, if since we're on just like opinion talk I think I think Docker doesn't have anybody's best interest in mind Besides dockers and that's sort of sad to me I think that they are very much trying to centralize control over the ecosystem And it's not somewhere. I want to be I don't want to be in something Where I have to talk to them to get my things So obviously so rocket is a sort of up-and-coming alternative LXC and LXD are other different nice ways to start containers and things like this but The what docker got right was the UX right they had a product and they got it. They got a UX that worked It rapidly went off the rails. It has a lot of bad UX now, too, but But yeah, I think I think separating I think docker is not going to be the answer. I guess on containers, but Rocket isn't yet to the answer either. So we'll see where it goes. I think maybe Open stack could have an opinion Governance 2.0 is big tent. I think that's a good start. So I think so what does governance 2.0 look like is the question? I think I think big tent is a good start with the idea that we are Again, like I said earlier on plugins don't be long in your repository Open stack stuff doesn't have to be under an open stack umbrella. It doesn't have to be a incubated project or any of these things These are all terrible terrible terrible ideas When really if you're trying to build a community you want that one guy over there is random project to be able to interact with your stuff Without them having to sign papers and be beholden to some committee Yeah So I think I think big tents a good start I think having less governance is better for most of that stuff. I do think there's still various governance related to say Branding and things like this. I know they talk about it a lot I don't know what the current state of the art as far as who's allowed to use the open stack logo or for what reasons I'm an open-source guy. All my stuff's always like MIT licensed. I Say use whatever you want, you know use the logo whenever you want it say like we support this And if you don't support it and you said you did your customers will find out pretty quick and not use you so I don't think that's too too bad, but but yeah, I'm definitely a less governance kind of person I think fighting with technical committees has wasted a lot of my life Do I think mandating Python makes sense going forward? I would say no except that the API's are pretty bad And so in order to in order to have multilingual support for stuff like a poly a polyglot language You really need to have a very strong sort of API system Things things like protocol buffers stuff like that helps a lot for doing multilingual stuff They have a common a common API for multiple languages It can be done. I like go. I write everything and go now I like Python too, but but for the most part I write stuff and go I think I think we're big enough now that it doesn't really matter what language things are written in But if you as soon as you write in something else, you don't have access to what Oslo is is Opens that common now or right? Yeah, you don't have access to stuff that's in there But I think that's probably okay. I think wasn't did Dean was Did you get go with the globe go for the open stack client? No, okay Yeah, okay. Well, okay, so He said no he didn't go with go for the open stack client But I think that would be a good test of the community if you tried to write a unified client in another language You would rapidly see how difficult it is to define your API's And so I've tried a couple times and sort of failed Yeah, that's why it's still toys what Dean said So I would like to see other languages just because I What's up? Oh So Swift has a branch and go right now. So that's cool I think that's probably because those guys are like really bored of working on the same code base Swift Swift has been like a very stable project for a very long time. And so Yeah, I think I think those guys are antsy to mess with new stuff Yeah, any other random opinions on things. All right I am gonna cut out early then. Thank you