DOP 45: (Almost) No One Cares Enough About Kubernetes to Learn It

Posted on Wednesday, Mar 4, 2020

Show Notes

#45: Unless you’re a Kubernetes administrator, why should you bother learning everything about Kubernetes? Our answers may surprise you.

Rate, Review, & Subscribe on Apple Podcasts

If you like our podcast, please consider rating and reviewing our show! Click here, scroll to the bottom, tap to rate with five stars, and select “Write a Review.” Then be sure to let us know what you liked most about the episode!

Also, if you haven’t done so already, subscribe to the podcast. We're adding a bunch of bonus episodes to the feed and, if you’re not subscribed, there’s a good chance you’ll miss out. Subscribe now!

Books and Courses

Catalog, Patterns, and Blueprints

Buy Now on Leanpub Buy Now on Udemy

Kubernetes Chaos Engineering with Chaos Toolkit and Istio

Buy Now on Leanpub Buy Now on Udemy Buy Now on Amazon

Canary Deployments to Kubernetes using Istio and Friends

Buy Now on Udemy

Hosts

Darin Pope

Darin Pope

Darin Pope is a services consultant for CloudBees.

His passions are DevOps, IoT, and Alexa development.

Viktor Farcic

Viktor Farcic

Viktor Farcic is a Principal DevOps Architect at Codefresh, a member of the Google Developer Experts and Docker Captains groups, and published author.

His big passions are DevOps, Containers, Kubernetes, Microservices, Continuous Integration, Delivery and Deployment (CI/CD) and Test-Driven Development (TDD).

He often speaks at community gatherings and conferences (latest can be found here).

He has published The DevOps Toolkit Series, DevOps Paradox and Test-Driven Java Development.

His random thoughts and tutorials can be found in his blog TechnologyConversations.com.

Signup to receive an email when new content is released

Transcript

Darin Pope 0:00
This is episode number 45 of DevOps Paradox with Darin Pope and Viktor Farcic. I am Darin.

Viktor Farcic 0:05
and I am Viktor

Darin Pope 0:06
and today we're sitting face to face in lovely Las Vegas on a lunch break.

Viktor Farcic 0:12
Oh yeah

Darin Pope 0:12
I ate lunch. Viktor didn't. So we gotta do this fast so he can go eat before we have to go back to another meeting. That's okay.

Viktor Farcic 0:18
It's okay.

Darin Pope 0:19
It's nice and sunny. It's 70 or so. It's just nice day. We had some options to talk about for a couple different episode options. That ding was my wife sending me a text from three days ago. Well, that was interesting. I'll edit that out, or maybe not. But we settled on this one for today. And the proposal is almost, key phrase almost, keyword almost, no one cares enough about Kubernetes. Kubernetes is all the hotness. You call it the

Viktor Farcic 0:51
Alpha and Omega of everything. Everything is Kubernetes.

Darin Pope 0:55
But we're positing we're proposing that almost no one cares enough about Kubernetes to actually learn it.

Viktor Farcic 1:02
Exactly. I mean, people do want Kubernetes features, whatever those features are, you know, availability, fault tolerance, scalability, -ilities. But it's unrealistic to expect people to spend a year learning Kubernetes if their job is to write, let's say, Node.js code, and I'm saying Node.js just to say something, right. So it's very unrealistic. And the whole idea was from the very beginning to actually simplify things, so that people can get that power without ripping their hair out trying to learn it. And I think that we are not even close to that. We are not even close to let people use Kubernetes instead of what I'm seeing right now in companies is that Kubernetes is yet another platform owned by a team of few people that where you need to open Jira tickets to do stuff. One because those silos like keeping things tight. And second, because people outside of those silos are not willing to spend eternity learning Kubernetes. So I think that we are far from getting real adoption.

Darin Pope 2:17
But if people don't want to learn Kubernetes, and they don't have a choice, because it's coming. It's been implemented. The C-level said, "Do Kubernetes."

