DEV Community

Mike Pfeiffer for CloudSkills.io

Posted on • Originally published at cloudskills.io

Learn Kubernetes in a Month of Lunches

In this episode I catch up with Elton Stoneman about his new book: Learn Kubernetes in a Month of Lunches.

Elton Stoneman is a 10-time Microsoft MVP and a Docker Captain. After several years working for Docker, Elton now offers consulting services for organizations at every stage in their container journey. He is a regular speaker and workshop instructor at conferences and the author of Learn Docker in a Month of Lunches.

Elton on Twitter
Elton’s Blog
Docker and Kubernetes for .NET Developers

Use code podcskill19 on Manning.com during checkout for 40% off all products in all formats.

Enter the giveaway to win a copy of Learn Kubernetes in a Month of Lunches.

Full Transcript

Mike Pfeiffer:
Thanks for tuning into another episode of CloudSkills.fm. As usual, really excited to have you guys with us, and I’m excited to have Elton Stoneman back on the podcast. Not really sure when this guy sleeps, but he’s working on another book and he’s back on the show. What’s up, Elton?

Elton Stoneman:
Hey. How are you doing, Mike? Glad to be back. Thanks for having me again.

Mike Pfeiffer:
Yeah, man. It’s awesome. So what’s been going on since you finished the last book Docker In A Month Of Lunches?

Elton Stoneman:
Yeah. Docker In A Month Of Lunches, it’s out right about now, so you can order it on Amazon. It’s shipping in a couple of weeks’ time. Since then, I’ve done a bunch of stuff, because I think the last time we spoke, I was still working for Docker. I’ve left Docker subsequently, yeah.

Mike Pfeiffer:
Oh, I didn’t even know that, man.

Elton Stoneman:
Yeah, yeah.

Mike Pfeiffer:
I had no idea.

Elton Stoneman:
Well, I was going to do this big blog post about how great the time was and what I’m moving on to, but when would I sleep if I did things like that?

Mike Pfeiffer:
That’s right.

Elton Stoneman:
I had a great time with Docker, and the last couple of years, I was working on the partnership team and we were doing a bunch of stuff, which is actually just coming to fruition now. I don’t know if you’ve seen DockerCon was a whole virtual event this year. One of the big announcements was this integration between the Docker command lines and Azure. So you can do your Docker container run or your Docker compose up and you point to an Azure subscription, and when it runs your containers, it runs them as your container [inaudible 00:01:18].

Mike Pfeiffer:
That’s really cool.

Elton Stoneman:
It’s super simple. We were working with Microsoft on that for a little while, while I was still at Docker, and that’s now available in BT. You can try that stuff out and literally today the blog post came out that they’ve done the same with AWS. They have this notion of a contact. I can create a contact, which is either my local machine running Docker, or it might be Azure, or it might be AWS, I switch between contacts, I run Docker run and then there’s my container. It’s either on my laptop or it’s in a managed platform in the cloud with zero overhead. So yeah, [crosstalk 00:01:51]

Mike Pfeiffer:
Interesting. That’s also in Docker desktop then as well?

Elton Stoneman:
Yeah, that’s right. It’s part of the command line. So the command line… [crosstalk 00:01:59] Yeah, yeah, exactly. Yes. It’s BT now, but it’s coming fast. That’s pretty good. So we were working on all that kind of stuff when I moved on and then I wanted to focus on the other stuff I was doing. Like you said, right at the beginning, it’s hard to balance everything. Although I loved the work at Docker, I wanted to do the other stuff as well. The training and the consulting and the getting out there into the field and helping people. I wanted to focus on that. I wanted to start another book, run a few more Pluralsight courses. I wanted to do more workshops. So yeah. I’ve gone independent and I’m doing that stuff myself.

Mike Pfeiffer:
Dude, that’s so awesome, man. Had no idea. Congratulations.

Elton Stoneman:
Thank you. It’s been good. It was the craziest year you could possibly decide on a big career change.

Mike Pfeiffer:
Yeah. I mean, you’ve got a lot of change going on right now, man, with social distancing and career changing and stuff. [crosstalk 00:02:45] That’s an awesome story, dude, because I know that there’s so many people listening that want that too. I know I did and it’s been everything to me because everybody’s got their own journey, but to be able to take your knowledge and then turn around and continue to extend your career and give back is just really cool, man. Congratulations.

