Kubernetes (with Joe Beda)

Episode 202 · Tue, 09 Jul 2019 14:00:00 +0200 · 17:24 · SRT · archive.org · all Tanzu Talk

0:00

Welcome to the cloud native in 15 minutes podcast. The goal of this podcast is simple, to explain complex but increasingly important and even strategic technologies and about the time it takes for a coffee break. We're all busy, but that's not an excuse to not understand, at a high level at least, some of the fundamental technologies that will be powering your company for the next decade. I'm Derek Harris from Pivotal, and our topic this week is Kubernetes. Joining me to explain is Joe Beta, currently a principal engineer at VMware. Prior to that, Joe was co-founder and CTO of a Kubernetes startup called Heptio and helped create Kubernetes during his time at Google. Among other things, Joe explains where Kubernetes fits into the broader cloud and digital transformation landscapes, how Kubernetes is evolving, and how the line between open source and enterprise software is blurring thanks to the quality of today's open source communities. And without further ado, here's Joe. Okay, Joe, so let's start talking Kubernetes. Can you explain it to listeners in about 30 seconds, high level? I think the fundamental problem that Kubernetes solves is that you have a lot of computers and you have a lot of stuff you want to run on those computers. This is generally in a data center. And so Kubernetes solves the problem of actually trying to shove as many programs as possible on a set of computers. And then once you start doing that, what do you do when computers fail? How do they find each other? How do you actually expose the stuff? There's a bunch of problems downstream that Kubernetes then helps you solve from that. Okay. Can I ask when you say computers, does that mean containers or can you define that a little more broadly? Well, the computer is a physical machine in a data center. I don't like to use the term server because server is sometimes a process, a software program, right? It can be confusing. And then the things that you want to run would be containers because containers are this packaged artifact that you can move around, that you can schedule. It's sort of a dynamic thingy that we really haven't had in a portable way in the past. All right. Cool. And a lot of people who don't follow Kubernetes very closely, right, who just know they need to do it, might know it as this project that came out of Google several years ago, right?

2:09

I mean, how has Kubernetes evolved since then? Well, so we launched it five years ago out of Google and it was really, really raw then. I'm not sure how much code is actually still surviving from the original code base. And it's just, it's grown in so many ways over the last five years. Some of it is that we have a thriving community with a bunch of companies being involved and individual users, everything from, you know, huge companies like IBM and Red Hat and Google and Amazon and Microsoft, all the way down to, you know, small startups that are actually involved in helping out too. But it's also grown in terms of its maturity, its ability to solve these problems. And the model that Kubernetes brings for how it actually approaches solving these problems has proved to be useful in so many domains that I don't think we saw out the gate. And so that for me is really exciting. Okay. And if I'm an IT exec, right, like how does Kubernetes tie into bigger initiatives? I might care. Well, that could be cloud native, microservices, IoT. I mean, there's data, there's digital transformation, right? Like it seems to touch on all those things to some degree. Yeah. I think the key one there that you mentioned is really digital transformation, which, you know, as a technologist, I hear that. And it sounds like a throwaway BS term that is meaningless. But the theme here is real, right? Like we have, you know, the example I use, and don't read too much into the names I'm using here. But we have sort of like, you know, the Fords of the world trying to figure out how do I become a software company? At the same time, you have like the Teslas of the world figuring out how do I become a car company? And this sort of like software-based disruption is playing itself out across every industry. I mean, there's retail, there's insurance, there's healthcare, there's finance. Like there's challengers that are sort of born in the software era across all these industries. And so there's a real effort in mainstream IT to figure out how do I actually reinvent my processes so that I can actually use the cloud, use software, use modern development practices,

4:18

and not as something that sort of like, like slows me down, but it's something that accelerates me so that I can actually be competitive in this new world. And so Kubernetes is really part of that toolkit, part of that solution that can help to approach and solve those issues. And so I think it's helpful here to tease apart like cloud versus cloud native. In my mind, cloud is running on somebody else's infrastructure, or at least something that somebody else is managing for you in sort of private versus public cloud. But as a user, you're like, I'm not worrying about the nitty gritty details. Generally, it's about API driven, self-service in that you don't have to talk to anybody. I like to call public cloud not talking to a sales guy as a service. And then it's elastic, meaning that there's a lot of room to essentially bring new techniques because you can have infrastructure on demand. So that's cloud. Do you want to ask something? I was just going to comment. It's not talking to a sales guy unless you're doing a really big deal. But for a lot of people, like, you know, there's a lot of folks like, I want to write code. I don't want to talk to a sales guy. Let me actually just get started. And that's the sort of self-service sort of, hey, let's not have any friction between you and getting something done that cloud really brings. Cloud native in my mind then is what are the techniques? What is the structure? What is the set of tools that you use that you can take the best advantage of cloud? How do you actually take those new capabilities that cloud offers and, you know, apply those to your organization and then take that to the fullest extent that makes sense over time, right? So that I think is cloud native. And so you see a lot of big companies, you know, I'm using air quotes here, move to cloud, and they'll spend millions of dollars and, like, months and months or years of time, and then they'll get the whole thing done, and they'll be like, how come we didn't magically turn into Netflix, right, which is like the poster child for Amazon, right?

