Episode 053: Learn Docker in a Month of Lunches

Mike Pfeiffer on December, 11, 2019

In this episode I catch up with fellow Microsoft MVP Elton Stoneman to discuss his new book “Learn Docker in a Month of Lunches” from Manning Publications.

Manning Publications has given us free copies of Elton’s new book Learn Docker in a Month of Lunches to giveaway as part of a contest.

Enter to win a copy here: https://bit.ly/DockerLunch

Don’t forget to subscribe to our mailing list at cloudskills.io/subscribe for weekly updates, exclusive training, and advice on how to amplify your career.

Full Transcript:

Mike Pfeiffer:
Hey, what’s up, everybody. It’s Mike Pfeiffer. Welcome back to another LinkedIn livestream. In this episode, I’m with Elton Stoneman, fellow Microsoft MVP and Pluralsight author. Elton, what’s up, man?

Elton Stoneman:
Hey, how are you doing? Thanks for having me. Good to be here.

Mike Pfeiffer:
Good to have you. We’ve got a bunch of people in the livestream, so appreciate everybody being here. Just want to say hey to [Aman 00:00:34], and [Yan 00:00:35], [Parth 00:00:36]. What’s going on? Good to see everybody here. I’ll be watching the chat for you guys to make sure we get your quIstions answered. And also, if you could just let us know in the comments, like if the audio’s working all right, and all that kind of stuff.

Mike Pfeiffer:
So, Elton, tell us a little bit about what you’re working on these days at Docker? It’s interesting time for containers, right?

Elton Stoneman:
Yeah, absolutely. It’s been interesting ever since I joined Docker, and before, in fact. And so, I work, I’m an architect on our partnership team. So I work with some of our bigger customers and bigger partners, like Microsoft, and ARM, who designed the chips, and GitHub. And part of my role, I’m technical, so I’m looking at the products we’ve got coming, the features that are coming down the line, and what features coming down the line with our partners and seeing that how the two things work really nicely together and building out the stories that kind of make people’s lives easier.

Elton Stoneman:
So we have this great new thing in Docker Desktop which is Templates. The idea is that I can write a template, which generates like a sample application on my machine, right? So it sounds pretty simple, but it can generate anything. So I’ve been working with demos that, as part of that template, it generates the GitHub Action. So when I push that thing to my GitHub repo, it connects to Azure, it spins up an AKS cluster, it spins up an Azure SQL Database, it deploys my application, like all from one push. So, yeah, super powerful.

Mike Pfeiffer:
That’s really cool, man. Wow. I didn’t even realize that that was a thing.

Elton Stoneman:
Yeah, it’s pretty, it’s pretty strong stuff, yeah.

Mike Pfeiffer:
Yeah, so it’s like kind of, it kind of sounds like Infrastructure as code, in a way, right? Kind of like an Infrastructure as code solution.

Elton Stoneman:
Yeah. Yeah, absolutely. But if you imagine this template, if I’m a template author, I can have several components, it’s showing the UI I can collect parameters. And then each of those components, what actually happens, runs its own container. So, I can do anything. Like, I can generate files that live on the user’s machine, and that’s how I get my source code for my sample out, but also I can connect to anything and give anything that I need. So, yeah.

Mike Pfeiffer:
Cool, man. So, everybody in the comments said the audio is good, so appreciate that. Thanks, Gregor. Good to see you [Kuram 00:02:30], [Karupa 00:02:31] from Mangalore Infosys, welcome. Thanks for joining us. So, folks, go ahead and add your quIstions into the comments. And, like I said, we’re going to be taking your quIstions, but mainly, the big topic this week is Elton’s got a new book coming out, and you guys might have seen the Month of Lunches series from Manning. They do… and I think Don Jones actually kicked that off, right? He did the first [crosstalk 00:02:52].

Elton Stoneman:
Yeah, he did.

Mike Pfeiffer:
PowerShell Month of Lunches. There’s other ones, but now you’re doing one on Docker Month of Lunches. Maybe you can talk about that and how that’s going for you so far.

Elton Stoneman:
Yeah, absolutely. I mean, it’s a, so the series, the concept of the series is really easy. So, it’s 20-odd chapters. Each chapter should take you about an hour to read. There’s lots of exercises. It’s very hands-on. There’s a lab at the end of each chapter to make sure you kind of got the knowledge in there. The idea being that you can read the chapter in your lunchtime and at the end of a month, you’ve kind of got a good enough handle on the subject to go further and start using it. Which is really well-suited to Docker because Docker’s this nice size of technology that you kind of get started in a day or so. And actually, if you want to dig really deep, there are lots of, you can break into nice little chunks, and you can teach that over a full day workshop. Or you can break that up into little chunks and teach it over a longer period.

Elton Stoneman:
So this book takes that approach. There are 20-odd chapters. I’ve just finished chapter 13 today. So I’ll finish the writing in December, and then it’ll come out, I think, in March. But Manning have this really nice, early access program. So you can sign up now, you can read the first eight chapters, as more than get, go through the review process. You can read them as they’re being written, which feeds back to me, which is great so I can fix things before they go live. Yeah, so it’s really nice. And one thing about this book that I’m trying to do, I mean, there are lots of Docker books, this will be the best, obviously.

Mike Pfeiffer:
Well, of course. Absolutely.

Elton Stoneman:
I try to make it as approachable as possible. Because Docker spans sort of traditional roles, so Docker appeals to devs, to ops people, to architects, and a lot of the Docker books that are out there right now, they assume you’ve got like a Linux admin background. So I’m trying to keep it broad. You know, there’s code samples in there, but I don’t dwell on the code. There’s infrastructure diagrams, but I don’t dwell on that. It’s all very much a kind of, Docker appeals across the board.

Elton Stoneman:
And also the technology itself. So, I’m making pains so that every single image that I build and every example in the book, every exercise that you work through, will work on Windows 10, on the Mac, on Linux, on Raspberry Pi, so I build the images so they run on Windows, Linux, Intel, and ARM. So you should be able to follow along with your Raspberry Pi, or your Windows 10 machine and get the same results. So, yeah. Trying to make it-

Mike Pfeiffer:
Awesome.

Elton Stoneman:
As approachable as possible.

Mike Pfeiffer:
That’s got to be a lot of work, doing all those different code samples, and-

Elton Stoneman:
Yeah, yeah. So, it kind of constrains me to using application platforms that are multi platform. So I use Go, and .NET Core. I even do a Java one. Yeah, and I’ve got a Jenkins build at home, which builds 60 images a day and pushes them up to the Docker Hub. So, yeah. It’s probably good, I don’t think it should make it easier to follow along which is-