Elton Stoneman:
Thanks. It’s kind of like coming full circle because when I first started in IT, which is like 20 years ago, I got into a job where we were working on like IBM mainframe systems. Just like old stuff. I very quickly learned that I needed to [inaudible 00:03:26] new stuff and get out of there. I spend my evenings back then reading other people’s books and finding out how other people were doing new stuff. Hopefully I’m going to be helping other people to do those things. Hopefully not people who are stuck on IBM mainframes.

Mike Pfeiffer:
Right? Yeah, exactly. It just something a little more modern. Right? Well, the world that you’re playing in is definitely getting all the attention. The containers, the orchestration. I know that you’re living in Kubernetes right now. Maybe you could talk about your latest project.

Elton Stoneman:
Absolutely. My new book is the sequel, so the Docker book, which just came out, the new one is Learning Kubernetes in a Month of Lunches. It’s the same format. It’s like 20 chapters. Notionally, you’re meant to read them lunch hour during the working week. Each chapter is super task focused. With the Docker book it was slightly different because I’d been speaking at conferences, going to workshops, going on client site, helping people learn about Docker, and the thing that I really found is that people tended to sort of jump in. You can go on stack overflow and you can get a Docker file and you can get up and running, but if you don’t go back to the basics and learn the principles about how all this stuff works, how images are built, how you push them around, how you can scale things up and down and have health checks and stuff, unless you go into the principles and learn it thoroughly, then you can get bitten at some point down the line. Probably when you go to production.

Elton Stoneman:
With Kubernetes it’s different because the Kubernetes is just so vast you’ve got to learn where to start. You need someone to guide you right from the beginning. What I wanted to do with this was the idea either you’ve got some Docker knowledge or maybe you’re using the containers a little bit, you want to find what all the Kubernetes stuff it’s about, and it just dives straight in. Chapter one is a few pages of background information and at the end of that we get you up and running with your Kubernetes TOSCA. Chapter two, straight away, what is a pod? What is all this stuff? What are all these layers that Kubernetes puts on top of a container? Why does it put them on top of a container and how does that help you?

Elton Stoneman:
It’s been an interesting book to write because there’s so much material I wanted to include. The how you do stuff, but also the why it’s important and where it’s going to get you. I think each chapter is about 30% longer than the Docker chapters. It’s been getting good feedback from the early access program, so hopefully people will find it useful too.

Mike Pfeiffer:
Interesting. So how many early access chapters are you at right now?

Elton Stoneman:
We’ve just published eight. So there’s eight so far. If folks aren’t aware, it’s published through Manning while you’re writing the book. Manning had this early access thing. You can buy a copy now, read all the chapters as I’m writing them and give feedback, which is super useful. It was really helpful with the Docker book. Then when it’s finished, I’m aiming to finish all the chapters in August, so you’ll get the digital copy in August, thereabouts, and then when the print copy comes out, which probably isn’t going to be till January, I wouldn’t think, January 21’, then you’ll get a copy. So yeah, eight chapters in meat right now, but I’m way ahead, so I’m working on chapter 16 today. It’s been quite intense. I’ve cleared everything else out. For July, my goal is to finish the book.

Mike Pfeiffer:
I don’t blame you, man. That’s a lot of work. At least, I don’t know, maybe you’ve gotten to… At least you don’t have to travel, right? To try to do this during this time. What I was going to ask you about the time it took to write a chapter, because I just know how dense the material is.

Elton Stoneman:
Yeah, yeah.

Mike Pfeiffer:
That’s going to be awesome, man. It’s cool that people can contribute because that’s a great way to go into the early access right now. Then look in and actually add suggestions that could go into the book and actually end up helping somebody. That’s an awesome opportunity.

Elton Stoneman:
It’s super. You don’t even have to buy it because all the stuff’s on GitHub. If you go to my GitHub, I’ll send you the links for the GitHub repos, there are PRs on there and issues, people raising the code of oppressions about the steps you take and that sort of stuff, so that’s great. It’s just the whole collaborative thing. The trouble is you sit at your desk and you asked me how long a chapter takes, I’m trying to do two chapters a week. Each chapter takes about three days. That’s like a day of planning the exercises and the path of the chapter, a day to write the first draft and then the day to try all the exercises on a different system, because I’m trying to support multiple Kubernetes implementations and then tidy everything up. That’s the kind of pace I’m working at. It’s nice to step back every now and then, read the feedback, go back and revisit stuff and tighten it up. It’s a super nice way to do it.