Viktor Farcic 2:31
but what I'm hoping that we will be seeing, I hope that we will be seeing soon, and there are glimpses already available in different places is that we should get to the spot where a developer says, Okay, this is my Node.js application. Run it. Really don't ask me about services and ingresses and service mesh all that stuff. Just kind of this is my application running do the right thing.

Darin Pope 2:57
But we have that today with Heroku, Cloud Foundry. That's what it is.

Viktor Farcic 3:02
Yeah, that's what Heroku is. Now, Heroku failed to actually attract any big business. But yes, I want Heroku type of easiness of doing stuff. Just don't ask me too many questions. It's okay if you ask me questions, but those questions must be related to what I do. So you can ask me the port of my application, because it's my application. But don't ask me to write 57 lines just to expose that port.

Darin Pope 3:29
Right and why? Should people have to learn Kubernetes? If Kubernetes is brought into an enterprise in reality, they shouldn't have to be learning it. There should be a real abstraction because at the end of the day, Kubernetes is a platform,

Viktor Farcic 3:48
Yes, or even platform meant to build platforms on top. I don't think we are there yet to have platforms. It's more like a baseline that we are all putting different pieces together, but there is no real platform yet.

Darin Pope 4:04
So could we assume that at some point, we're going to see that platform of platforms? We're going to see a serverless platform, maybe there's a Cloud Foundry-ish platform that is good and you pick the flavor of platform that you want to run.

Viktor Farcic 4:21
Yeah, I hope that I'm going to see that. There is nothing yet there really. I mean, different vendors are putting different pieces but OpenShift is not that type of platform. GKE is not that type of platform yet. And none of those platforms that I know of, they're just slightly improved Kubernetes while I'm looking for huge abstraction on top of Kubernetes, I don't want hundreds of lines of YAML. I want just the bare minimum.

Darin Pope 4:51
Three or four lines. That's all I want.

Viktor Farcic 4:54
Yes. And then somebody else should make sure so if my application should run using Istio, then somebody else, let them setup Istio. I don't really care about whether it's there or not. It's somebody else's job to make sure that those few lines are converted into a huge thing, whatever is really, really needed in the background, but that must be low level.

Darin Pope 5:15
Again, it gets back to the point somebody has to learn it. Somebody has to learn it. Now, the question is, are you gonna be a large company, a Google sized company, to where you're gonna have people on staff that do those things or are you gonna be enterprise x, that "well, we're doing Kubernetes because we were told to, so we're just trying to follow along."

Viktor Farcic 5:34
I don't know yet what it will be. What I do know is that in no foreseeable future, companies will be able to assemble it themselves. So I really think that we are going to see increase in quality platforms or solutions or whatever you want to call it, that people will run. And then later on, maybe companies will figure out how to do it better, or tweak or whatever. So, in other words, basically where I want to go is you mentioned before, what was it, Heroku, right? I want to go, I want to keep the power of Kubernetes but go to the simplicity of Docker rest in peace. But I want that simplicity that containers, I think that we would not have Kubernetes today if it wasn't that Docker made containers very, very simple so that everybody adopts it instead of only a few people ops or whatever they are. Now we got the other side of the coin, we got unlimitless power without simplicity. If we can join those two, then we have a winning situation.

Darin Pope 6:43
Well, it's sort of where Kubernetes is today is basically an empty box of Legos, Lego bricks, right? With no instructions. It's just it's like the old shoe box and you've just thrown pieces in there over time. Well, now somebody has put things together but I still have to piece those together to make a picture. However, let's play this out. I want to just go to the toy store, buy a Lego set, go buy the Millennium Falcon for $800. Right? But it's got it's got all of my instructions. It's got everything to where at the end I actually have a Millennium Falcon. That's what to me Heroku is sort of. It has the full instruction set, it abstracts a lot of stuff away from me. So if I need to put the pieces together I can but there might be a whole panel I just pop the panel on and I'm done.

Viktor Farcic 7:28
Yeah, except that I think that now analogy with Lego set Falconer, whatever it is. I think that's analogy for sysadmins and that's great but for most of the rest of the world, kind of like I'm not interested. I like Lego, but I'm not interested enough to actually assemble.

Darin Pope 7:45
I just want to go buy the Millennium Falcon.