Mike Pfeiffer:
Yeah, that’s awesome. And it’s important if you’re applying what you’re learning is such a critical thing.

Elton Stoneman:
Absolutely, yeah. It is. And that’s the great thing about Docker, is it works on all those platforms, but works in the same way, so the Dockerfile syntax, which is how you package up your applications, that’s the same everywhere. The Docker API is the same, the Docker commands are the same. I can, on my Windows machine, connect to a Linux machine running in Azure, or an ARM machine running in AWS. AWS now you can rent VMs that run on ARM. You can do all that stuff and it’s all the same everywhere, so it adds this nice kind of layer of commonality across everything. You forget whether it’s Go or Node.js or Linux or Windows. So, yeah it’s powerful stuff.

Mike Pfeiffer:
Cool. Yeah, so I got good news for everybody listening. There was a comment, and I saw on Twitter, because we mentioned there’s a giveaway for this book. Manning is been awesome publisher to kind of partner with on a lot of these episodes. And so they’re giving away five copies of Elton’s book, Learn Docker in A Month of Lunches, and in the chats, or in the comments, I’m going to put a link right now. So, this is a bit.ly link. So bit.ly, if you’re listening on the podcast later. Bit.ly/DockerLunch. So capital D for Docker, capital L for Lunch. And that’ll be up for the next several weeks, so you can go enter the give away, and we’re giving away five copies.

Mike Pfeiffer:
One of the other quIstions was will this end up being on Amazon? Elton, do you know about that?

Elton Stoneman:
Yes. Yeah. Yeah. They publish all that stuff on Amazon ultimately, yeah. So that’s where you’re going to go and put your five star rating, absolutely.

Mike Pfeiffer:
Yeah, definitely. Yeah, we’ll send you a coupon, right? If you do a five star. Parth was asking Amazon India, specifically I guess I missed that. Is that?

Elton Stoneman:
That I don’t know.

Mike Pfeiffer:
Okay.

Elton Stoneman:
I mean, I assume it’s going to be available. If not, there’s, the Manning thing you can get ebook. So you can-

Mike Pfeiffer:
Yeah. Parth, just join the giveaway, you might get a copy, and then that’ll fix that problem. But, Kuran had a really good point and kind of quIstion in the comments. He was saying, hey, let’s talk about the impact of Docker Enterprise being acquired by this new company.

Elton Stoneman:
Yeah, sure. Absolutely. So, the impact for the vast majority of Docker users is none at all, because the majority of Docker users are using the community edition anyway, which is the free edition that you can get with Docker Desktop on Windows and Mac, Docker Community on Linux, Docker Swarm, is all part of the community stuff. Docker Hub. You can use all that stuff for free. Docker Enterprise, which was the paid for products, so if you’re using things like Universal Control Plane and Docker Trusted Registry, your contract now has gone over to Mirantis who have, for the last couple of years been focusing on Kubernetes, so they bought the Enterprise part of the product suite, and the Enterprise costumer base.

Elton Stoneman:
So, if you’re a, like an ordinary Docker user, it doesn’t affect you other than the fact that we should be able to get, we’re focusing now on the community stuff a lot more. So, new features in Hub, new features in Desktop, new features in the Engine, integrating more with other orchestrators, all that stuff’s come to the fore again now. Without the fact that we had, in fact, we had two separate engineering teams. So one was working on Engine and the community stuff, the other was working on Enterprise. They had a common base, so you know, they were both driven by the open source projects at the bottom. But then every now and then, a feature request would come in and we weren’t sure where to place it, and it was just a distraction for a long time.

Elton Stoneman:
So, as an ordinary customer of Docker, so using the free stuff, you shouldn’t notice any difference, apart from the fact that the releases will be faster and you’ll get more features. If you’re an Enterprise user, then I guess at some point you’re invoicing would go over to Mirantis. But the team who built the Enterprise products, the support team, the sales team, they all went to Mirantis too. So, if you’re an Enterprise costumer, your people that you deal with, will be the same. So there shouldn’t be any kind of real difference. Other than it frees the company up. Because we were trying to run at two speeds at the same time, and like that’s kind of hard. And now we’ve split, and we’re going to be able to run at our own paces.

Mike Pfeiffer:
Cool. Okay. And, by the way, if anybody hears the doorbell in the background here at my house, UPS guy or FedEx guy just got here probably, so that’s what that was. My call is on Fridays, so I’m working from home today.

Mike Pfeiffer:
Anyways, yeah, so that’s really cool, and looking forward to seeing kind of what happens with that, but it sounds like business as usual. Like I mentioned as well, Elton, you’re doing lots of Pluralsight work. Any courses in progress right now?

Elton Stoneman:
Yeah, absolutely. So I, the last one I did… so, I’ve got a really kind of weird course backlog, because it mirrors my technology backlog. So, originally I started work as a .NET developer, and then I was a .NET consultant for most of my career, so I did that for, kind of 10 plus years. So my early courses are all about like C Sharp and my most recent one is a rewrite of, like, an obscure course called C Sharp Extension Methods, which is this language feature. Like, it’s really, it’s a really handy language feature, but people weren’t using it enough, so I did a course a few years ago. And now it’s going to rewrite it because it’s been pretty popular.

Elton Stoneman:
So I’ve just published that one. Before that, I did one about serverless. Serverless with this project called Project Fn, which is an open source serverless thing where all your functions run as containers. So you get all the usual serverless stuff you get with Lambda, or Azure functions, but you can run it on your machine and you can bring your own Docker container. So that’s quite interesting.

Elton Stoneman:
And the one I’ve just scheduled, which will hopefully land in January, is about Istio, a service matched with Kubernetes, so I spent a chunk of time digging into that and looking at what it does, and it’s really super interesting. But it comes with a pretty high cost. So I’ve been talking about that with potential clients and at conferences this year, running a talk about Istio I’m going to take that knowledge and put it in that-

Mike Pfeiffer:
Yeah, I think service mesh Istio is a concept for a lot of people that’s still new. I think it kind of seems like people started to get the hang of Docker in a way, because really in the early days, and I bet you saw tons of this when you were going out on the road a lot as an advocate and stuff-

Elton Stoneman:
Yeah.

Mike Pfeiffer:
There was a lot of confusion in the early days. It seems that people are starting to realize, kind of how Docker works. Now, it’s like, all right how do I figure out Kubernetes and what the heck is this service mesh thing? So for somebody to use Istio, and they’re like what is that? Could you break it down for us?