6:21

And the reason being is that they are physically running on cloud, but they haven't actually changed their practices, changed the way they do stuff. So they brought all their old sort of processes, their old ways of doing things, and they're just now running on somebody else's computers. There may be some efficiencies there, but it's not nearly as much as if you actually sort of internalize and change the way that you do things. And the power of systems like Kubernetes is that it decouples those things, and so that you can be cloud without running on cloud. You can be cloud native even if you're actually running on-premises right next to your Oracle database or your IBM mainframe or what have you. Okay, so it's a way of, yeah, it's a way of doing things. It's a way of thinking and acting and processes versus, like, yeah, like the cloud part is kind of a misnomer in a matter of speaking. Yeah, well, it's like using cloud-type processes, you know, regardless of where you're running. And so once you internalize cloud native, moving to cloud, then, you know, it's not free, but it's a hell of a lot easier than if you're trying to just do things the way you've always done it. All right. And speaking of Kubernetes, I mean, this is a discussion I think happens quite a bit. Like, who should probably be interacting with Kubernetes on an intimate level, right? I mean, is it better suited for developers or for operations staff? Well, I think there's two sides to Kubernetes, probably even three sides to Kubernetes. You know, the first thing is that, you know, who's running and maintaining your cluster? And I think that that's sort of the cluster operations, cloud operations type of role. And sometimes you can outsource this. So if you're running something like GKE or, you know, with my VMware hat on, something like Cloud PKS, this is a managed service. This is something where somebody else is taking care of all the nitty-gritty details of keeping that service up and running. Now, one of the things that we're seeing is this shift towards more smaller, more dynamic clusters, being able to launch clusters that are more specific and having versus sort of that, hey, I'm going to have one big install.

8:26

And, you know, and it's this one thing that I have to sort of keep alive and manage, right? We're moving to a more dynamic view, not just of workloads, but of clusters themselves. And then there's the user's point of view. You know, and I think, you know, you'll have more advanced users that actually, I think, are perfectly willing to engage with Kubernetes themselves. They're going to write their own automation on top of this. They're going to sort of create their own workflows. I think for folks that are knee-deep in this, that makes a ton of sense. If you have special needs, then I think it makes a ton of sense also. But then we're actually starting to see more curated sort of paths through Kubernetes start to be built on top of it. Some of these things could be sort of a platform construction kit, something like Knative, where I think we start seeing a blurring the lines between paths and serverless as we start having a more sort of broken down componentized view. Some of these things may be tilted towards machine learning with things like Kubeflow. And so I think what we're going to find is that there's, you know, Kubernetes is a toolkit, and then you can essentially, you know, build different things on top of it, different curated experiences. And so I think in the fullness of time, the bulk of users probably won't interact with Kubernetes directly, or they won't interact with the common primitives directly. They may still use the Kubernetes API patterns. But they'll have some sort of more curated, more streamlined, you know, entry into that world. The nice thing, though, is that if they do need to interoperate between these different worlds, if they need to drop down, there's sort of a graceful sort of degradation as you get to the more raw layers. Whereas I think a lot of times when you look at a traditional sort of platform as a service, as long as you fit within the constraints of that service, everything is great. But as soon as you don't, all of a sudden, it's like, well, here's a raw VM, good luck with that, right? And I think Kubernetes provides a much more gradual sort of set of services, everything from something super curated down to something that can be pretty raw. All right. And what's the difference between, you know, this is putting on the VMware hat again, and the Heptio hat and whatever hat, like, what's the difference between open source or upstream Kubernetes and what's available from a VMware or a Heptio or, you know, pick any other vendor that's currently offering a Kubernetes, you know, quote unquote solution?

10:40