Viktor Farcic 7:46
Can you for 100 bucks, can you give me assembled Falcon kind of like that's what I would like.

Darin Pope 7:51
yeah, I'll buy it for $800 and I'm, going to pay you $100 to put it together.

Viktor Farcic 7:54
Exactly. And all I want is just open the box and then it's there.

Darin Pope 8:00
but we're nowhere near that.

Viktor Farcic 8:02
I don't think we're near there. Simply because the base points from which Kubernetes started is Kubernetes was from day one oriented toward sysadmins, while Docker was from day one oriented towards developers. And those two directions, never met somewhere in the middle. So we have Docker being dead and Kubernetes being still mostly sysadmin oriented.

Darin Pope 8:30
So if we have our magic wands, what do we do? What do we see in 12 months? Is it possible that...I mean, obviously, there's serverless is one of the easier ones because there are a few platforms out there that you can drop it and make it that simple.

Viktor Farcic 8:44
Yeah.

Darin Pope 8:45
But are they robust enough? And no disrespect to any of the authors of those but most of those, those most of those projects are run by 1 to 3 people.

Viktor Farcic 8:56
They're not there, but I think we're getting there. I mean, we have Knative for Serverless, we have Flagger for doing the magic around Istio and all that stuff without you actually even think about it thinking about it. But those are islands that they're still just small islands in a bigger picture that is missing. I'm pretty sure that, you know Google's of the world, they're going to figure out that that's a very huge financial opportunity to provide services and all those things. And some of them are going to be based on open source, so people will be able to run those same services, hopefully, on not cloud. But my I would guess that we are going to get there in 2021, not this year yet. We will see glimpses of it but not being there.

Darin Pope 9:47
Well, if you go back and look at the, whether it's Azure, AWS, Google, they all started probably with VMs and some sort of block storage. It all builds off of that. Now we have real services that we can use AWS tends to have more services than the other two. But they all still go back to those two basic things.

Viktor Farcic 10:10
Yeah, but I mean, what what was happening, at least in Kubernetes area around cloud providers is that they simplified greatly creation of a cluster and management of clusters. So kind of two of the many check boxes ticked, right? But those two things, again, are very important for sysadmins. I just hope that now that we don't have to worry about managing our Kubernetes cluster, then the next level would be let's not worry about deploying our application. And I mean, deploying is easy, defining it. So my real issue is how to define your application not really deploy.

Darin Pope 10:44
Okay, so how would you define an application saying it's saying it's hard, but

Viktor Farcic 10:51
by remove, simply we need to remove 80% of those YAML definitions that are just garbage. You know, 17 labels and 30 annotations and there is very little really important information in the current way, On average and mid size application can easily defined in hundreds of lines of YAML. I want five. This is my image. I want autoscaling, for example, I'm inventing now I'm not prepared, but kind of like, I want this, this, and that. I want it. I don't want to define 17 lines for autoscaling. I just want to say, Yes, I want autoscaling and maybe don't go over 50 replicas because then I cannot afford it or something like that. Now when I think about it, actually, I think that what I really want is for Kubernetes to have sane defaults. Instead of me, copying and pasting over and over always the same, like service listens to port 80. If I don't specify sorry, listens on 8080, let's say, right if I don't specify anything, that's what it listens for. But today there are no such defaults. That's what's Heroku had, right?

Darin Pope 12:07
Yes, absolutely.

Viktor Farcic 12:07
Kind of you can tweak it to that. But you start with something operational with no effort.

Darin Pope 12:13
What app do I want to deploy? Oh, it's a jar file. Okay, here's fat jar. Great. Go run it, give me three of them and I'm done. And that level of abstraction makes prototyping easier. Because even with larger, or even a smaller installation, I'll need to do an app. If I have to write those 100, 200 line YAMLs. That's like, crap, I gotta set another aside another day,

Viktor Farcic 12:40
Realistically, what you're gonna do is copy and paste those things from your colleague, right? So you're all going to kill 95% of the same stuff, and then just tweak those five. So what I'm suggesting is remove the things that do not require tweaking.