Elton Stoneman:
Yeah, yeah. So I’ve been doing this talk, the last slide I’ve got is a slide of logos. So it starts with the Docker logo, and the Docker Swarm, and then Kubernetes, and then Istio. And I say, these are all different technologies, and they all have a sweet spot. But often they’re presented as a timeline you should be here at Istio. Like if you’re still just doing Docker containers, then you’re doing something wrong, you’ve got to go there. People can’t get caught up with that stuff.

Elton Stoneman:
So, yeah I completely agree that Docker is now, kind of, defacto in that’s how people build and shift stuff. But, having said that, there’s still huge parts of the community, like the ordinary tech community just, it’s still new for them. So we have, Docker have a booth at all the big events we were there at Microsoft Ignite and we had a constant amount of traffic. People coming to the Docker booth. Almost all the questions were still what is Docker?

Mike Pfeiffer:
Mm-hmm (affirmative).

Elton Stoneman:
Can you run Docker on Windows? Is this really a thing? You know, so we were doing that. That same conversation about the Container 101. And I did Ignite last year and the year before, and all that stuff. So it’s a huge lot of people who, kind of need to make a start on that journey. And then just doing Docker will give you a bunch of benefits. And then if you then go to an orchestration, which gives you the high availability and the scale and stuff, that’s another level. Because you can learn Docker fairly well in a couple of days, and maybe if you can kind of take the time, even if you’re completely new, in a week, you’ll probably have one of your own apps running in containers, because there’s not so much to it. There’s a lot of nuances, but you can pick up the bare bones of it.

Elton Stoneman:
If you then want to spin up an Azure community service cluster, which you can do with portal, and you can say I want 10 machines and all this stuff, and it takes care of the set up of Kubernetes for you, which is, in itself, like super complicated. So it does all that for you. If you then want to deploy your app with Kubernetes, you then need to learn the Kubernetes application description language, which is a way more complicated than the Docker piece. Because Kubernetes is built up of so many components and abstractions, and it’s super powerful, but obviously anything that powerful has a lot of complexity around it. So, the learning curve with Kubernetes goes up. And then you got to know Kubernetes pretty well if you want to then take advantage of a service mesh, which does give you like some really good stuff. But the entry bar for a [inaudible 00:13:43] is pretty high.

Elton Stoneman:
And that’s something that I talk about when I’m consulting, is you need to think about the whole team, you know? Because not everybody’s coming with you on that journey. Pretty much you can get people to understand Docker, there’s a Dockerfile in your repo, they’ll get to work out what it’s doing, it’s packaging up your software, it makes sense. But Docker Compose format, which is if you’re running multiple containers locally, again, that’s fairly straight forward and people can do Docker Composer, and they just need Docker on their machine.

Elton Stoneman:
Going to Kubernetes is another step, and not everyone in the team is going to do that. Web developers and [inaudible 00:14:13] are probably comfortable with Docker Components, but Kubernetes is something else. So, bear in mind that you’re going to be running at several speeds because, different members of the team will have different capabilities. And then if you bring Istio in, then you’re partitioning who can do what. And you’re going to go back to the old situation that only Jim can do a production deployment because he’s the only one that understand Kubernetes, and only Sarah can [inaudible 00:14:35] a production issue because only she understands what’s going on with Istio.

Elton Stoneman:
The whole point of container was to get away from that. So, yeah, a lot of these things are, that’s great stuff, bear in mind, it’s a long journey. And not everyone will make it. So you need to understand, organizationally, where you’re going with it.

Mike Pfeiffer:
Yeah, that’s a great point. And I echo a lot of what you just said. We got a ton of people in this livestream. So, thanks everybody for joining us. Really appreciate you guys, and the comments coming in. I’m trying to keep up with all the stuff that’s coming in. But [Ned Bellivents 00:15:02] is in the chats, and he had a really good point that you probably hear, I would assume, Elton, all the time, which is there are other container runtimes, and image standards. You know, basically why should we focus on Docker, or should we check out these other options? Or what are your thoughts there? I know you’re probably slightly biased. So we’ll try to [crosstalk 00:15:20].

Elton Stoneman:
Yeah, so if you want an honest opinion, bear in mind, I’ve worked for Docker of the last three years. I was the captain before I joined Docker. I’ve used Docker since before version 1.0. I don’t think there are competing image standards. I think standards of the OCI, which is this kind of Open Container Initiative, kind of codified the image standard so that anyone can spin up their own registry, and you can push and pull anywhere. So I don’t think that’s quite so much of a thing.

Elton Stoneman:
And the same with the container runtime. You know, the functionality that your container runtime gives you is standard now. So if I’m running Kubernetes, I can plug in different runtimes. You can do that right now. The main options, really, are Docker itself. A lot people don’t want Docker in their production orchestrator, purely because Docker comes with a bunch of other things. It’s not just the container runtime. It also has the capability to build your images. It has the capability to connect to existing images and it can, you can create your own cluster if you’ve just got the Docker engine.

Elton Stoneman:
So, a lot of people don’t want the other stuff, they just want the runtime. So what Docker, the company, did going back now two years, is they split out the runtime into a separate open source project. So, like Docker itself was open source, but they realized that people just wanted the Engine, so they split out the Engine to this thing called containerd. Which if you read it, it just says containerd, but it’s pronounced container D. All that does is run containers. So it doesn’t do the image building or any of that stuff.

Elton Stoneman:
You can run Kubernetes with containerd, so you don’t have the rest of Docker. And that’s what most people are doing. They installed Docker, and installed Cube on top of it, because that’s what they’re used to. Or they installed containerd, and they have Cube on top of that.

Elton Stoneman:
There are other container runtimes you can put in there. So things like CRI-O, there are a few others that have kind of spun up. And it’s valuable because it proves that it really is an interface that other people can implement, and you can swap around, and you’re not dependent on a company called Docker producing a thing. You can, you can mix and match those things.

Elton Stoneman:
But in reality, it’s really kind of low level plumbing. You shouldn’t particularly care. It’s nice to know that when I run a Docker image on my local machine with Docker Desktop, that’s using containerd. And then if I go to AKS, from AKS, depending on which version you’re using, an older version will be using Docker, the newer ones will be using containerd.