Mike Pfeiffer:
It makes sense to write the books that way, to incorporate the feedback, because it’s going to end up as a better quality product.

Elton Stoneman:
Exactly. Yeah.

Mike Pfeiffer:
It’s really interesting. Do you think that the Pluralsight stuff you’ve done in the past, all the course ware development experience you have, helps you be a better book writer?

Elton Stoneman:
Definitely. That Pluralsight stuff is really about the journey, which kind of sounds kind of hokey, but that the idea of… I’ve got a whole bunch of stuff that I want to communicate to you, but actually if I just list all the facets of the API, you’re not going to walk away with any learning from that stuff. Almost all of my Pluralsight courses have been real world experience. This is how you actually do stuff with this technology. I’ve done a few more this year, so I did one on Istio, I’ve done one on Prometheus, and they’re all kind of… That tightening up the storyline has really come into to the book writing because every single paragraph, I think what is the takeaway for this paragraph? I’ve got an exercise that you’ve just done, I’ve got one or two sentences maybe to make sure you’ve got the key takeaways, and then we’re talking about the next thing and we’re introducing the next exercise. So it’s got to be…

Elton Stoneman:
And then we’re talking about the next thing and we’re introducing the next exercise. So it’s got to be tight, but it’s got to be entertaining as well. I’m not saying these are particularly funny books, because the material doesn’t lend itself, but there’s a few odd comments in there that people pick up on and makes them laugh. So yeah, it’s really, definitely has helped with that.

Mike Pfeiffer:
That’s good. Well, that, format’s a good way to learn, because it chunks it out. And I think one of the intimidating parts about Kubernetes, it’s so big, but if you actually just chunk it out over a month, one day at a time, it becomes a little bit easier to ingest all the data, right?

Elton Stoneman:
Yeah. I think that’s absolutely right. And even though it is a vast area, it does lend itself to being broken down like that. You have to put a little bit more thought into how you structure it, because I want to be authentic. I don’t want to start in the chapter right at the beginning and say, now we’re going to run, do this command and then all this stuff will happen. But you’re never going to do that in reality. Well, if you’re never going to do it, there’s not much point showing you about stuff.

Elton Stoneman:
So I think the very first command, I just do it like a queue packet command, which is the command line interface if people aren’t familiar. But from there on in it’s all yaml files, it’s all the language that Kubernetes uses to model your application. Straight into that stuff and trying to try to kind of chunk it up but stay authentic, and then gradually introduce more things layer it on.

Mike Pfeiffer:
Yeah. I like that approach. Keep it practical and real world, that’s important. And so are you targeting any clusters in the cloud, like AWS Azure stuff? Or are you just like having the person build their own cluster, or how are you navigating that?

Elton Stoneman:
So I try at the beginning to say we’re not going to cover building your own cluster. I think, I think I’m planning to do that in chapter 17. So by then we’ve covered a lot of the stuff. Because I think the reality of this is, a lot of people who are going to be interested in Kubernetes, you don’t need to know the architecture of the master and the nodes and the queue.

Elton Stoneman:
I think I’m, well, 16 chapters in about 70,000 words in, I’ve not used the word Kubelet at all because you don’t really need to know that unless you dig deeper. So chapter one, setting up your live environment. I show you how to do that in Docker Desktop, which is just super easy. There’s, there’s a project called Kind Kubernetes in Docker, which is another super-fast way to get up and running with Docker.

Elton Stoneman:
And then I say, “Look, run this demand in AKS. Run this command as your Kubernetes service. And run this demand to be up and running in AWS in their elastic Kubernetes service.” And then in theory, if you want to use Google, or Minikube, or some other alternative, then most of the examples should work.

Elton Stoneman:
But Kubernetes is the collection of parts. And in each distro, really, can bring in different parts to that. So I’m not trying to support everything, but I do run all my examples on Docker Desktop, Kind, and AKS, and just kind of prove that everything works.