Darin Pope 12:55
Is there any way that that could be done today?

Viktor Farcic 12:57
Today, I'm busy.

Darin Pope 13:01
No, I mean, okay, so yes, good joke. I'm glad you were paying attention because I missed it. But is there a way in Kubernetes today that you could set up a sane or at least Okay, get a fresh install a fresh cluster installed? Are there ways to prime it?

Viktor Farcic 13:16
the closest one that wants to that are Knative and Flagger. But again, I need more. Kind of, they're just tiny pieces of something. But if somebody is looking for analogy of what I'm expecting then the closest one not still there, but the closest ones are Flagger and Knative, and OpenFaaS and other.

Darin Pope 13:38
I mean, again, they're opinionated. Right? It's more opinionated, that's what I'm saying. I didn't call out OpenFaaS yet because, again, it's a smaller project. He's doing a great job with it.

Viktor Farcic 13:48
Yep.

Darin Pope 13:49
But it's, I would be concerned about putting OpenFaaS into an enterprise as it stands today.

Viktor Farcic 13:55
Yeah. So that's another problem. It's not only whether we have those pieces, but which of those pieces are going to be more widely adopted. Because I'm kind of lucky that I have probably more available time to, to explore things than most. But I don't see people now exploring 50 different things to figure out which one so I want something like okay, like with monitoring we have Prometheus is the defacto standard. You can choose something else, but that's where you go by default. I want the same thing for deployments and managing applications. So I don't know what there is no, still clear sign. What's going to be the standard, but something must come.

Darin Pope 14:37
One of the things that's interesting is the Linkerd. I'll use Linkerd and Istio right. Your belief is that Linkerd is superior. That may be too strong of a term but better than Istio.

Viktor Farcic 14:54
Yes,

Darin Pope 14:55
but Istio has won the war right now.

Viktor Farcic 14:58
Most likely, I mean, it's still raging on, but it's most likely winner. And actually link. And that's kind of surprising because Linkerd goes to implement standard API so that it can be Linkerd or something else. So it's more focused on establishing the standard, but simply Istio by the gravity that it has pulls everything in.

Darin Pope 15:17
And you see this pattern always.

Viktor Farcic 15:18
Yeah,

Darin Pope 15:19
it's not always the best that wins.

Viktor Farcic 15:22
It's not always the best. And I really honestly, it's not only about being the best, it's more about many different criterias. One is, is this cool? Really, is this tool really good for me, but it's also how many people use it. How many people are working on it, and so on and so forth. And in that sense, Istio is more likely winner,

Darin Pope 15:41
just purely based on your word gravity.

Viktor Farcic 15:44
Yeah, Hey, its gravity bigger, you become faster, you attract other bodies, right? Kind of, and that's what's happening with Istio.

Darin Pope 15:54
So if people don't want to learn Kubernetes All right, let's flip it around. Let's say people do want to learn Kubernetes Where should they start today?

Viktor Farcic 16:02
If you're talking about people we say majority kind of like application developers. I don't think I honestly don't think that they want to learn Kubernetes simply because I cannot imagine anybody learning even basic level of Kubernetes without spending months of dedicated effort. I really don't see whomever tells you kind of like this is a one day course and you'll know what you need to know about Kubernetes is lying I think.

Darin Pope 16:29
it's a strong lie.

Viktor Farcic 16:29
It's a very very strong that one day course or something like that can can get you a base that will allow you to learn it faster. Yes. But to know what you need to know? No. It's not gonna happen. And kind of can you stop a company for months absolutely nobody doing anything? I mean most companies I visit, they have a trouble actually to dedicate a full day on something. Months for everybody? It's not gonna happen.

Darin Pope 16:59
but then that angle is okay, well, let's just outsource it. And the problem is they don't necessarily outsource to the best. It's like, Oh, I have an IT company in here. Let's they take care of my IT. They're going to do it versus a good managed service provider that's their day job.