Elton Stoneman:
So, it’s nice to have that consistency everywhere. They’re all kind of open source pointers anyway. They have different governors, morals, and stuff, but I don’t think they have a huge performance difference or feature difference, with the exception of things like niche products. So there’s a company called Balena who make, who have their own fork of containerd, that they carved a lot of stuff that you don’t need for their use case, which is IOT. So they build effectively a slimmed down version of containerd that just runs containers for small IOT devices that don’t have a lot of computer power, a lot of memory. So they packed away the pieces they think they don’t need and they packaged that up as well. So some people do that sort of stuff. But ultimately, they’re all kind of the same thing. They’re actually running, their container is a tiny part of what you want your production platform to be.

Mike Pfeiffer:
Right. Carlton was asking what do you kind of see in terms of things unfolding over the next couple of years. You’ve had the last couple years to see the patterns, and probably seen some common things come up. Any big thoughts about how this might unfold over the next couple of years? Obviously, nobody knows, but…

Elton Stoneman:
Yeah, I mean, me least of all. So I would say, I think we’ve definitely seen consolidation around Kubernetes. So, go back two years and there were, you could legitimately pick from five or six different orchestrators. You know, there was solid enterprise grade [inaudible 00:18:56]. That’s kind of withered away now. So, like two years ago, if you went to Azure to spin up an orchestration cluster, the first thing you had a drop down, you chose between Docker Swarm, Kubernetes, and [Memsource 00:19:08], which was the Apache Orchestrator Project. So you can still do Docker Swarm and Kubernetes. Not in Azure. They’re separate things now. All the clouds are kind of centralized around Kubernetes.

Elton Stoneman:
And the reason for that is Kubernetes is kind of infinitely pluggable. So, that’s part of an application definition for Kubernetes, you can define how you want traffic to come into your application. So, at the simplest level you say I’m listing in port 80. And then, port 80, when traffic comes in, it’s going to go to these containers, ultimately. There’s a lot of complexities in that, but that’s what you’re ultimately doing.

Elton Stoneman:
When I deployed it on Docker Desktop, all it does is does some networking magic, so when I browse to local hosts, it goes into my local Kubernetes cluster. If I take that same application manifest and deploy it in Azure, then it creates for me, an Azure load balancer, a public IP address, it wires everything up for me. Because Kubernetes lets you kind of hook these pieces in.

Elton Stoneman:
And the other orchestrators didn’t really have all that stuff. So it’s very hard for a cloud provider to say, here’s your orchestrator, by the way that doesn’t integrate with the rest of our platform. So if you want to deploy your out, you deploy it to your cluster, and then you go and create the load balancer and you set up the rules. But Kubernetes lets you bring that in. So you get this nice sort of experience. Which is kind of why everyone’s gone down the Kubernetes route.

Elton Stoneman:
So, I think that will continue and Kubernetes in the cloud will just be the standard way of doing it. The other orchestrators that are still going are Docker Swarm, which is super easy to use because it uses Docker Compose format, which is very simple and easy to get a hold of. But there isn’t really a managed service for that. So if you go into the cloud, you’re going to be doing Kubernetes. And it’s just a question of how, like the steps you take to get there.

Elton Stoneman:
On [inaudible 00:20:46], I think it’s a different story, because Kubernetes is a really difficult project to manage. I mean, if you’re looking at running your own Kubernetes cluster in your data center, then you need a team to manage that.

Mike Pfeiffer:
Mm-hmm (affirmative).

Elton Stoneman:
And that’s going to be their full time job. And so you know, that’s what you need to bear in mind, whereas the other orchestrators, Docker Swarm and Nomad from HashiCorp are significantly simpler to manage. So if you’re going to be looking after this stuff yourself, if you want to go Kubernetes, then pay someone. Like pay Rancher to do it for you, or pay Docker Enterprise to do it for you. Or have a dedicated team. Or look at some of the other options. Maybe as a stepping stone.

Elton Stoneman:
We’ve got serverless things that are happening. We’ve got other interesting compute models, but I think ultimately, what people will be doing, like I’ve got my services for my storage. I’ve got my services for bursting compute, which is my functions, and then the rest of the stuff happens is on my cluster. Because the benefit of having everything kind of looking the same, is that you get consistency across all your projects. So every project has a Dockerfile for each component, a Kubernetes manifest to describe the whole application, and they’re all the same, whether I’ve got a Go Microservice app with 50 components, or a Legacy.net framework app.

Elton Stoneman:
The only difference is somewhere in the Kubernetes description, I’m saying this needs to run on Windows, throwing all that stuff to the same cluster. Like everything uses the same tools that you centralize the things that everyone has to learn, so the Kubernetes is juggling all that. I don’t think it’s going to get derailed anytime soon.

Mike Pfeiffer:
Yeah, it’s a really good point about the complexity of trying to do it yourself. And we’ve seen that with lots of Enterprise products that have ended up, kind of, moving into the cloud, still having the on prime option, but also just doing better in a hosted option or a SaaS model, because you don’t have to have so many experts to build this thing. So I agree with that, for sure.

Mike Pfeiffer:
[Eziel 00:22:40] was asking a question that I think was really, kind of on point, because you’ve done a book on Docker for Windows.

Elton Stoneman:
Yes.

Mike Pfeiffer:
And so he was asking, he’s fairly new to Docker, wants to find out about deploying work loads, like SQL databases, which is also kind of another question that I was going to hit you up with.

Elton Stoneman:
Yeah.

Mike Pfeiffer:
He’s asking about, can I do this on Windows? And also, maybe, what about running databases as a container. Because people ask that question a lot, right?

Elton Stoneman:
Yeah, absolutely. Yeah. So, Windows Containers absolutely. So, you can run Docker on Windows. If you’ve got a Windows 10 machine, you’re like a developer where you’re just playing around yourself, you install Docker Desktop. You can switch between Linux and Windows containers. So, the difference is that the way a container works, is it takes the process that runs your application, and it wraps this kind of thin boundary around it, which is the container.

Elton Stoneman:
And that’s the virtual environment that has its own disc and its own IP address and its own registry if it’s a Windows container. But the processes are running directly on the operating system, so there’s no, kind of, big VN in the middle with a load of OS virtualization that like cuts up the apps, so they’re super efficient. The payback of that is that, of course, if I build something to run on Windows, it has to run on a Windows server. So my Windows container image, my package of my application needs to run on Docker on Windows.

Elton Stoneman:
So let’s back to [inaudible 00:24:01]. If I’ve got images built for Windows applications, I need a Windows machine to run them in containers, and I need, if I got Linux images, then I need Linux machines to run those Linux containers. I can have a cluster, which is a mixture of two, so I can say I’ve got hundred machines in my cluster, 10 of them are for Windows, and I use them for my Legacy applications, and the other 90 are Linux and that’s minute stuff.

