Hi I’m John, I’m going to talk about Docker. And Docker is one of these technologies, it’s been really a big deal last, I don’t know, five years or so. And I think that it’s going to be the thing that everyone’s using in short time here.
And really, it’s the next gen generation of the virtual machine world. And what it does is it containerize is an application, which is much smaller versus virtualizing, an entire machine and you get all kinds of benefits out of that. Some of them are less memory usage, faster startups, and just plain easier to administer.
And that’s what all these, I’ll say SAS Type companies and Internet of Things type companies are taking advantage of. So the reason why it takes less memory is that containers are small.
If you take a look at these pictures here, on the left hand side, you’ve got the virtual machine, it’s got an entire, you know, what’s called a hypervisor and the operating system and your applications that can be we’ll say, two gigabytes of memory to get that whole thing up.
And running on the right hand side, we’ve got the Docker container. And then the applications are really the only thing that are being spun up each time you start a container. And that takes a lot less memory. And so this is kind of like a visual of that. And then the other part that’s an outcome of this is, if you were to start up a virtual machine, which is you know, very common, it’s a it’s an actual machine starting up, which might be you know, 15 seconds on a on a relatively fast machine, it can be longer, depending on what’s running on that machine.
In the world of containers. And this is I think kind of a magic piece is it’s a zero second startup, if you want to start a container, it’s instantly running, does its thing and shuts down. So you can have a container up and running, doing its thing and stopping in 1/10 of a second.
And that’s how you can have these things scale up and scale down really quickly. And you you get tangent solutions, like less chance of having viruses or security issues, because your application is running for a 10th of a second. Versus if it’s running for days and days, somebody can install some sort of piece of malware, and it’s watching memory, etc.
But in the world of containers, that thing’s gone already. So you get a lot of scale benefits, but you get security benefits, architectural benefits that are just worth paying attention to. And that’s one of the benefits of this container world. I say it’s also easier to administer.
And really what’s happening is, as a system architect or an operations person, you have environments that you trust. So we’ve built up this world, we know it’s a good, secure world. And so therefore, let’s put some other things on top of it. And what you do in the world of Docker is you extend existing trusted containers or trusted machines.
And you can do this as code. And I’ll show a couple pictures here. But you can do machines as code and environment says code. And here’s just an example one, this is a Apache web server. And if you take a look, there’s 14 lines that describe this entire machine. And the first thing it’s doing is extending a trusted known machine of Ubuntu. And then it’s adding a comment saying this person’s the maintainer. When you build it, it does an update, that’s what that line is doing.
Then the next three lines are really kind of setting security information, what law what files it’s going to use, and then what port it’s exposing. So from an architecture secure security perspective, you can tell what’s going on what ports are being opened up, and what files are being shared. And that’s just a very comforting thing.
Versus if you were to take a look at a virtual machine, you would have no visibility to that you’d really have to study machine and the world of Docker, it’s quite straightforward, exposed. And so this is an example Docker file.
The files all tend to be fairly small, human readable. And again, they’re extending existing containers. And these requirements are the changes that you make are very obvious and therefore comforting to operations people.
So kinetic data and Docker so we’ve been using Docker for a couple of years experimenting with it, but we’re using it pretty heavily in our, in our environment now. And we also use it in the development world.
So kind of a, an example that recently came up is we have our kinetic task engine and somebody called up said, hey, well, the task engine work with Postgres version 10, or whatever the latest version is. All our developer was very quickly able to just do a poll of the postgres spin up, get it up and running in like 510 MINUTES, POINT kinetic at it, do some experimenting, and be comfortable that kinetic task was able to run against the postgres system, prior to using something like Docker would be well, how you have to set up a Linux virtual machine.
How do you download it? What’s the security settings there’s all All kinds of complications and installing that stuff that we’re really not going to run, we’re just going to answer a simple question for a customer. So being able to pull down a Docker get it up and running point our stuff at it is super helpful.
Also, we use it in the development world for continuous integration and delivery. So we have web hooks hooked into the code repositories, that when software is updated and pushed into the repository, there will automatically spin up some doctors that will check out that code, go through all the tests to make sure that the tests work, make sure that the performance is within expectations.
And then depending it can actually push it right into our production world. So that stuff is spun up at Dockers, they do their thing. And then when they’re done, they’re shut down. So that’s another usage. And then it’s also part of the backbone of the Kynapse world scaling both up and down. Also, our developers are using it.
So if they’re developing piece of code, they can check out a Docker have it go in set breakpoints, and stuff and have just their own world on their own desktop. And so that’s being used. And then also, same thing with our customers, they can run our world in Dockers on their machine.
So I kind of give a little hint there. So can you run kinetic in Docker? Well, this picture we shown a couple of times, this is not a fun thing to install. Anybody enjoy installing kinetic, there’s a lot to it, there’s probably eight different systems that need to be set up.
And they need to know how to talk to each other their security settings, network protocols available, there’s a lot to setting up the kinetic world. And it’s not a very fun task. But once it’s up and running, it’s going to be rock solid. Well, the world of Docker allows you to define a machine as code.
But you can also define entire environments as code. And that’s called Docker Compose. And so you can define multiple machines in a human readable file. Things like databases, web servers, application servers, all that stuff that’s required for an environment to run can all be in a very easy to understand file.
And it will also connect up the network and say this one needs to be able to see that one and this network port is exposed. And all that stuff that an operations person would be concerned with would be there and visible. And so here is a sample Docker compose file. And you’ll see that there’s multiple machines being defined here.
And the first one is a Cassandra database. And so it’s defining what the Cassandra database is, and, and setting some memory requirements, then there’s the postgres database.
So we’re starting up multiple databases here. And then further on, we’ve got the kinetic task engine, you’ll see that it depends on the postgres system being available. And then you’ll see the requests CEE system also has dependencies on the database being available.
So you can kind of put these dependencies in there. And you can put health check definitions and all that stuff in this very nice, simple file. And you can get it up and running.
So you can on your own machines do a git clone of this definition. And in 136 lines of Docker, you can start up your own kinetic world on your own machine with just a couple lines. So that’s something that we’re really kind of proud about. And five minutes later, we’ll be up and running.
And that’s a lot easier than the previous install. So thanks