Elton Stoneman:
And then we’re not really going to dig into the nitty gritty until the final part of the book, which is called Pure and Applied Kubernetes, when we start looking at how everything is put together. And that’s really, you understand how all this stuff works, you understand how to bring your apps to Kubernetes, how you model them, the features it gives you, and now we’ll take a step back and look at the pieces.

Mike Pfeiffer:
I would bet that there’s tons of infrastructure people listening, and they’re probably people that haven’t done a ton of containers yet. They’re still maybe babysitting servers at their work and are waiting for their organization to catch up with everybody else, or at least modern technology. If I’m a server admin type, not so much a developer, but I can read the writing on the wall that I should probably start paying attention. Should I just like jump into your first book on Docker in a Month of Lunches and then proceed into this one? Or do I need to build some awareness around application architecture and what devs are doing? What do you think about that?

Elton Stoneman:
That’s a good one. That’s a good question. So I mean, I would love people to buy both books. But I think certainly the Docker book is, is aimed at a generic persona. It’s not for devs, there is some source code in there but you don’t need to edit any sort of script, yourself. It’s not just for ops either because some of the… All that stuff is blurry. I mean, we know how the lines are blurring now. And I think ops people who may or may not in the past have owned the build server, but not necessarily know what’s happening inside that. Well, if your build server is your Docker file, then that comes more into your angle.

Elton Stoneman:
On the other side if you’re a dev person, you’ve never really had any involvement with networking or security, well, that becomes a lot more important in the container world. And what’s running in production, you can run on your dev machine. Both angles are kind of combining there. So certainly with the Docker book, I’ve tried to say, if you’ve had some experience in I.T., whether that’s architecture, operations, or dev, then you can, you can pick this stuff up.

Elton Stoneman:
Kubernetes is different because I’m kind of expecting you to have had container experience. So either to have read the Docker book or be comfortable with containers. Whatever angle you come from, really, I don’t talk about the architecture and the infrastructure of the Kubernetes components until way down the line, because I think it’s more important to get experienced with this stuff.

Elton Stoneman:
So yeah, it doesn’t have that kind of prerequisite knowledge of where you are. I think the interesting thing is if you are from more of that infrastructure background, you’re going to want to know how the pieces fit together. But the reality is that the big draw of Kubernetes is that it’s a managed service. It’s a complicated product to manage yourself.

Elton Stoneman:
So ideally you’re going to be spinning up your cluster in Azure, or your multiple clusters in Azure. Or if you’re going to do it on premise, you’re going to pay for a product. You’re going to pay for a managed product to look after all that stuff for you. So the under the cover stuff is just kind of nice to have, to a certain degree.

Elton Stoneman:
So, I think the big jumping in point is understanding what it can do. What kinds of application does it run? It has all these abstractions that it brings to the compute layer, and the networking layer, and the security layer, and understanding how they fit together is more important than understanding, the IP tables rules of where the networking stuff goes.

Mike Pfeiffer:
Yeah. It’s a really interesting time, man, because this stuff’s so new for so many people. So I think that these resources you’re talking about are going to be interesting. I also was interested in what you said earlier. I didn’t realize you had an Istio course out that’s… Service mesh as obviously a big part of this whole conversation, once you get past the entry level conversation. And so, would you consider that piece of content, like maybe the third thing to go off and consume after this?

Elton Stoneman:
I don’t know. I think that there is this kind of journey that people go on. You know, I start with containers, and even if I don’t even have a cluster and I’ve just got a VM with Docker installed and I run my apps in containers, that’s still a big benefit. I’ve got this consistent approach to building and running all my apps. I don’t have high availability. So the next stage is a cluster.

Elton Stoneman:
Well maybe I’m going to use Docker Swarm, which is nice and simple, but it doesn’t really have that managed offering anymore. So then I’m going to look into Kubernetes, there’s a gap there that requires an investment in learning.

Elton Stoneman:
And then when you’ve got the Kubernetes stuff, Kubernetes is so plugable, it’s such an extensible product that all this other stuff fits in really neatly, which is where this service mesh idea comes in, which is that things like Istio and Linker D, they take away the networking layer between your application and make that into a separate entity that you can configure and control independently.