Viktor Farcic 17:12
But now this is the part missing. What I really want in. The important requirement for everything I said so far is that I want teams in charge of an application to be empowered to do stuff, including deployments. Outsourcing is the outsourcing it no matter if we start no matter what are the good sides and bad sides are not getting me closer of empowering the team, a team to be in charge of an application or more, right? So we need either simplification or time. One of the two things and I don't see time is happening anytime soon.

Darin Pope 17:48
It's interesting you said simplification and time

Viktor Farcic 17:50
or time

Darin Pope 17:51
or time? Yeah. But you didn't throw money in there. Which is interesting, because you could throw money. You could throw money at things but then that doesn't necessarily mean that your development teams because at the end of the day, we're all at least from an operations perspective, we're all cost centers. It's rare that we actually bring revenue to the bottom line.

Viktor Farcic 18:12
Yeah.

Darin Pope 18:13
Unless we're a managed service provider, but even then that's questionable. And going down outsourcing. Well, if I'm using AWS, I am outsourcing. But AWS still doesn't have that level of abstraction today, to where I can't just use it as a service. So I still have to build something on top of it in order for it to work.

Viktor Farcic 18:29
Exactly. I mean, you can say Lambda is the idea behind Lambda, but I think that Lambda is ridiculous. So we're going to pass it.

Darin Pope 18:37
We'll talk about that later. I think we have different opinions on that. That could be interesting.

Viktor Farcic 18:42
Yeah, maybe.

Darin Pope 18:44
I don't know we outsourced and we're talking about. So it's like because your proposal was outsourcing still doesn't solve the problem.

Viktor Farcic 18:52
Yeah, the problem is empowering teams to be in charge of their applications. And outsourcing is simply not doing it. I don't really care whether outsourcing in my head outsourcing can be a different country, different company can be different departments within a company can be many, many different things but I don't want I don't think that that's the direction that anybody wants to go.

Darin Pope 19:14
So what? Let me see if I can think of it this way. I want to go open up a ServiceNow ticket. No, we're not sponsored by ServiceNow. But open up ServiceNow ticket. I say I want my app. I want three of them running. I need this version. Go.

Viktor Farcic 19:31
Yeah, but I want without ServiceNow ticket. I want kind of like this is my app. I'm not supposed to open a ticket for something to happen with my property. I own this application. I want to be able to deploy it. All I'm asking for is something that I can learn within a reasonable amount of time. What I need really for that application. The same thing like we are not entering now into, like, if you're using Amazon or Azure or Google, you're not entering into virtualization and how it works and all that stuff. You don't really need to know those things. You need to know that you need a VM, a server, you don't even need to know whether it's hard the barebone or virtual machine. I just want, I want the server with this amount of RAM and memory. And that's all I'm supposed to tell my cloud provider.

Darin Pope 20:30
Well, that's that is, ignoring our differences on Lambda, that is what Lambda is.

Viktor Farcic 20:34
exactly, exactly.

Darin Pope 20:35
Here's my function, I need this much memory. this much CPU. Have a nice day,

Viktor Farcic 20:38
I want Lambda on top of Kubernetes and without real restrictions, other than you need to have a container image. Don't ask me how long it will run or whether it's five lines or 5000 lines. This is my application.

Darin Pope 20:52
So you're saying the Lambda, I'm going to use the word interface right now, is okay, except I don't want to be a function. I just want to give it an image.

Viktor Farcic 20:58
Yeah, exactly. I didn't want a limitation based on being a function or anything like that. It's my application. So you're not telling me what we can have a long discussion how much we should rewrite application or no, but ultimately, it's my application, it needs to run, go. So I want Lambda without being a function.

Darin Pope 21:16
Which is what Heroku and other companies have had in the past.

Viktor Farcic 21:20
Yeah. But you know, kind of, I think that if Heroku appeared today, it would be successful. And assuming that it would be based on new technologies like Kubernetes, whatever. I just think that Heroku came too early, like many other companies. That's the real problem with Heroku,

Darin Pope 21:36
but they're backed by a really big company.

Viktor Farcic 21:38
Yes, they are. But also a company that does not really

Darin Pope 21:45
That's not their core business. That's not their core business.