Well, I think it's evolving over time. You know, one of the things that I think we're seeing with modern open source is that it's expected to be usable out the gate, right? I think if you compare something like a Node.js compared to, say, something like the Linux kernel, right? Like, nobody takes a Linux kernel, compiles it, and runs it, right? It's like you need a whole bunch of structure around it to take that code and make it useful. Newer open source, you know, it's like you go to the readme, and it says, here's the instructions you're up and running in five seconds, right? That is sort of like the sort of the new aesthetic around this stuff, where I think people expect this stuff to be approachable from the get-go. And so we're seeing the relationship between vendors and open source change with that. So I think a lot of users are successful using upstream Kubernetes. You know, we're working, we meaning VMware, are working in this part of Kubernetes project called SIG Cluster Lifecycle to really make it much more approachable to do this. And I think we still find that there's a lot of choices, there's a lot of knobs, there's a lot of opinions, there's not necessarily the one right way to do things. And if you get yourself in trouble, there's nobody to call. And so the role of vendors, the role of somebody like a VMware is everything from, you know, we can give you support if you get in trouble, we can give you an opinionated tool set so that there's good defaults that, you know, we can, are pretty sure are going to work well with you. We can offer consulting services that if you do need to actually do something custom, we can help you understand the repercussions of that. And then, you know, everything up to, well, we'll just manage the whole thing for you and then you can just write your apps on top of it. And so I think the relationship between companies and open source is changing, but there's still a ton of room for folks like VMware to add value and offer some unique services. Okay, yeah, it seems like the one thing you'll hear, you know, kind of frequently is, is companies that aren't like you, like you mentioned earlier, that aren't fully, you know, haven't made this transition to doing things in a cloud native way, right?

12:45

And, and Kubernetes, you know, the raw Kubernetes can offer them, you know, kind of just enough rope to hang themselves at times, right? I mean, or at least cut themselves, it seems like is, is what happens, you know, on a not infrequent basis. Well, I think that's true, but also the flexibility of Kubernetes means that they can, they don't have to be purists. There's room to compromise as they look to adapt their old stuff into their new stuff, right? Like, you know, we have a, a very large financial services company and they had a sort of home built, a big data ish sort of batch processing system. They're looking to move that stuff to Kubernetes, but there's a lot of roadblocks if they were going to go to a sort of purist type of route to this. But the flexibility of Kubernetes means that they can, they can start getting used to it. They can start moving forward without having to necessarily, you know, rip and replace everything that they've been doing. Okay. And then, you know, is there a common point or size or use case or whatever it is where, where Kubernetes users become, you know, Kubernetes customers, I guess, whoever that's for? Like, I mean, is it what, like, what's the line between DIY and commercial? I think you touched on some of this. You just touched on some of this, but. I think it depends on the company. It depends on their situation. The, you know, I think a lot of startups, you know, it's, there's this interesting thing where it's like, you go to startups, you go to a lot of companies in the West Coast, sort of like technology forward, Silicon Valley-ish types of companies. And I'm not going to say that development resources are cheap, but they're generally plentiful. Whereas if you move to sort of like, especially these sort of larger enterprises, there's a, there's an inversion here where all of a sudden they have a lot of mature operations teams, but development is actually something that is, is rare. And so I think that, that the, the, the, the mix between, you know, where the expertise is, how forward looking it is, how integrated with it is between operations and development, how far down sort of the, the DevOps type of spectrum you've gone.

14:55

Those things are all factors that go into, to whether you want to manage stuff yourself or whether you want to bring in a vendor to help give you a toolkit or whether you want to go with a fully managed service. And so I don't think there's a single answer. And I think that it really, it can even change from line of business to line of business. Okay. And then finally, Joe, I wanted to ask the Kubernetes gets, gets mentioned a lot as kind of this enabler of, of a multi-cloud architecture, right? And that's something we haven't touched on yet. Is that, is that something that, I mean, was it, was it designed with that in mind? And is that something that you're seeing actually play out? Well, I mean, we knew, you know, when we launched Kubernetes, our goal really was to think about how can we disrupt how people deploy software in a way that aligns it with the way that Google thinks about these things internally. And, and, and, but we also knew that like for this to catch on, we needed something that was going to be open source and ubiquitous. And so our goal with Kubernetes from the very beginning was to make it be a toolkit that could run anywhere. Whether it be bare metal or on cloud. And I think it was very controversial inside of Google to say, Hey, we're going to do this open source project. And if somebody wants to go ahead and run this stuff on top of Amazon, you know, that's something we should support because that actually furthers our goals of essentially, you know, redefining how, how people launch and manage software. Very controversial, but it was a goal from the get-go to make sure that we could create this higher level abstraction that, that, you know, I won't promise perfect portability, but at least starts to give you a certain level of portability that you really difficult to get without something like Kubernetes. All right. Great. And with that, I think we're ready. Thanks, Joe. Very informative. All right. Thank you so much. Nice talking to you. There you have it. I hope you learned something. For more information about Kubernetes, you can, of course, check out the project home at kubernetes.io. And for more information about what VMware is up to, you can find that at vmware.com.

16:57

For more information on our broad suite of products and services for building and managing cloud native applications, including Kubernetes distribution, as well as transforming how you build software, check out pivotal.io. And if you like this week's podcast, want to keep up with all things digital transformation, including a curated list of the week's top stories and case studies without filler or vendor spin, visit us at pivotal.io slash intersect.

Tanzu Talk · 🍕 Get more pizza.