Elton Stoneman:
So, yes, absolutely. The way you package them is exactly the same. So you write this thing called a Dockerfile, which is like a script that says the simplest possible script you’ll get for a Windows app is copying an MSI from the disc that I’ve already built somewhere else, and then execute the MSI, and that’s your script. And then when you’ve done that, you’ve got a Docker image that contains your whole application, it makes your Docker container run in there it is.

Elton Stoneman:
And as one of the first things I did when I joined Docker, and I was super excited to be joining this cutting edge company, is I had to spin up a Windows 2003 virtual machine, deploy a .NET two application on there, and prove that we could take that app away from that machine, package up in an image and run it in containers on Windows Server 2016, without any code changes. And you can absolutely do that.

Mike Pfeiffer:
Nice.

Elton Stoneman:
So, yeah. You know, my book is going to take you through that. My book Docker on Windows, recently updated for Windows Server 2019. Email me, and I’ll send you a PDF, because it’s good to get a reach out for that.

Elton Stoneman:
Second part of the question, databases. People always want to do this and it’s an interesting question. So, databases for non-production environments absolutely run those in containers. So, if I’m running Windows containers on my machine, I can do like Docker container run SQL server, and I’ve got a SQL server instance. And I can run another five of those, and I’ve got five, six SQL server containers that I can publish ports to, I can connect to them as if they were a remote SQL server database.

Elton Stoneman:
And I can go to Dockerfile, which says start from a SQL server container image, and then package up my schema, and package up some default data, so when I run that container, it’s got my database ready to go. It’s got my whole schema and some data in there. So I can package up a database container image that had a bunch of known data that I use in my CI pipeline. So as part of my continuous integration, I build on my images, I start up the whole application stat including the database with some known data, and then I run some end to end tests that all run in containers, they all start super quickly and they all run in seconds. And then when it passes, I shut that whole lot down, it’s all gone.

Elton Stoneman:
So the old days when you get this battle of we really want to do end to end tests in our continuous integration, but we have to keep resetting the database, things fail, they flicker between passing and failing depending on the state of the data, and it takes ages to reset all of the data. All that goes. Because I start my database container in a second. I run all my tests, and then I kill it. And then the next run of the job, starts as a completely separate container with the state that saved.

Elton Stoneman:
So, yes you can do all that stuff. In test environments again, just works the way you would expect it to. I can start my container with either with my own schema or if I’m using an ORM, then it will deploy the schema when the app connects to the container. And I can keep the data separate from the actual containers, so you know if I need to do an update of SQL server, or deploy a schema update, all my test data still lives there. So you can do all that stuff.

Elton Stoneman:
It gets complicated when you want to do highly available databases that are replicated across multiple containers that are running on a cluster with multiple servers. Because that’s hard. Like Kelsey Hightower, who is a really well-known advocate in the Kubernetes world, said, he tweeted if you want to run a database in Kubernetes, you’re going to get fired. Because ultimately something will go badly wrong, and you’re not going to be able to fix it.

Elton Stoneman:
So you imagine that situation where, none of the clusters, none of the orchestrators have a replicated shared storage model yet. So if I’ve got 10 nodes in my cluster, and I’m running a three node distributed database, then the database is only going to be on three servers. And then, if one of those servers dies and my container moves to a different server, it’ll start with empty discs, and it will need to replicate everything over again.

Elton Stoneman:
So, but you can do it. And we’ve had… So back in the days when Docker Enterprise was a Docker thing, and we had customers who were running post res in production with distributed replicated containers, and there are ways you can kind of do it, but what you end up doing, is having two parts to your cluster, really. So you have a fixed part of your cluster. So you maybe you have three of five servers that are dedicated to be running database containers. And then, like, the rest of it may be shrinks and grows as it needs to.

Elton Stoneman:
So that you say basically when my database containers are running, they’ll always be on one of these three servers. So then I can make sure I don’t start on a random server and spend six hours replicating data. So you can do it, but in all honesty, you’re better off saying I’m in the cloud with my AKS cluster, I’m going to spin up Azure SQL. Because then I get a managed database service. I can scale up or down super easily. I can do backups like, I get all that stuff.

Elton Stoneman:
If I’m in a data center, chances are you’ve probably got a highly available SQL cluster anyway, which your SQL admins are not want to get rid of. So you might as well use it. So, yeah, the advice that we kind of have is, right up to production, absolutely, use containers for your databases in CI environments, in dev environments, and test environments, in production, stick with your current system.

Mike Pfeiffer:
Yeah. That makes a lot of sense. And that’s not even really a limitation of the container technology, because its like if you’re running your own virtual machines, in the cloud running SQL, you’re not going to auto scale those either. Because-

Elton Stoneman:
Yeah.

Mike Pfeiffer:
Relational database workload, itself, is basically pretty static, right? It’s expecting you to have pre-provisioned resources that you need and to your point have the storage replication already in place. So, it’s not really a limitation of Docker, or Kubernetes, or any of that. It’s just not the greatest candidate as a workload for that model.

Elton Stoneman:
Yeah.

Mike Pfeiffer:
[Josh Duffney 00:29:56] had a really good question. And you’re pretty much getting at… What would you say about people not paying attention to Docker, ignoring Docker altogether, what’s that going to look like for their career in the future? If they don’t focus on containers?

Elton Stoneman:
Well, the obvious answer is like, if you don’t buy my book, then you won’t have a career. No, so you know, the IT world moves at strange paces. Because, when I first got quite interested in Docker, I was consulting at an investment bank, and I was working on a big, kind of, BI project. And on that team, very good team, like very good technical team, but there were different attitudes within that team. There was some guys who were, they were long time with the investment bank, they weren’t the most interesting projects, they weren’t all that fussed about being on the cutting edge. And there were other people on the team who were, like me, really interested in this new stuff that was coming in Docker and stuff.

Elton Stoneman:
And that’s going back now, five years. And it’s still the case, there are still plenty of people whose careers are doing just fine without Docker, without Kubernetes. Who are still building .NET framework apps, that are running on Windows Server 2008. You know, and that will be the case for a long time.

Elton Stoneman:
When I first started my career, I was using this hideous programming language on these big IBM machines that were like fridges. When I got out of that as soon as I could, but the people I was working with back then, almost 20 years ago, are probably still doing that. You know, there’s the difference between being able to have a job that’s going to continue and having a rewarding career that keeps you interested.

Elton Stoneman:
So, there’s nothing wrong with that, if you enjoy the work you’re doing, you’re not fussed about picking up new stuff all the time, then you kind of go with that. No one’s going to have to do this stuff. But I think, especially, and I know, there’s just millions of new stuff. And I’m a Microsoft Azure MVP, so I get all the news about what’s happening with new features and new products with Azure. And I find it almost impossible to keep up.

