1 00:00:06,220 --> 00:00:12,310 What is Docker? What is it about? Why does it exist and why should you be learning it? 2 00:00:12,430 --> 00:00:18,370 This short video will cover the whys and whats of how it got started, what problems it solves and why 3 00:00:18,370 --> 00:00:19,950 you should be checking it out right now. 4 00:00:21,530 --> 00:00:28,370 Docker was released in 2013 as an open source project by a company known as dotCloud, which was a hosting 5 00:00:28,370 --> 00:00:30,320 company that isn't around anymore. 6 00:00:30,320 --> 00:00:36,200 In fact, within a year of releasing that open source project, it became so big that they changed their 7 00:00:36,200 --> 00:00:41,120 company around and basically closed the old company, started a new company called Docker,Inc. 8 00:00:41,240 --> 00:00:42,450 And away we went. 9 00:00:42,500 --> 00:00:47,030 Now, here we are, over five years later, and everything has been changing. 10 00:00:47,030 --> 00:00:49,060 We have a huge shift in the ecosystem. 11 00:00:49,070 --> 00:00:52,460 Let's just talk about, real quick, what this is all about. 12 00:00:53,320 --> 00:00:55,710 I want to just say that this is a huge shift. 13 00:00:55,720 --> 00:01:03,220 In fact, I cannot understate how important it is that you learn Docker if you are in any form of IT. 14 00:01:03,220 --> 00:01:07,790 Whether you're operator, a sysadmin, a developer, a build engineer... 15 00:01:07,900 --> 00:01:12,610 you need to jump on Docker because its going to be that advantage that you're going to have for the 16 00:01:12,610 --> 00:01:14,970 next job, or even the job you have now, 17 00:01:14,980 --> 00:01:20,500 when your company goes to Docker. Notice I didn't say "if." It's when. This is a huge shift that we will 18 00:01:20,500 --> 00:01:22,980 all eventually have to take part in. 19 00:01:23,050 --> 00:01:24,380 We've seen this before. 20 00:01:24,700 --> 00:01:30,610 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 21 00:01:30,610 --> 00:01:37,110 we shifted from a traditional mainframe architecture that had been around for many, many years to a PC 22 00:01:37,120 --> 00:01:42,040 distributed architecture where we're putting in Mac and Windows and DOS, 23 00:01:42,040 --> 00:01:48,010 if you remember that back then. We were changing out our networks and putting in fiber Ethernet and 24 00:01:48,130 --> 00:01:51,040 Ethernet 10base-t and TCP/IP. 25 00:01:51,040 --> 00:01:58,090 It shifted everything. Took years to do. But just a few short years later, not even 10 years later, 26 00:01:58,480 --> 00:02:04,090 we were changing yet again. In the data center and in our servers, we were shifting to virtualization 27 00:02:04,120 --> 00:02:09,760 because our servers were too powerful, and we had a lot of idle time, and we needed to get better utilization. 28 00:02:09,760 --> 00:02:14,830 So, we started creating a lot of OS's inside a single piece of hardware. That was virtualization. 29 00:02:14,830 --> 00:02:20,580 VMware, Hyper-V and all that stuff. We don't think about it now. Those are defaults. 30 00:02:20,590 --> 00:02:27,160 We all use PCs by default usually. We're all going to be using virtualization in some form. The next 31 00:02:27,160 --> 00:02:32,500 wave right after that was Cloud. Within five years of virtualization, we had the Cloud starting up in 32 00:02:32,500 --> 00:02:37,360 2007/2008 when Amazon released the AWS solution. 33 00:02:37,360 --> 00:02:44,800 That was the first real idea we had around easy, cheap, disposable compute power that we could spin up 34 00:02:44,800 --> 00:02:47,090 and shut down really quickly from a website. 35 00:02:47,500 --> 00:02:49,630 No one had done that before, that easy, 36 00:02:49,720 --> 00:02:54,700 and on that level of scale. So it really shifted the landscape and helped us all to get to where 37 00:02:54,700 --> 00:02:57,660 we are now, where everybody is using the Cloud in some form. 38 00:02:57,880 --> 00:03:02,010 Then we have the next wave, and that's where we're at now, which is containers. 39 00:03:02,170 --> 00:03:06,240 Now, containers would also include server lists, or functions as a service, 40 00:03:06,250 --> 00:03:10,990 if you've heard of that technology, because all those things were made possible by containers and run 41 00:03:11,020 --> 00:03:13,590 inside containers to do their work. 42 00:03:13,780 --> 00:03:20,440 But fundamentally, it's the shift to containers as the next object of compute. You'll see very soon 43 00:03:20,440 --> 00:03:26,150 where it's the default for us to all assume that you're running your stuff in containers. 44 00:03:26,170 --> 00:03:28,630 In fact, these waves are happening faster and faster. 45 00:03:28,630 --> 00:03:34,330 You'll notice that each one is happening quicker and it gets adopted even faster than the one before 46 00:03:34,330 --> 00:03:34,670 it. 47 00:03:34,870 --> 00:03:36,600 And this just makes it harder for us to keep up. 48 00:03:36,610 --> 00:03:37,110 Right. 49 00:03:37,330 --> 00:03:44,460 So, that's why we're here. To learn about Docker. The real hard parts about these migrations is the migration 50 00:03:44,460 --> 00:03:45,110 themselves. 51 00:03:45,120 --> 00:03:50,820 We all have to learn new tools and workflows, and we all have to get up to speed on the terminology and 52 00:03:50,820 --> 00:03:52,200 the way to do things. 53 00:03:52,200 --> 00:03:57,750 The nice thing this time around is that the Docker tools were really created from the get go with the 54 00:03:57,750 --> 00:04:03,420 developer in mind, which means that they work just as well for developers as they do for sysops and 55 00:04:03,420 --> 00:04:04,700 operators. 56 00:04:04,710 --> 00:04:09,330 The problem in a lot of these previous technologies was they were really just built purely for sysadmins, 57 00:04:09,450 --> 00:04:16,560 not so much for developers. This time around, the solution is an inclusive solution that includes developers, 58 00:04:16,560 --> 00:04:21,450 build engineers, testers, operators, sysadmins and everyone in between. 59 00:04:21,720 --> 00:04:27,330 You'll probably see, if you've done any research, various quotes like "the containers are the fastest 60 00:04:27,330 --> 00:04:32,790 growing technology" and "there's going to be everybody using it by so many years" and these are all industry 61 00:04:32,790 --> 00:04:36,460 analysts predicting how fast we're all going adopt it. At this point, 62 00:04:36,540 --> 00:04:40,150 if it's a global company, they are using it somewhere in their company. 63 00:04:40,230 --> 00:04:46,350 If you look at the other metrics, like job postings for people needing to know Docker to get jobs, 64 00:04:46,710 --> 00:04:51,940 or the number of downloads of Docker applications, these are just off the charts. 65 00:04:51,960 --> 00:04:52,230 Right. 66 00:04:52,230 --> 00:04:58,380 These are another way of seeing how the move to containers is just sort of eating the world. 67 00:04:58,770 --> 00:05:01,550 Before we get into what Docker actually does for you, 68 00:05:01,650 --> 00:05:07,680 a quick little piece of trivia. If you've probably seen the Docker logo, which is known as MobyDock, it's 69 00:05:07,680 --> 00:05:11,430 been around since the dawn of Docker and it's their logo, right. 70 00:05:11,430 --> 00:05:17,070 But it's not actually their mascot. Their mascot is Gordon, and he's a real life turtle that happens to 71 00:05:17,070 --> 00:05:18,590 live in San Francisco. 72 00:05:18,600 --> 00:05:24,420 He stays a couple of days a week at the headquarters there, and he actually started out with Docker five 73 00:05:24,420 --> 00:05:28,980 years ago really small, and you could fit him on a keyboard. You could sort of put him on a computer, make 74 00:05:28,980 --> 00:05:30,730 him look like he was working on the laptop. 75 00:05:30,870 --> 00:05:35,040 Now he's so big that it takes like two people to carry him around. 76 00:05:35,040 --> 00:05:36,610 He's huge. 77 00:05:36,660 --> 00:05:42,960 So, he's a real-life turtle, but he has his own Twitter account. You can get him @gordonTheTurtle 78 00:05:43,140 --> 00:05:48,810 where he has some illustrations that sort of make fun of how he wishes he was the Docker mascot and he 79 00:05:48,810 --> 00:05:51,750 has sometimes evil plans about how to go about that. 80 00:05:52,770 --> 00:05:57,640 Getting back into the seriousness of this, why do you need Docker? What is the real benefit? 81 00:05:57,750 --> 00:05:59,260 And that is all about speed. 82 00:05:59,280 --> 00:06:04,650 In fact, all these major shifts in infrastructure have always been about speed. About the speed of 83 00:06:04,650 --> 00:06:10,860 software deployments, the speed of business and getting things done in a company for profit. 84 00:06:10,890 --> 00:06:16,210 You'll see big benefits in all these areas as you adopt the various tools of the ecosystem. 85 00:06:16,380 --> 00:06:23,260 But it really covers the entire life cycle of software management. This gets us to the "Matrix of 86 00:06:23,260 --> 00:06:25,690 Hell" story which is really around. 87 00:06:25,690 --> 00:06:30,000 If you don't have containers today, you're probably dealing with something like this. 88 00:06:30,100 --> 00:06:36,490 You have multiple types of applications: frontend, backend, workers, middle tier. 89 00:06:36,490 --> 00:06:41,440 You've got a lot of different things that all need to work together to run your software. 90 00:06:41,440 --> 00:06:44,950 Those all will have their own dependencies, their own requirements. 91 00:06:44,950 --> 00:06:49,600 They might even run on different operating systems or different clouds. Then you have them running 92 00:06:49,600 --> 00:06:55,120 on developer machines, and in testing infrastructure, and then in production, and maybe it's in a data 93 00:06:55,120 --> 00:06:56,790 center and also in the Cloud. 94 00:06:57,070 --> 00:06:58,450 It's complicated, right. 95 00:06:58,450 --> 00:07:01,230 We have a whole lot of different ways of dealing with that. 96 00:07:01,510 --> 00:07:06,300 But the way that containers do it, now, is it's consistent across the board. 97 00:07:06,340 --> 00:07:09,760 It allows you to package the same way regardless of your operating system. 98 00:07:09,760 --> 00:07:13,570 It allows you to distribute the software regardless of the setup. 99 00:07:13,570 --> 00:07:21,130 It allows you to run and test the software the same way everywhere you're running it. Mac, Windows, PC, 100 00:07:21,160 --> 00:07:23,890 cloud, data center, edge devices. 101 00:07:23,890 --> 00:07:30,340 It doesn't matter. They all run the same way fundamentally when they're using Docker, and it makes a lot 102 00:07:30,340 --> 00:07:35,050 of the pain problems around the software life cycle much easier to deal with. 103 00:07:35,050 --> 00:07:39,400 The reason that we care so much about this is that if you've been here long enough, you know that 104 00:07:39,400 --> 00:07:43,790 we have created tons and tons of software in the last 50 years. 105 00:07:43,930 --> 00:07:49,540 All the software that we've developed on mainframes, which is a lot of it's still around, PCs and now 106 00:07:49,560 --> 00:07:50,800 on in the Cloud. 107 00:07:50,950 --> 00:07:56,110 All this stuff requires maintenance. We're now saying that 80% of the time of a typical IT 108 00:07:56,110 --> 00:08:02,920 person is spent managing that existing software. Keeping it updated. Keeping it running. Fixing its problems. 109 00:08:02,920 --> 00:08:06,640 Backing it up. All those various things of existing software. 110 00:08:06,640 --> 00:08:12,550 This leaves very little time left for us to make new things, right, and to deploy new software. 111 00:08:12,550 --> 00:08:18,760 So, Docker is freeing up a lot of those tasks of the maintenance of stuff and allowing us to get more 112 00:08:18,760 --> 00:08:20,200 of our time back to innovate. 113 00:08:22,100 --> 00:08:26,270 Docker, the company, likes to throw around numbers around who's using their products, but it's a really 114 00:08:26,270 --> 00:08:33,140 good indicator of just how many big companies around the world are now adopting containers in some form. 115 00:08:33,470 --> 00:08:39,020 That's basically everyone you've heard of. The two that I like to talk about are PayPal and 116 00:08:39,020 --> 00:08:40,200 MetLife. 117 00:08:40,310 --> 00:08:47,210 Paypal has over 700 applications now that they have taken that predated Docker and they've containerized 118 00:08:47,210 --> 00:08:53,270 them, or they have converted them into container-based applications, and these applications didn't require 119 00:08:53,300 --> 00:08:55,130 any code changes to do that. 120 00:08:55,130 --> 00:08:59,400 That's one of the great things that helps containers get adopted so quickly is it doesn't... 121 00:08:59,420 --> 00:09:03,170 you don't have to rewrite an app. You don't have to make a special application for containers. 122 00:09:03,170 --> 00:09:08,360 It's just a different way of running and packaging the application and moving it around your infrastructure. 123 00:09:08,360 --> 00:09:14,840 The other one is MetLife. MetLife has huge savings in their infrastructure because they were able 124 00:09:14,840 --> 00:09:20,480 to use less operating systems to manage more applications, and that gave them a lot of their hardware 125 00:09:20,480 --> 00:09:20,800 back. 126 00:09:20,800 --> 00:09:25,180 They were able to save a lot of money on infrastructure and cost reduction. 127 00:09:25,190 --> 00:09:30,740 Between these two, you got huge developer productivity, and you've got huge infrastructure savings. 128 00:09:31,070 --> 00:09:37,580 This is kind of the typical numbers we see on large projects of people adopting Docker. Now, Docker 129 00:09:37,580 --> 00:09:40,300 started, and still is, largely open source. 130 00:09:40,450 --> 00:09:46,960 So every year on the month that the Docker project was originally released in March, there's a party 131 00:09:47,260 --> 00:09:53,740 around the world. Basically, all the various meetups around container technologies get together and celebrate 132 00:09:53,980 --> 00:09:59,980 Docker releasing, and we have sort of a party with birthday cake and we have fun, and there's workshops. 133 00:10:00,010 --> 00:10:01,900 I run one locally. 134 00:10:01,990 --> 00:10:06,790 Hopefully, there's one near you. It's another way to get involved with the community and learn 135 00:10:06,790 --> 00:10:11,900 Docker. If you're new to Docker, and if you're watching this video you probably are, 136 00:10:11,900 --> 00:10:14,110 there's lots of other pieces to the puzzle. 137 00:10:14,120 --> 00:10:19,580 Docker is the core essence that you need to understand first, but once you move beyond that, you're probably 138 00:10:19,580 --> 00:10:24,740 going to want to check your other tools that you use now, or what tools you might need to use to fill 139 00:10:24,740 --> 00:10:26,290 the gaps in your toolset. 140 00:10:26,360 --> 00:10:31,650 There's a great series of posters and diagrams that describe a lot of these things 141 00:10:31,790 --> 00:10:39,440 at this URL on landscape.cncf.io. And the Cloud Native Computing Foundation, who maintains 142 00:10:39,440 --> 00:10:46,280 this stuff, is one of the foundational supporters of a lot of these new technologies that are all container 143 00:10:46,280 --> 00:10:47,830 based. 144 00:10:47,830 --> 00:10:52,390 Next up, we're going to learn how to install Docker for your operating system and get you typing at 145 00:10:52,390 --> 00:10:53,180 the command line.