kubernetes i hear everyone has been talking about it and you've probably heard of it too it's become pretty popular and i think it's time to learn what it is with a whole universe of things to learn it's important to start with the essentials let's go over the concepts that make kubernetes usable scalable and just downright awesome are you ready hey caslin good to see you i was just going over what kubernetes is that sounds like fun kubernetes is a portable extensible open source platform for managing containerized workloads and services that facilitates both declarative configuration and
automation letting you run distributed systems resiliently with scaling and failover for your application okay well uh that's a lot do you have a way to simplify that good call basically it's a container orchestrator that helps make sure that each container is where it's supposed to be and that the containers can work together oh yeah that makes me think of a conductor that manages everything in an orchestra you know are the horns going oh the drums they should be going now exactly there's a lot of moving points in a scalable application just like a conductor makes
sure the song sounds like a composer wants kubernetes make sure services are running smoothly the way an app developer wants okay before we get into more details about the what let's go over why it was created see there are a lot of applications that we call monoliths which means they put all the functionality like transactions third party integration into a single deployable artifact and monoliths are a common way to build applications even today but they still have their downfalls for example deployments can take a long time since everything has to roll out all together and
if different parts of the monolith are managed by different teams there could be a lot of additional complexity when prepping for a rollout and scaling has the same problem teams have to throw resources at the whole application even if the bottleneck is only on a single area right so people came up with microservices each piece of functionality is split apart into smaller individual artifacts if there's an update only that exact service has to be replaced and the microservice model has scaling benefits too now individual services can be scaled to match their traffic so it's easier
to avoid bottlenecks without over provisioning this is all great but having one machine for each service would require a lot of resources and a whole bunch of machines that's why containers are the perfect choice with containers teams can package up their services neatly all the applications their dependencies and any necessary configuration get delivered together this also means that they can be sure their services will run the same way no matter where they're run but there's still more problems that remain unsolved upgrading a container is easy since you can create a new version of the container
and deploy it in place of the old one but how can upgrades be done without downtime how do these containers know how to talk to the other ones and how can the app developer debug issues and observe what's happening and now we've come back to the conductor of our container orchestra kubernetes is all about managing these containers on virtual machines or nodes the nodes in the containers they run are grouped together as a cluster and each container has endpoints dns storage and scalability everything that modern applications need without the manual effort of doing it yourself
kubernetes automates most of the repetition and inefficiencies of doing everything by hand the app developer tells kubernetes what it wants the cluster to look like and kubernetes makes it happen see this all sounds amazing so everyone should just switch to kubernetes yeah well not so fast microservices still have their own unique challenges and sometimes a monolith can be the right solution based on what's right for the application itself and monoliths can still run on kubernetes even though they won't be able to use all the same benefits hmm either way how do you know when you're
ready to get started with kubernetes well the first step is to start using containers that's easier said than done but let's save that for the next episode okay so now we have an idea of what kinds of problems kubernetes helps with and we've also got an orbital view of what it actually does yep next time let's dig into containers containers huh okay stay tuned everybody if you want to get hands on check out the link in the description and if you enjoyed the episode subscribe for more