Elton Stoneman:
So I mean, I’ve kind of focused in on the areas that I care about now. And I don’t know about everything that’s happening that’s happening in Azure. Don’t tell Microsoft that, because they might not renew me. But it’s hard, like it’s super hard. And that’s just Azure. Let alone AWS. I’ve got a reasonable knowledge of AWS because I had a couple of projects a few years ago where we were running JewelCloud and I had to get AWS up, scaled up pretty quickly. But then Google Compute, I’ve used twice, to see how it compares to other things. So you cannot be an expert in all that stuff. And then saying oh, there’s this other new thing now, why should I learn that? It’s a perfectly valid question.

Elton Stoneman:
I think the thing that separates Docker from the rest of the crowd of new stuff, is that it’s become pretty much ubiquitous as the way of delivering software in different situations. So it’s kind of spanned everything from unopened source project, and I want an easy way to release my product so people can try it. So, something like Grafana and Prometheus that are used for monitoring and dashboards. Like the only way you’re going to run those is in containers, because it’s super easy. That’s how that team published their products. You know, they have a CI build, and they publish it Docker Hub, and their documentation says go and run a container.

Elton Stoneman:
Like, yes there’s another page of documentation that says you can download the binaries if you want to, but the easiest thing is just to try out like that. And you can try it out, and you can bring it into your solution, again with the same thing, by bringing their container image into your application suite. And then new stuff, like, you know, I talk about the IOT example. If you’re working on the IOT project, I’ve done that in the past too. One of the biggest problems is how do you shift the software out to the devices? How do you update them in a nice way? Because what people tend to do, is they do a firmware download and then completely flash the machine, which, when they say don’t unplug while you’re doing it, they mean don’t unplug, because otherwise the thing will never work again.

Elton Stoneman:
If you separate your, and you don’t care about the firmware, you care about your tiny little application here. So if you can do that in a container, Docker solves the distribution and the runtime for you, and people are doing that much more easily and successfully than in the old days.

Elton Stoneman:
And then brand new stuff like GitHub Actions. If you want to, I mentioned that right at the top of the session, if you want to build a pipeline with GitHub Actions, each of those things connects with you in a container. And there’s a big list of things that have already been packaged. So, that’s why I think Docker’s worth focusing your time on, because it’s become ubiquitous and not just for running your production software. You know, it fits all around all sorts of places. And when you start using it, you kind of realize that it solves a lot of problems in a very nice way, and that’s when you bring it into your own software.

Elton Stoneman:
But yeah, I think that’s why, I think this is worth investing in, because it’s everywhere now, and things are building on top of it. So if you don’t have the basics, then you’re going to kind of struggle. Like if you’ve never used Docker, and you’re trying to build a GitHub Action, it’s kind of confusing to understand what this stuff is, and how this works. But if you’ve got the Docker knowledge, that’s just another great thing that uses containers.

Mike Pfeiffer:
Yeah. Also, knowing Docker really sets you up, obviously, for being able to figure out what’s going on when you’re hitting the ground running with Kubernetes. I mean, if you don’t know anything about containers, and you get thrown into Kubernetes. Because I’ve actually had that question come up, and we’re like sure you want to have that figured out first, but it’s not always obvious to everybody that’s new. That-

Elton Stoneman:
Yeah. Absolutely, yeah. Kubernetes gets all the attention, but actually Kubernetes is just a system for running Docker containers. So if you want to run your own software, you’re going to need to learn Docker first, to work out how to package it, how to run it in your test environment, how to get everything wired together, and then you can go on Kubernetes. So Docker’s the starting point for a lot of that stuff.

Mike Pfeiffer:
While we were chatting, I took a sip out of my drink, and Blake was like, hey, are you day drinking, Mike? This actually [inaudible 00:35:13]. This is just a sparkling water. I’m not that cool.

Elton Stoneman:
It does kind of look like you got a beer.

Mike Pfeiffer:
Yeah, it does look like-

Elton Stoneman:
[crosstalk 00:35:19] water bottle.

Mike Pfeiffer:
Yeah.

Elton Stoneman:
But it’s all right, because you can’t tell what’s in there.

Mike Pfeiffer:
But it’s a fair question, because it is Friday afternoon, here.

Mike Pfeiffer:
[Whaled 00:35:26], what’s up, man? He says, he wants to know how many people are running mixed workloads. Like Linux and Windows containers in Kubernetes? There’s support, right? In NKS, or, sorry, in AKS in Azure for that, and Rancher and stuff like that. So are you seeing that at all in the wild?

Elton Stoneman:
Yeah, absolutely. So, you think about… So Kubernetes Windows support is fairly new, so the mix clusters, it’s only went live July this year. And the clouds, they’re in various stages, so GKE, which is the Google Kubernetes service. EKS, which is the route on Amazon and AKS which is Azure, they are all either supported now, or it’s in preview and will be supported soon.

Elton Stoneman:
And then if you go back a couple of years, then Docker Swarm, which is the other orchestrator, that’s had Windows support for, since 2016. And the Docker Enterprise customers over the last two years, have almost all had some sort of Windows workload in there. So either they’ve got several clusters, and some of them are mixed, or everything has got some element of Windows.

Elton Stoneman:
If you think about the Docker Enterprise product is called that because it was aimed at big enterprise, and they always have a mixed workload. And the promise to them of being able to have this level of consistency across everything is huge, because right now, they’ve got completely separate teams. You know, you’ve got the team who build and manage Windows apps, they don’t even speak to the team who build and manage Linux apps, because they’re like different species of human.

Elton Stoneman:
If you can get rid of that and you say, look, we’re all talking Dockerfiles and composed files, and Kubernetes Manifest now, then suddenly if you’re doing any of the interesting, the new projects that people are doing, like if you’re moving to DevOps, well everyone talking the same language makes a massive difference.

Mike Pfeiffer:
Mm-hmm (affirmative).

Elton Stoneman:
And having tooling that supports you on that journey makes a massive difference. If you move into the cloud, yes you can go pals with all this stuff, but often it’s moving an application to outside services, it’s a project in itself. And if you’ve got a hundred of those to do, then you know you have to question, you start bringing in a cost analysis of the project itself as well as the benefits you’ll get from long term. Or else you can move with the containers and shift them up anyway.

