Transcript from the "Docker & Orchestration" Lesson
>> Jem Young: The most famous containerization platform you've probably heard of is Docker. It's fitting that it's a whale. Because it is. When you think containers, you're thinking Docker. Amazon has their own Amazon Elastic Container Service. Apache Mesos is another one. And CoreOS rkt, known as Rocket, is another containerization service.
[00:00:23] And containerization just means it's that layer that talks between the application and the operating system. And you can move that around, it's just one layer. So I can have one layer, but many applications, and they all work, rather than a virtual machine, which is an operating system per individual container.
[00:00:41] Netflix has its own and it works pretty well. We run millions of containers and thousands of servers. So it's a scale that most people will never get to, so don't worry about it. That's why we're not going to do any actual containerization here, because if you're at that scale, you'll probably need to know a bit more than I'm gonna teach you today.
[00:01:02] But it's good to know what a container is, how it works. Netflix runs on a platform called Titus, and that does our containerization. And it works pretty well and it's open source if your company is interested in looking into it.
>> Jem Young: So I talked about containerization, and that's all well and good.
[00:01:20] But how do you roll out thousands of containers, millions of containers? You need some sort of orchestration. Cuz I can't just copy paste and then run that against a bunch of servers. I need some sort of way of conducting that. That's why it's called orchestration, because you need to make sure the operating systems are installed correctly.
[00:01:40] You need to make sure your containerization platform is installed correctly. And it's a lot like a symphony, where it's like here are the strings, here's the cello, here's the brass, and they all come in and it comes together and then the symphony plays out, and that's why it's called orchestration.
[00:01:55] And when you roll it out, honestly, it's beautiful, and you see an entire cluster turn green because they switched over from the old cluster. And it's, I don't know, maybe later, I'll show you some screenshots of some of how we roll things out, because it's really impressive. But you need a way of taking all these containers and all these individual operating systems and applying them to the servers itself.
[00:02:18] It's not enough to just say, I run containers, cool. But do that a million times and you're going to discover weird bugs and weird things with load balancing. Not to mention, we talked about elastic computing. So if I need 10,000 more containers, how many servers is that? I don't know.
[00:02:38] I don't know how much resources each container needs. And I don't know how much resources the server has. So we have this orchestration layer that says, hey, I have a Node application and I need, let's say 200 megs of RAM and about 10 megabytes hard drive space. I know how much the server needs.
[00:02:55] And I can roll these out. And I can roll these out evenly across the servers so that no one server is taking all the traffic. And that's what the orchestration does. The famous one you're gonna hear is Kubernetes. That's the big one in the room. The shorthand is K8s.
[00:03:11] So if you ever see that, it's referring to Kubernetes. Because, well, it's a long name that I don't actually know what it means. Anybody know what it means? What does it mean, please?
>> Student: There's eight characters between k and s.
>> Jem Young: No, no, I know that. What does Kubernetes mean?
[00:03:25] Does it mean anything? I don't know. I could probably look this up.
>> Student2: There's a joke on Twitter that it's named after the god of spending money in the cloud.
>> Jem Young: [LAUGH] Yes. I mean, I don't know. Maybe that's what it means. But you'll see K8s sometimes. Again, I gotta get your nerd credit up here.
[00:03:44] So you're like, yeah, I'm using K8s. But it's just an orchestration layer. So unlike Docker, which is a containerizer, Kubernetes is what controls the rolling out of all these containers you're deploying. There's also Docker Swarm, they have their, that's also a big player too. The next one would be Amazon Elastic Kubernetes service.
[00:04:02] Apache Mesos is a containerizer and an orchestration layer. Then there's AKS, which I think is Microsoft's. They have their own Azure, Kubernetes service, something like that, which some people use. But it's funny that we are like, we have containers now, and then we have elastic computing. But no one thought, well, we need a way of controlling all these things.
[00:04:24] Because now instead of one server, we have a million servers. So it gets really, really complicated really fast. But I'll say this, when you're at this level of engineering, you're in DevOps land, less full stack, more DevOps. And you need to know precisely what you're doing, because you're bringing up thousands of dollars worth of servers and taking down very quickly, and you need to know how to balance that.
[00:04:46] But I don't want to plug Netflix anymore. But we've gotten so fast at, I won't say we, I have nothing to do with it, much smarter people than me, but they've got so fast at taking out millions of services and taking them down very quickly. We can roll over from uswest to us east one region in seven minutes.
[00:05:07] So that's gigabytes of traffic, millions of millions of connections, millions of containers, we can roll those over very quickly due to a really solid orchestration layer. And then when the region comes back online, we can move all those back and people don't notice. We do it all the time.
[00:05:22] That's the power of like a really good orchestration layer.