Elton Stoneman:
So your apps think they’re talking to each other, your containers think, your web container thinks is talking to the API container, but actually it’s being routed through this proxy, which has all managed for you by your service mesh. And that can do really cool stuff like network retries, transparent to the application. It can apply mutual TLS to secure the communication between components. It can enforce rules so that only the web app can talk to the API, or whatever. You can do a whole bunch of stuff with that. That course I did back in, back in January, I think it’s quite extensive, because I was working with Istio a lot. It had this buzz a couple of years ago and then gradually as it matured and more and more people were using it, you could see that it was a product that’s really, really solid.

Elton Stoneman:
So there’s a lot of interest in that. And I was using it, talking to clients about what it could do. A lot of the problems that solves, people were trying to do themselves. I’ve got my kind of homegrown TLS certificate provisioning between all my components. I’ve got my homegrown network policy that I apply, which works if the Kubernetes cluster is set up in a certain way. And then Istio came along and said, “Look, we’ll do all this stuff for you.”

Elton Stoneman:
Yes, there’s another level of complexity on top, but you get an awful lot from that. So I did a talk at a couple of conferences now, this must’ve been 2018, about Istio. And the purpose of that talk was to show you what it could do and to tell you that there’s a lot of cost in using this software, because it’s a complicated product. And if you take all the things that Istio can do, like the security, the network routing, the retries.

Elton Stoneman:
Like the security, the network routing, the retries and all that sort of stuff. If you take that and leave Istio to do it, so you don’t put any of that concern in your applications, and then when you go to production and you find that Istio adds too much overhead, because it can do. It uses a lot of CPU cycles because every network hop is potentially going through some sort of compute path.

Elton Stoneman:
If you decide that you don’t want to go with it and you back out of Istio, you’ve got to go and write a whole bunch of code that you depended on Istio for. So I did that talk a lot and I thought the talk was about telling people, “Be wary of Istio.” But almost all the feedback I got was, “That’s great. I’m going to try it.” So I really kind of dug into that a bit more in that [inaudible 00:18:40] course.

Elton Stoneman:
And I talk, I think that’s like the whole final module is about evaluating it and whether, understanding what you’re taking on board.

Mike Pfeiffer:
That makes sense. Yeah. I mean it’s, because you could get yourself into a lot of trouble going down that road, not understanding all the impact and?

Elton Stoneman:
Yeah. And it’s the next stage beyond Kubernetes, which is this really interesting point you made earlier that there’s a lot of people left behind. There’s a lot of people who are doing this modern stuff. I don’t know where the ratios are, but depending on which side you’re at, this stuff is either fantastic or it’s just impossibly complicated.

Elton Stoneman:
I did a little consulting gig for a client, they had a very small dev team. They had a, like an on premise software suite that they wanted to make into a SaaS offering. So we did some initial scope down and it was a Windows app and we looked at running it in Azure, in Kubernetes, and all that sort of stuff. And I was really engaged for, just for a short amount of time, to scope out what it could look like, to do a POC, and then to plan on what the roadmap to production would look like. So they get a bigger team in to take that stuff on.

Elton Stoneman:
And even though it was like a 15 year old windows application and everything just went swimmingly well. We had it running in a container in Docker within a couple of hours. We had it running in Kubernetes a few hours later. And then we built this little shim around it to distribute all the work around. It all went brilliantly well.

Elton Stoneman:
And then the handover from me to the wider team was really, here’s the GitHub repo. There’s a Read Me doc in there which links off to all the Kubernetes YAML files and all the Docker files. And if you know that stuff, then you’re good to go. You can start, you can be up and running in no time at all. Because it’s literally out of the box Kubernetes stuff and Docker stuff.

Elton Stoneman:
And if you don’t know that stuff, you don’t even know where to start. You couldn’t even possibly find out where to begin with this stuff. So depending on where you are, it’s either brilliant, or it’s just, the entry barrier is just too high. So hopefully the resources we’re talking about are going to help people get over that.

Mike Pfeiffer:
Absolutely. I believe they will, but you’re right. That’s an interesting point because it is kind of polarizing. It’s like super advanced and then like, holy crap, we got to figure this thing out. What is, in your experience of teaching and doing all this stuff, speaking at all these events, what do you think is probably one of the toughest concepts in the Kubernetes world for people to grasp? Is there a common thing you see over and over?

Elton Stoneman:
The most common thing that I see is, how much of this do I need to know? If I’m a, depending on whatever background.

