What is Docker? What is it about? Why does it exist and why should you be learning it?
This short video will cover the whys and whats of how it got started, what problems it solves and why
you should be checking it out right now.
Docker was released in 2013 as an open source project by a company known as dotCloud, which was a hosting
company that isn't around anymore.
In fact, within a year of releasing that open source project, it became so big that they changed their
company around and basically closed the old company, started a new company called Docker,Inc.
And away we went.
Now, here we are, over five years later, and everything has been changing.
We have a huge shift in the ecosystem.
Let's just talk about, real quick, what this is all about.
I want to just say that this is a huge shift.
In fact, I cannot understate how important it is that you learn Docker if you are in any form of IT.
Whether you're operator, a sysadmin, a developer, a build engineer...
you need to jump on Docker because its going to be that advantage that you're going to have for the
next job, or even the job you have now,
when your company goes to Docker. Notice I didn't say "if." It's when. This is a huge shift that we will
all eventually have to take part in.
We've seen this before.
I've been around a long time so in the 90's, I actually got to be a part of the mainframe-to-PC wave where
we shifted from a traditional mainframe architecture that had been around for many, many years to a PC
distributed architecture where we're putting in Mac and Windows and DOS,
if you remember that back then. We were changing out our networks and putting in fiber Ethernet and
Ethernet 10base-t and TCP/IP.
It shifted everything. Took years to do. But just a few short years later, not even 10 years later,
we were changing yet again. In the data center and in our servers, we were shifting to virtualization
because our servers were too powerful, and we had a lot of idle time, and we needed to get better utilization.
So, we started creating a lot of OS's inside a single piece of hardware. That was virtualization.
VMware, Hyper-V and all that stuff. We don't think about it now. Those are defaults.
We all use PCs by default usually. We're all going to be using virtualization in some form. The next
wave right after that was Cloud. Within five years of virtualization, we had the Cloud starting up in
2007/2008 when Amazon released the AWS solution.
That was the first real idea we had around easy, cheap, disposable compute power that we could spin up
and shut down really quickly from a website.
No one had done that before, that easy,
and on that level of scale. So it really shifted the landscape and helped us all to get to where
we are now, where everybody is using the Cloud in some form.
Then we have the next wave, and that's where we're at now, which is containers.
Now, containers would also include server lists, or functions as a service,
if you've heard of that technology, because all those things were made possible by containers and run
inside containers to do their work.
But fundamentally, it's the shift to containers as the next object of compute. You'll see very soon
where it's the default for us to all assume that you're running your stuff in containers.
In fact, these waves are happening faster and faster.
You'll notice that each one is happening quicker and it gets adopted even faster than the one before
it.
And this just makes it harder for us to keep up.
Right.
So, that's why we're here. To learn about Docker. The real hard parts about these migrations is the migration
themselves.
We all have to learn new tools and workflows, and we all have to get up to speed on the terminology and
the way to do things.
The nice thing this time around is that the Docker tools were really created from the get go with the
developer in mind, which means that they work just as well for developers as they do for sysops and
operators.
The problem in a lot of these previous technologies was they were really just built purely for sysadmins,
not so much for developers. This time around, the solution is an inclusive solution that includes developers,
build engineers, testers, operators, sysadmins and everyone in between.
You'll probably see, if you've done any research, various quotes like "the containers are the fastest
growing technology" and "there's going to be everybody using it by so many years" and these are all industry
analysts predicting how fast we're all going adopt it. At this point,
if it's a global company, they are using it somewhere in their company.
If you look at the other metrics, like job postings for people needing to know Docker to get jobs,
or the number of downloads of Docker applications, these are just off the charts.
Right.
These are another way of seeing how the move to containers is just sort of eating the world.
Before we get into what Docker actually does for you,
a quick little piece of trivia. If you've probably seen the Docker logo, which is known as MobyDock, it's
been around since the dawn of Docker and it's their logo, right.
But it's not actually their mascot. Their mascot is Gordon, and he's a real life turtle that happens to
live in San Francisco.
He stays a couple of days a week at the headquarters there, and he actually started out with Docker five
years ago really small, and you could fit him on a keyboard. You could sort of put him on a computer, make
him look like he was working on the laptop.
Now he's so big that it takes like two people to carry him around.
He's huge.
So, he's a real-life turtle, but he has his own Twitter account. You can get him @gordonTheTurtle
where he has some illustrations that sort of make fun of how he wishes he was the Docker mascot and he
has sometimes evil plans about how to go about that.
Getting back into the seriousness of this, why do you need Docker? What is the real benefit?
And that is all about speed.
In fact, all these major shifts in infrastructure have always been about speed. About the speed of
software deployments, the speed of business and getting things done in a company for profit.
You'll see big benefits in all these areas as you adopt the various tools of the ecosystem.
But it really covers the entire life cycle of software management. This gets us to the "Matrix of
Hell" story which is really around.
If you don't have containers today, you're probably dealing with something like this.
You have multiple types of applications: frontend, backend, workers, middle tier.
You've got a lot of different things that all need to work together to run your software.
Those all will have their own dependencies, their own requirements.
They might even run on different operating systems or different clouds. Then you have them running
on developer machines, and in testing infrastructure, and then in production, and maybe it's in a data
center and also in the Cloud.
It's complicated, right.
We have a whole lot of different ways of dealing with that.
But the way that containers do it, now, is it's consistent across the board.
It allows you to package the same way regardless of your operating system.
It allows you to distribute the software regardless of the setup.
It allows you to run and test the software the same way everywhere you're running it. Mac, Windows, PC,
cloud, data center, edge devices.
It doesn't matter. They all run the same way fundamentally when they're using Docker, and it makes a lot
of the pain problems around the software life cycle much easier to deal with.
The reason that we care so much about this is that if you've been here long enough, you know that
we have created tons and tons of software in the last 50 years.
All the software that we've developed on mainframes, which is a lot of it's still around, PCs and now
on in the Cloud.
All this stuff requires maintenance. We're now saying that 80% of the time of a typical IT
person is spent managing that existing software. Keeping it updated. Keeping it running. Fixing its problems.
Backing it up. All those various things of existing software.
This leaves very little time left for us to make new things, right, and to deploy new software.
So, Docker is freeing up a lot of those tasks of the maintenance of stuff and allowing us to get more
of our time back to innovate.
Docker, the company, likes to throw around numbers around who's using their products, but it's a really
good indicator of just how many big companies around the world are now adopting containers in some form.
That's basically everyone you've heard of. The two that I like to talk about are PayPal and
MetLife.
Paypal has over 700 applications now that they have taken that predated Docker and they've containerized
them, or they have converted them into container-based applications, and these applications didn't require
any code changes to do that.
That's one of the great things that helps containers get adopted so quickly is it doesn't...
you don't have to rewrite an app. You don't have to make a special application for containers.
It's just a different way of running and packaging the application and moving it around your infrastructure.
The other one is MetLife. MetLife has huge savings in their infrastructure because they were able
to use less operating systems to manage more applications, and that gave them a lot of their hardware
back.
They were able to save a lot of money on infrastructure and cost reduction.
Between these two, you got huge developer productivity, and you've got huge infrastructure savings.
This is kind of the typical numbers we see on large projects of people adopting Docker. Now, Docker
started, and still is, largely open source.
So every year on the month that the Docker project was originally released in March, there's a party
around the world. Basically, all the various meetups around container technologies get together and celebrate
Docker releasing, and we have sort of a party with birthday cake and we have fun, and there's workshops.
I run one locally.
Hopefully, there's one near you. It's another way to get involved with the community and learn
Docker. If you're new to Docker, and if you're watching this video you probably are,
there's lots of other pieces to the puzzle.
Docker is the core essence that you need to understand first, but once you move beyond that, you're probably
going to want to check your other tools that you use now, or what tools you might need to use to fill
the gaps in your toolset.
There's a great series of posters and diagrams that describe a lot of these things
at this URL on landscape.cncf.io. And the Cloud Native Computing Foundation, who maintains
this stuff, is one of the foundational supporters of a lot of these new technologies that are all container
based.
Next up, we're going to learn how to install Docker for your operating system and get you typing at
the command line.