 So if you've ever thought about using containers or Kubernetes, this is a really good book for you to get that understanding, like where containers fit, and then also adopting towards container orchestration, whether it's Kubernetes, Nomad, or Swarm. We look at all three of them in the book. Hi, this is your Swarm Bhartya, and we are here at CubeCon in Chicago. And today we have with us once again, Justin Mitchell, founder of Coding for Entrepreneurs. Justin, it's great to have you on the show. Great to be here. Thanks for having me. I'm excited to be here. And since we are here at this show, talk a bit about what kind of vibe you feel here at the show. It's picking up quite a bit, right? So there's a lot going on. I was here yesterday too for a day zero training, and it was a little bit more mellow now. Now it's kind of picked up a bit, and I think it's picking up even more since the, since the, you know, the initial talks stops or the initial talks suck. So yeah, good vibes. And you came out with the book Road to Kubernetes. Talk a bit about what is this book all about? What are the premise of this book? So the idea of Road to Kubernetes was really because I've talked to a number of developers that don't understand why they should use Kubernetes and what instances should that happen? And so that begs the question, do you even know containerization or container technology? And this book takes you from writing a web application, making a container out of it, using Docker compose and other Docker things, and then moving into Kubernetes and even looking at other container orchestration. So you can really get these sense of how to deploy applications and why and where Kubernetes might make sense for you and in your team and your projects. Kubernetes is complicated and almost everybody is embracing it. There are so many comics you remember. It moved to the cloud, moved to Kubernetes. But what do you feel, should all developers know about Kubernetes? Should all developers kind of get involved with Kubernetes or you feel that, no, it's not for everybody. You have to pick and choose which technologies are right for you. Yeah, so since Kubernetes runs containers, I think at the bare minimum, developers need to know containerization. It isolates applications, so you can run it basically anywhere. Kubernetes is one of the most modern, most advanced ways to run these containers. But yes, it is complex. So I think dabbling in it and understanding that complexity is something worth learning for developers of all kinds. As long as you get running an application, a web application of some kind, we're gonna back an application or you know, some databases. But the complexity doesn't have to be too complex. I think the complexity comes when you're trying to scale too much, whereas if you're just trying to deploy a single application, the complexity isn't that complex in my opinion. And that's part of the book too, right? It's to hopefully to break down, yes, it can be very complex, but so can virtual machines, but they can also be very simple. And I think Kubernetes has a lot of these simple elements that developers can and should use. The fact is that this complexity is not going to go away. What we are doing here as part of the ecosystem is to help developers, teams deal with this complexity. What are you seeing? What are organizations doing to kind of deal with this complexity? To bring the complexity down, it really goes back to like, what is the container's purpose? And moving towards building the container because the abstractions that are going to be built off of that container are going to help lower that complexity. And we've seen that a number of times. And you've seen other like managed cloud providers that have the ability to run your containers for you. And those are usually ran through Kubernetes, right? So like the abstractions that are being built to run these containers are, there's a lot of them. And I think like just knowing how to do and build containers well is really your first gateway into making Kubernetes not as complex. When I was listening to you, I recall I had a discussion with Billy Thompson from Akamai and he talked about the importance of portability. Of course, if you look at container, it was all about portability. Can you talk about what does portability mean in the context of Kubernetes? And of course, this event, the whole ecosystem. Yes, absolutely. Very good point. Containers are one of those things that make your applications far more portable because, well, it bundles up your applications. So it can be ran. So if Docker can be ran, if a Docker runtime can be ran, your container can be ran. That's the cool part about this. And so when I worked with Akamai on this book on road to Kubernetes, a core thesis of that was to make containerization and to make portability a big part of it, right? And so if you can bring your applications to being more portable, that means you can deploy them on any cloud provider, on any virtual machine. You can deploy them on Barrett Metal. You can deploy them on Kubernetes or Nomad or Docker Swarm. Like once it's portable, you've got all those options. And the best way to be portable, in my opinion, is using containers. When you're working on this book, of course you talk to a lot of folks for all the research. What kind of challenges you saw the teams were facing when they were dealing with the scale, when they're dealing with running multiple containers at the same time? Talk about some of those struggles that they face. So a big part of this scaling problem that you have with containers by themselves is how to safely roll out new versions of those containers or roll back those versions. And then also have enough container like resources running at any given time. So if you're just running a Docker runtime and you're just running a container, I mean, changing that container running means that you're just gonna be downtime. Even if you have load balancers and all this stuff. So Kubernetes comes in and makes that downtime minimal. In some cases, non-existent. And if you don't use Kubernetes and you try to scale up containers, what you're gonna do is you're probably gonna have to scale up virtual machines to run those containers and then have some sort of load balancer and have some policy in place. It starts to get a complicated mess, basically. Kubernetes takes away that complexity. I mean, so does HashiCord Nomad and so does Docker Swarm to a degree. But Kubernetes, I think, does it very well. And you can just clear, and you have autoscalers. You got a lot of options when it comes to Kubernetes to scale up those containers. But if you're trying to do it individually, which I think a lot of developers start with, it gets really, really tricky really, really quickly. And so like the complexity that we're talking about with Kubernetes, this is one of those things that Kubernetes does really well. It's made to do this well. So the complexity goes away quite a bit when you need to run three to 10 or 100 instances of any given container. So yeah, the scaling is built in in Kubernetes. And we talk about these things in the book a little bit as well. But scaling is different for all teams, right? So if you're a small team, you got a few people, the things that you're worried about in scaling is really just rolling out new versions a lot of times. If you're a massive organization, scaling's a lot different. So much different challenge in that case, you know what I mean? Going back to the book, who is the target audience of this book? Yeah, so if you've ever thought about using containers or Kubernetes, this is a really good book for you to get that understanding, like where containers fit and then also adopting towards container orchestration, whether it's Kubernetes, Nomad or Swarm, we look at all three of them in the book. But really it's if you wanna know how to bring your application from just application code to containerization into Kubernetes. So in some cases, that's gonna be teams that are looking to adopt Kubernetes. In some cases, it's gonna be teams looking to just understand how containers work in the first place. And then other teams that are just looking for that pipeline to go from zero to deployed in container organization. What's next on your roadmap? What are the next projects that you're working on? There's too much on my roadmap. But the most immediate thing that I'm working with Akamai on is called TRI-IC. It's the volume two. So if you've read volume one, volume two is in the works right now. And what this is all about is learning infrastructure as code. So if you're not ready for containers, if you're not ready for Kubernetes, the infrastructure as code stuff will help you move that direction as well. But it's just another look at portability. And that's what I'm working on next. That's what's coming. So we're gonna be looking at stuff like Terraform, Ansible, Pulumi. We've got a lot of things on the roadmap. So I'm really excited about those. You mentioned infrastructure as code. And we cover infrastructure as code a lot at TFHire. If I ask you, what do you mean by infrastructure as code? And what does it mean for developers and businesses organizations? Yeah, yeah, that good question. So as far as infrastructure as code, there's a few different options on how you can think about it. One of them is turning things on, right? So you have a document that basically is saying, hey, we wanna turn all of these things on. Terraform does this really well. Pulumi does this really well. There's a lot of tools out there that can do this really well. You can even write your own scripts to turn all things on. And that potentially can be done really well. Now, turning things on with a document, the reason you want the document is so you can commit it into Git. So you have version control in there. And so you can see what happens and what changes over time. But you can also then approve those changes in your organization or just yourself as a developer. You can propose those changes and approve them. And then that document can make those changes in your cloud providers. Now, it can be as one cloud provider or it can be in a lot of different places. The other side of infrastructure as code is making sure that your applications run correctly. So it actually helps provision, let's say in the case of Ansible, can help provision all your virtual machines that you have running, installing all the tools you might need, whether it's Nginx, Python, Node, whatever it is, you can have a document that says, hey, I need this version installed and I need it here and it needs to run in this particular way. And then it can leverage the code. So it's really declarative. You're just saying what needs to happen. Infrastructure code will make that happen. Kubernetes is not a whole lot different, right? So it's got a lot of manifests that will also execute in a declarative way. Infrastructure as code is much more about just making things are turned on and they're configured correctly. It can also configure Kubernetes and then you can run Kubernetes off of that. So there's a lot of options as far as IAC is concerned. And so the next series is really gonna be looking into the various things related to that so you can get started on your own. You know, the hottest topic this year is Genetic UI. It's actually a very hot topic here at CubeCon itself. I talked to a lot of companies who are actually coming up with solutions in leveraging Genetic UI. From your perspective, how do you look at Genetic UI from the perspective of Genetic UI for Kubernetes and Kubernetes for Genetic UI? Talk a bit about that. The thing is, like, I still have to refine everything that I wanna do in terms of generative AI with Kubernetes in the sense that, like, what's the best approach for it? I mean, that's part of the reason I'm here is to learn more about from these companies that are doing it and doing it well. I was just downstairs watching the Apple talk. They were talking about Jupiter and Kubeflow to manage this and keeping the human in the loop of the training process. It's really interesting because I've heard a lot of people going like, oh, nobody's gonna be using Jupiter notebook soon. AI is gonna be doing all the work. Where Apple's downstairs talking about how human in the loop is gonna be a big part of this process and how they're using that inside of Kubernetes and Kubeflow. So that's something that I wanna learn more about myself is how to actually make that orchestration work inside of Kubernetes because everything I've done before was directly on the virtual machine. It's not with the Kubernetes. So that's gonna be something I'm gonna explore a lot here in 2024 after I do this IAC stuff. Justin, thank you so much for taking time out today. Talk about your book and talk about the larger ecosystem. Thank you so much for all those insights. And I look forward to chat with you again soon. Thank you. Thanks for having me, Swap. I had a good time. It's good to see you in person. Yeah.