Elton Stoneman:
And when you start looking at, like you said, well we’ve got all these Linux things, we’ve got these Windows things, we’re going to have a mixed workload. So, yeah I couldn’t give you numbers for things like AKS, because I don’t see that stuff. But certainly the Docker Enterprise customers, the majority of them had a mixed workload, ranging from, we have just a few Windows machines to support, some Legacy stuff from a company that we bought, all the way up to the majority of our stuff runs on Windows.

Elton Stoneman:
And that’s one of the differences between Docker Swarm and Kubernetes, is that Swarm can run in a pure Windows Cluster. So we’ve had customers where pure Microsoft shop, all their admins are experienced in Windows and no experience in Linux. And they want to use all the container-y stuff, but they don’t want to have to go and get skilled up on Linux or bring in [inaudible 00:38:15]. So a full Windows Swarm works very well for them. You can’t do that in Kubernetes because the control plane itself runs in containers and that only runs on Linux, and I don’t think there’s much appetite to make that work Windows only for the time being.

Elton Stoneman:
So, you’re always going to have limits control plane in Kubernetes, but then you don’t really care because that’s managed for you. So you can go and spin up like a 10, 10 Windows nodes and just deploy Windows apps. So, yeah, I can’t give you numbers, but certainly with the Docker customers, most of them were doing some element of mixed workload.

Mike Pfeiffer:
That’s really interesting. And I know you’re a big .NET guy. You’ve done tons and tons of work in that world for a long time, and I was going to ask you about that. Is it more just like, kind of, porting over existing applications, and is that an easier process when you’re trying to take in a traditional .NET op and get it Dockerized to use a Windows container? Or with Docker CORD, do you see people just going Docker CORD Linux-based containers? Or how do you see that playing out?

Elton Stoneman:
So it depends very much on the life cycle of the project. So if you’ve got something that… and we ended up, we have these engagements where we look up the whole application suite, work out and give advice on what we’re going to do with them. And usually there’s three categories. There’s a proper Legacy app. We don’t have the source code. No one who ever worked on it still exists in the company. Most of them have retired. There are still company users who use it, so we can’t decommission it entirely, but at the moment, we’ve got two Windows 2008 servers that it runs on for high availability, and all we do is go on there every now and then and run a windows update.

Elton Stoneman:
And we want to move that to the clouds. So, like, proper Legacy stuff, lift and shift. So we just want to put it in containers, because we can take the MSI or we can, the process there is I’ve got my deployment document, which is, it’s a 30-page word document with lots of screenshots and I convert that to a script, which becomes my Dockerfile. And I run that. And as long as I’ve got that, web deploys that file, or the MSI, or whatever else I’m using, as long as I can script up a deployment, then I can put it into a Docker image, and all of a sudden, and it could be a web forms.net2 app that’s currently running on an unsupported version of Windows server.

Elton Stoneman:
As soon as you move in to a container, it’s running on the same operating system that Docker runs on. So suddenly it’s running in the Windows 2019 server operating system. It’s based on .net framework 4.8, because that’s what it’s packaged as. You get all the backwards compatibility, but suddenly you’ve got 15 years of security updates in one go. So that whole Legacy suite makes that very nice. We had [inaudible 00:40:51] as part of the Docker Enterprise suite that could do a lot of the discovery in building the Docker images for you, and so you could just throw it at a bunch of stuff. So there’s that Legacy thing.

Elton Stoneman:
At the other end of the spectrum is the brand new applications, which [inaudible 00:41:03] better word, people either call them modern applications or cloud native applications, which are highly distributed, may or may not be microservice architectures, but they’re designed to be distributed architectures. They’re all written in small, modern application platforms, which are cross platforms. Like Node.js, or .NET Core, or Go. And those are going to be, we’re going to be running those in Linux containers, or nano server, if we’re more familiar with Windows stuff.

Elton Stoneman:
So they’re at opposite ends of the spectrum. And then in the middle, is the really interesting part, which is where I’ve spent a lot of time over the last couple of years helping people with. Which is we’ve got these big, ugly, monolithic apps, and I’m 10 years as a .NET consultant helping people build those big, ugly, monolithic apps. And now I’m talking about having to split them up. So you do both parts. So first of all, you wrap it up to run it in a container. And you can do that. You can take your two million line monolith and you can whack it in a container, and you’ll get some of the benefits of having some of that stuff running in Kubernetes that you can deploy it quickly, and you can scale out, and all that sort of stuff.

Elton Stoneman:
You don’t get all the benefits, because you’ve still got the two million lines in one deployable unit. So every time you do a deploy, you have to do your two week regression test. Or whatever’s currently slowing you down. Once you put it in a container, you’ve suddenly got all the processes and the tooling around it to start breaking features out and putting them in their own containers.

Elton Stoneman:
So I do a workshop, which I’ve done in lots of conferences, and content for that is all online. You can kind of follow along with it yourself, which takes you from this big, old monolith, and then we start looking at features and breaking them out on a kind of value basis. And that’s the really important thing. You don’t have to take that monolith and do a two-year rewrite project, and suddenly have a bunch of .NET Core microservices. You can do it feature by feature because the big advantage of these Legacy or older apps that you need to work with is that you understand where the pain is. Like you understand the features that need to be released frequently.

Elton Stoneman:
So I’m going to cut that out. I’m going to put it in a separate container, which might be, it can be a completely different technology style. Because the two containers will talk using ordinary PCP networking. So it could be a REST API, it could be event publishing with a message verse, it could become whatever you want. But in that new container, I choose the stat. So it could be a .NET Core web API. And then maybe I want to break out a bit the front ends. I’m going to put that, and do it with React or View or whatever. And then suddenly, you take this monolith and you start decomposing it into smaller parts, and then you get the benefit of the, of the microservices architecture. But you can deploy things with their own cadence.

Elton Stoneman:
So if stuff needs to change regularly, you don’t need to test the whole monolith, because you won’t even deploy that. You’re just going to deploy the BUI component. So you test that, you’re happy with it, you deploy it. Scale all up independently, and all that sort of stuff. So there’s that kind of bit in the middle, which is the interesting space. So, I’m going to take this monolith and break pieces out, connect them all together, and then that will be my new distributors architecture.

Elton Stoneman:
And there’s some really good patterns that have emerged there to kind of make that stuff happen. And that’s where a lot of the work is done.

Mike Pfeiffer:
Cool. All right so Gregory had a good question here. Probably one that comes up a lot. Licensing. What do we got to think about in terms of licensing? Is it containers? Or is it just the apps that run inside those things? What do we got to think about with that?