Mike Pfeiffer:
[crosstalk 00:21:02].

Mike Pfeiffer:
That’s a deep question.

Elton Stoneman:
Yeah.

Mike Pfeiffer:
Because that’s a, could really change everything, right?

Elton Stoneman:
Yeah, exactly. How much? What’s the bare minimum that I need to learn? So I did a couple of, when all the lock down happened and everyone was doing virtual sessions, I did a couple of Kubernetes 101 sessions. And I cover the basics. I do the first five minutes about Docker and how containers work.

Elton Stoneman:
And then very quickly we’re on, cover the kind of, what I think is the bare minimum, which is pods, which are the things that run your containers, deployments, which is an abstraction on top of that, that lets you have neat rolling upgrades and stuff. Services, which is the network layer abstraction and then config maps and secrets, which are how you configure applications to run in different environments. And that’s the bare minimum.

Elton Stoneman:
And even that, you try and cover that in 90 minutes for a new audience, half of them are going to be scratching their heads, unfortunately. Or you do such a light skim that you don’t really cover it. So the thing is, is that if you don’t cover any, if you miss out some of those pieces, you haven’t done a good enough job because if you don’t talk about configuration, then people don’t understand how you move from one environment to the next.

Elton Stoneman:
And then people start putting their configuration settings into their container images, so I have one image for test and one [inaudible 00:04:18] production and that’s wrong, in various levels that would take too much time to explain. So you say, “This is how it works.” But you’ve got to start with some of those kind of best practices baked in. Yeah, that’s the hardest question. Another question that people, a step before that is, “Do I need to learn this stuff?”

Mike Pfeiffer:
Yeah.

Elton Stoneman:
The persona that you said there. “I’m an ops person. I’m living in the hardware, at the moment, do I need to learn this? Is it going to be?” Because this isn’t simple, this isn’t, I’m just going to read a couple of blog posts and I’m good to go. This is, I need to invest some time, work through a whole bunch of stuff, probably outside of my working hours to get ahead of, to get to the point where I’m comfortable even evaluating it. Is it worth me making that investment?

Elton Stoneman:
But I’ve been having that conversation for five years now and Kubernetes and Docker have just got more and more popular. So I’m obviously biased, but my answer is, yeah, I think it is worth that investment. I think this is the way it’s going to go. Kubernetes brings something that people have wanted ever since AWS landed, which this idea that I want to be able to model my application to run in the cloud. And it to be any cloud. Not to be, I don’t want to have to do a project to move from AWS to as Azure, or vice versa.

Elton Stoneman:
And Kubernetes literally gives you that, you model your applications in these hundreds and hundreds of lines of YAML, but the payback for that complexity is that I get a better deal on Azure, and I literally create a new cluster and deploy the same stuff.

Mike Pfeiffer:
Yeah. I agree with that a hundred percent because there is that aspect of this being so hot right now that it’s popping up on, like US Air Force is putting Kubernetes on jets and stuff. That’s how big it is. It’s everywhere.

Mike Pfeiffer:
And with the whole IOT story, who knows where we’ll see Kubernetes running on these devices at some point? It’s legit, it’s a safe bet. And I’ve done that a lot in my career and I know that you have too, where you’re looking at a technology and you’re like, you bet on it. You put your energy into it and then.

Elton Stoneman:
Yeah.

Mike Pfeiffer:
And I’ve had ones that didn’t really play out and I’ve had other ones that really took off for me. I feel like this one’s obviously a clearer, safe bet. Especially if you look at the job postings that are out there.

Mike Pfeiffer:
But I also respect the fact that there may be an admin sitting somewhere. Maybe it’s a government sector job where they move so slow that you’re still going to be working on Windows servers for the next five years and you know that right now. Then, that, maybe you’re like, okay, do I not learn this because I don’t need to? Because I think there is people that don’t need to know it probably if they’re planning on staying at that job forever.

Mike Pfeiffer:
So it’s a, that consideration and understanding your variables and your circumstances really makes a lot of sense.

Elton Stoneman:
Yeah, definitely. Definitely. Yeah. And I think there’s another side to it as well, which is how interested are you, in interesting new stuff? Because when I first started, when I was at, a trainee programmer, I was working with people who are, I guess the same age I am now. And they really weren’t interested in picking up new stuff.