Viktor Farcic 21:48
Yeah, exactly. It's not their core business. And it's not the most liked company in the world among engineers.

Darin Pope 21:54
Well, depending on which engineer you talk to, every company's hated.

Viktor Farcic 21:58
Yeah.

Darin Pope 21:59
If nobody really cares about Kubernetes enough to learn it, should they go to McDonald's and get a job?

Viktor Farcic 22:05
Now, I mean, there is still so for what Kubernetes does and assuming that you need at least a fraction of that power because some companies don't, learning Kubernetes is still easier than trying to figure out all that outside Kubernetes. So if you have to learn it, it's better to learn Kubernetes than to figure out how to do all that stuff outside it. I'm just saying that is still too complicated for non sysadmins.

Darin Pope 22:33
So we want a easier, simpler, OpenFaaS, Lambda like, layer on top of Kubernetes to actually run well, and this is sort of what Jenkins X is as well, right is Jenkins X is that layer of abstraction to do certain things in a certain way.

Viktor Farcic 22:49
Yes, that's that's the goal. We're trying now, of course with some things you are more successful with others less but we are trying to simplify that flow, but I don't think that Jenkins X alone is never going to be the solution. It needs to follow with a few other things. So I don't think that Jenkins X pretends to be that thing alone,

Darin Pope 23:11
Jenkins X is not OpenFaaS at all. They're solving two different problems.

Viktor Farcic 23:17
It's more like opinionated way to do things. So when like, and that might easily change today we say you want servless and simplification, use Knative. It's still not where I would like it to be, but that's kind of our bet. That's the closest one to that.

Darin Pope 23:33
And we really should wrap because you gotta grab some lunch before they take it away.

Viktor Farcic 23:35
I'm fine. No worries.

Darin Pope 23:37
Yeah, but we're supposed to be in a meeting too.

Viktor Farcic 23:39
okay.

Darin Pope 23:40
That's a different reason. Yeah. Alright. So if you're listening via Apple Podcast today, please go ahead and subscribe, leave a rating and review. All of our contact information including Twitter and LinkedIn can be found at https://www.devopsparadox.com/contact. And if you'd like to be notified by email when a new episode is released, you can sign up at https://www.devopsparadox.com/ Signup form is at the top of every page. There are links to the Slack workspace very important place because we also send notifications about the podcast. If you want to talk directly to Viktor or me, we're in there. So you can get in the Slack. We also the Voxer account will leave us a message. And there's also a link, how to leave a review. If you're not sure how to do that. All in the description of the episode below. There's also a link off to the transcript, I'm starting to get some good feedback about the transcripts such as it is but you know. Just to let everybody know, so I'm going to whine a little bit since I have the microphone and you don't. Well you have microphone, but people listening don't have a microphone. So basically for every minute of audio there is, it takes about six minutes to post-produce it, including transcripts. So 30 minutes takes me about three hours to post-produce. So this is the reason why we don't have really long episodes.

Viktor Farcic 24:48
Yeah

Darin Pope 24:48
this is also the reason why we don't have really long in the classes really long videos because it number one, it's easier to consume smaller. Number two, if you're still listening to us and you're on the treadmill at the gym, that's Good, you're almost at 30 minutes, so then you can get off. But then that's it.

Viktor Farcic 25:04
and I must say that probably my accent does not help much.

Darin Pope 25:08
So and again in in, again, we're not sponsored by it, but we use https://otter.ai/ and because we've been feeding it so much content, it's actually getting pretty good. I mean, there's still some days, like, there's a couple words that I know they're going to happen today that I want, I'm going to write them down. So don't forget them because you use the word trouble one time. And I know it's like, it's gonna say something very, very strange. But that's okay, I can figure it out. But that's what it is. Alright, so anything else about learning Kubernetes?

Viktor Farcic 25:37
I mean, if you can, if you can make somebody else do it for you until the real solution comes great. If not, if you have no other options then learn it. Don't learn how to do stuff outside of Kubernetes. That's definitely a waste of time.

Darin Pope 25:52
Yes. And with that will end it. Thanks again for listening to episode number 45 of DevOps Paradox.