Elton Stoneman:
So, three aspects of licensing you need to think about, there’s the operating system. So, like, ultimately you’re going to pay for licenses for your operating system, whether that’s part of your cloud or whatever. Or on-prem. And then there’s the container runtime, which is usually, there is no licensing for that. If you want to use the containerd, or the Docker Community Engine, which is the majority of the people are doing that, so it’s perfectly solid for production releases. You don’t pay for that. And you don’t pay for the operating system inside the container.

Elton Stoneman:
So that’s, when I’ve spoken to bigger clients, or potential clients, that’s often where they start to get interested. Because I could take a hundred applications, I can run them each in a container. If I can run them on one big server, then I pay a Windows license for the server and then for each of those hundred containers, which kind of, inside the container, they think they’ve got their own version of Windows, I don’t pay any licenses for those. So I can run as many containers as I can on that server and I only pay for one operating system license.

Elton Stoneman:
And inside the application, that’s different. So inside the container, if you want to run a third party, like a COTS app, that is from some other provider, then you’re down to however they do their licensing. So for your own applications, it’s super simple because you’re only going to pay for the operating system, the servers that are running your machine, or pay for the cluster that runs your stuff, and containers. Doesn’t matter how many containers you run on your machine, you’re not going to get charged per container. But if you’re running a commercial application inside the container, then it’s go and see your provider.

Elton Stoneman:
And there will be a new question, because like, everyone’s being asked for the last few years. Do you support Docker? What’s the licensing for Docker? It’ll be a different response from everyone, but they’ve probably got an answer.

Mike Pfeiffer:
Awesome. All right, so I just wanted to call out a couple folks in the comments. Thanks guys for picking up the slack a little bit and answering some questions. Thanks Josh and Gregor and thanks Blake. And for all of you guys that were kind of jumping to help and answer some of the other unanswered questions, really appreciate that.

Mike Pfeiffer:
So just a couple other things as we wrap up here, Elton, I know it’s night time where you’re at, so I don’t want to keep you up all night, but what’s a… Number one, what is some place somebody brand new could go after this livestream, after listening to this episode, to start with Docker from scratch? What’s a good resource for them?

Elton Stoneman:
Okay, so if you’re a similar background to me, if you got a .NET background, then the workshop that I do, all the material for that is online. You can just go and access it, and all the source goes GitHub. All the slides that I use are all online. If you go to https D-A-K4.net. So it’s Docker and Kubernetes for dot net. But the URL is D-A-K- number 4.net. All you need is Windows 10, and you can follow along with that. And it takes, it’s 300 slides, and it’s a full day workshop. But you can go along and follow along with it in your own pace. It takes you right from zero. Like, it assumes no knowledge of Docker. It shows you what a container is, how it works, then it gets you with Dockerfiles, and then ultimately, by the end of it, you’re running stuff in Kubernetes with like dozens of containers.

Elton Stoneman:
So, if you don’t have a dot net background, then Pluralsight, obviously. There’s tons of stuff on Pluralsight that’s really good. We, the Docker captains are the equivalent of the Microsoft MVP program. This guy called Nigel Paulton, he’s done a ton of stuff on there. If you don’t have Pluralsight, then on… I mean, there’s a guy called Bret Fisher who’s a Docker captain, he does a course on Udemy called Docker Mastery. And depending on where you get there, it’s not like a hundreds of dollars course, it’s pretty reasonable. And it’s like well-received. He’s had 120,000 students. And, like I said it’s four and a half or five hours.

Elton Stoneman:
He’s from more of a Windows background, originally, but from the admin side. So, that’s less of a kind of here are some of the [inaudible 00:48:00] practices you need to bear in mind, and more of how you operate all this stuff. But yeah, there are a couple to get you going.

Mike Pfeiffer:
That’s really awesome. That’s D-A-K 4.net is insanely cool. I’ll have to check that out [crosstalk 00:48:13] notes, for sure. That’s really awesome.

Elton Stoneman:
Cool.

Mike Pfeiffer:
I also wanted to mention, since you brought up PluralSight, for everybody that’s on the livestream. So it is currently Friday, November 22nd. PluralSight is actually free this weekend. You guys can watch all of Elton’s Docker, and all of Nigel’s Docker. I even-

Elton Stoneman:
[crosstalk 00:48:30].

Mike Pfeiffer:
Windows server 2016 in Docker, or container support, and it’s like really out of date, but if you [inaudible 00:48:38], I’ll get paid, so that’s always good.

Elton Stoneman:
Yeah, yeah. People are still using that stuff. You know, that stuff’s still supported by Microsoft.

Mike Pfeiffer:
Yeah, and then Greg Shields did the next version of that. There’s a 2019 one. If you’re just, especially if you’re… that one is more, kind of, what do you need to know if you’re doing the admin server in a Windows server world, but awesome. So, I guess, kind of on the way out of the show, what I’m going to do is, I’ve updated this post with a link to the giveaway. And then, if you’re listening on the podcast, you can just go to the show notes, and enter the giveaway to get a copy, hopefully, of Elton’s book Docker in A Month of Lunches. So again, it’s bit.ly/DockerLunch camel casing there with those words. And, I don’t know, what do you think, Elton? Is there anything else that we should mention before we close this one out?

Elton Stoneman:
Well, I mean, folks should follow us on Twitter. So, I mean obviously that. Because we’ve both got tons of content come out all the time so-

Mike Pfeiffer:
That’s true.

Elton Stoneman:
Good thing. Yeah. And a lot of the stuff that I’m doing is that kind of entry level stuff. So you know, that’s my blog. My plan for the new year is to get out a ton of little, short YouTube snippets. Like, try and get something out every week, which is just like a five minute this is what this Docker command does. Or this is what this Kubernetes feature does, because there’s just millions of people who want to pick that stuff up. And not everybody’s got Pluralsight or Udemy or wants to pay for a bunch of courses that sit and takes them hours to do. So I want to do those little snippets. So yeah. All along Twitter is how I do that stuff. So, that’ll be great to get people on that.

Mike Pfeiffer:
Awesome. I will definitely add Elton’s social profiles, his blog, all of his resources where you guys can find him in the show notes. And it’s cool to see you’re still cranking out tons of content, man. I really appreciate you spending the time today. Elton, thanks so-

Elton Stoneman:
Oh, thanks for having me. Yeah, I really enjoyed it. It’s great.

Mike Pfeiffer:
Appreciate it. Thanks everybody. We’ll see you guys on the next episode. Bye everybody.

How to Make the Transition to DevOps Engineer

Discover a proven step-by-step game plan to move into a rewarding career in DevOps and automation.