Elton Stoneman:
I know my area, I do it well. And then I go home to my family. And then that was their job. They just wanted to carry on doing the same thing. I think if you, that’s fine, but sooner or later you’re going to run out of runway. Because the stuff you’re interested in, fewer and fewer people are doing because people have moved on. But if you’re interested in the technology and how this stuff kind of fits together and how the world’s evolving, and I think it’s interesting to learn anyway. Even if you’re not planning on putting it into practice anytime soon, because it is the evolution from metal to VMs to containers.

Elton Stoneman:
That’s just the way it is now. There isn’t going to be going back to VMs. If people are going have a different runtime model, it will still use the same concepts of a container. If someone comes up with a better way of running applications, they’ll probably have to run container images, whatever the underlying platform is. Because everything does that now.

Elton Stoneman:
So if you, in the Kubernetes community there’s a lot of talk about what’s going to be happening in the future. You won’t really care about the cluster. Hopefully. You’ll just throw your application manifest to something and it will run and you won’t care about what’s happening under the covers. And if the application modeling language is flexible enough for that then it just makes life much easier for everybody.

Elton Stoneman:
But until we get there, this stuff is actually, it’s really fun. It’s complicated, but it’s complicated because it’s so powerful and it’s intricate. And if you’re into all that stuff, then it’s good fun to dig into anyway.

Mike Pfeiffer:
I agree. I love what you said too about being, really focusing on the fact of it being interesting to you or not, because there’s a big difference between being pushed to do something and being pulled towards it.

Elton Stoneman:
Yeah.

Mike Pfeiffer:
That’s the huge difference. And the other thing I wanted to ask you too, is if I’m not a hardcore developer, what kind of apps am I going to be deploying when I’m following along with your book? Because I’m already trying to understand Kubernetes.

Mike Pfeiffer:
…ploying when I’m following along with your book because I’m already trying to understand Kubernetes. Do I have to worry about the app stuff?

Elton Stoneman:
No, no. So all the Kubernetes stuff. So Kubernetes just runs container images for your applications. Every single app that is already prepackaged is all up on top. It’s the same with Docker Hub. A couple of a couple of the chapters are about how you package your own applications, but every example is already up on Docker Hub. So you can just pull it and run with it. And same with the Kubernetes, [inaudible 00:27:29] tried to be fairly cosmopolitan. So my background is almost all .NET, a bit of Node.js. But for the examples in the book, the patterns are the same, like how you deploy your app and configure it, but actually the details are quite different for different platforms. So what does a configuration file look like in .NET is different from .NET Core is different from Java is different from Notes.

Elton Stoneman:
So most of the examples, where they’re different for different platforms, I’ve got different examples. So there’s one application that I do. NASA have this API, which gives you a link to, it’s called the Astronomy Picture of the Day API. And I’ve got an application which kind of wraps that up. So there’s an API which just caches the thing from NASA. That’s a Java component. There’s a website that shows you the picture, which is written in Go. And there’s a login component that audits people were using it, which is Node.js. And then there’s a whole bunch of .NET stuff in there as well.

Elton Stoneman:
So you don’t need to care really about that because everything’s packaged for you that you don’t have to build anything. There is a chapter about the developer workflow, but even that’s not just for developers because that tries to cover everything from, I’m a developer running my own Kubernetes cluster on my laptop through to actually where, as a team, as a product team, we’re trying to avoid running containers ourselves. The developers just run the code. And when they push it to get, this whole thing happens in Kubernetes that packages it and deploys it to the test environment. So I do walk through that, but there is no go into this C# file and change this line. There’s none of that.

Mike Pfeiffer:
Yeah. Because I know there’s people out there who are wondering that. Right? So that’s good though because now you can just focus. Yeah.

Elton Stoneman:
Yeah, yeah. Absolutely. The source code is there. So all the app source code is on GitHub, but it’s all prebuilt, so you don’t need to do anything.

Mike Pfeiffer:
Awesome. One of the things you mentioned there that you see popping up a lot now, and especially in the job boards, is Go. You’re looking at DevOps posts. There’s tons of Kubernetes and Docker, and they’re looking for people that know the Go programming language, which is insanely awesome. But I think especially a lot of the people we know in the Microsoft space, the .NET world, that’s probably a huge departure. Right? Have you been messing around with Go and what are your thoughts?

Elton Stoneman:
Yeah, I’ve been messing around for years. It’s become the next language that I want to learn properly, but it’s been the next language I want to learn probably first since I was 15 or something. Yeah. It’s a really nice language. And one of the good things about it is it’s quite simple to read, but if you’re looking at an example, if you’re from a Java background or a .NET background, actually the clarity of the language is such that you can kind of skim through it and work out what it’s doing. Writing it is different obviously, but the big advantage of Go is firstly, this is what all this kind of [inaudible 00:30:17] written in. So Dock is written in Go, Kubernetes is written in Go, most of the examples, but for all the extension points that you can build your own stuff in, they tend to be go first and foremost. But then Go is this very lightweight cross platform language that compiles down to native binaries.

Elton Stoneman:
So on my Windows 10 laptop, I can take my Go application and I can package it up to run a Linux binary built for a Raspberry Pi. And then, if I wanted, I could then wrap that in a Docker image built for Raspberry Pi and distribute it. And that “Hello, World!” Application is probably, it’s not as small as it used to be. Like in the old days, it might be a few megabytes. Now the binary contains the Go framework with it.

Elton Stoneman:
So it’s not like. NET Core or Java where you have to install the runtime. I have to install .NET and then I can run the .NET app. Install Java, and I can run a Java app. Go packages the whole thing into a single binary so you don’t need anything else. So it’s super lightweight. It’s super portable. It’s quite nice to read. Actually, a lot of people who have gone from that, I’m historically an ops person, but I’m having to learn more of the dev side, really take to Go. They really like go. So it’s a simple but expressive language. But I’m far from the expert, which I would like to be one day.

Mike Pfeiffer:
Yeah, same here. I haven’t done a whole lot with it, but I think Terraform is written in Go as well, right? So I think if somebody’s looking for a language maybe to double down on, this could give you some nice… because you could contribute to Kubernetes if you know Go, you could contribute to the Terraform if you’re doing Go. But yeah, that’s awesome, man.

Mike Pfeiffer:
So as we’re kind of wrapping up this episode, where do you think we should send people? We know we got to send them over to the early access program and stuff to check out the current chapters for Kubernetes and [inaudible 00:05:08], but where else should we send people?

Elton Stoneman:
So if you’re new to all this stuff, actually, the latest releases of Docker, Docker Desktop have this. When you install it, it pops up this little welcome message and it walks you through a kind of five stage journey… your first application in a container. So if you’ve never done any of this at all, the new installations of Docker Desktop, and that’s part of the works on Windows 10 or Mac, guide you through some of that stuff.

Elton Stoneman:
I think last time I spoke to you I was just kind of updating my workshop content. I’ve only done it remotely this year, but I do this whole day workshop. It’s aimed at .NET people or . NET administrators or developers. And it takes them on that whole Docker and Kubernetes thing. I’ve evolved all that now. So there’s a ton of stuff there.

Elton Stoneman:
So that’s DAK for .NET, Docker and Kubernetes [inaudible 00:32:59]. All you need for that is Docker Desktop running on Windows 10, and it literally takes you from, I know nothing about this through to, okay, I think I could model my own application and get it running in [inaudible 00:33:11] or whatever. So that’s a pretty good one. And then actually the docs around this, particularly Kubernetes, the Kubernetes website, it’s just got better and better. There are two documentation websites. There’s the kind of hard core API documentation that tells you what all the bits and pieces mean in your [inaudible 00:33:26] files. That’s excellent. And then the Kubernetes website just tells you… there’s some really nice walkthroughs, there’s pointers [inaudible 00:33:35] online playgrounds where you can go in and try stuff out. So yeah, the official stuff is really good, really good resources.

Mike Pfeiffer:
Yeah. I’d have to agree with that, man. The Kubernetes documentation is really good. I forgot about your DAK for .NET. So that’s cool. I’ll put that in the show notes with everything else that you mentioned. But Elton Stoneman, the legend. Thanks so much for coming on the show and congratulations again, man. It’s really awesome what you’re doing. So keep it up.

Elton Stoneman:
Yeah. Thanks. Appreciate it. Thanks for having me again and yeah, hopefully this same time next year, whatever the third book in the trilogy turns out to be.

Top comments (0)