1 00:00:00,900 --> 00:00:03,600 ‫In the middle we've got Joe from Docker. 2 00:00:03,600 --> 00:00:08,580 ‫Joe is the director of engineering and he's going to be sharing some really cool new features in the 3 00:00:08,570 --> 00:00:12,120 ‫19.03 release of our Desktop Enterprise. 4 00:00:12,120 --> 00:00:17,670 ‫So first up we've got Joe he's actually Where are you from today. 5 00:00:17,670 --> 00:00:21,120 ‫I forget Indianapolis Indiana Indianapolis. 6 00:00:21,260 --> 00:00:21,570 ‫Yes. 7 00:00:21,580 --> 00:00:23,710 ‫So he's in the duck the office there right. 8 00:00:24,220 --> 00:00:24,750 ‫Yeah that's right. 9 00:00:25,830 --> 00:00:30,720 ‫And Joe is gonna talk at best a little bit about clustering. 10 00:00:30,730 --> 00:00:34,200 ‫This is a brand new thing in Docker desktop. 11 00:00:34,200 --> 00:00:40,140 ‫Well we've never really had a command line interface to create server clusters. 12 00:00:40,140 --> 00:00:44,580 ‫And you know before we basically had little tools like Docker machine which would spend up a single 13 00:00:44,580 --> 00:00:48,160 ‫instance but this is this is nothing like that right Joe. 14 00:00:48,460 --> 00:00:49,670 ‫Right of course. 15 00:00:50,010 --> 00:00:56,700 ‫It goes for the next level of additional functionality to sort of take care of the entire lifecycle 16 00:00:56,700 --> 00:01:00,300 ‫management of a cluster like we do with containers and services. 17 00:01:00,300 --> 00:01:00,560 ‫Yeah. 18 00:01:00,570 --> 00:01:06,510 ‫And this from my understanding the history of this was around the DCI that I think I talked a lot about 19 00:01:06,510 --> 00:01:09,060 ‫last year the docker certified infrastructure. 20 00:01:09,060 --> 00:01:11,020 ‫And this is sort of the evolution of that is that right. 21 00:01:11,460 --> 00:01:12,010 ‫Yes. 22 00:01:12,160 --> 00:01:12,380 ‫Right. 23 00:01:12,390 --> 00:01:15,420 ‫So the first sort of DCI templates and scripts. 24 00:01:15,430 --> 00:01:21,180 ‫We we published a lot of good feedback from those and it was largely around. 25 00:01:21,180 --> 00:01:21,510 ‫OK. 26 00:01:21,510 --> 00:01:26,250 ‫Well I don't want to learn like a whole nother set of tooling and such. 27 00:01:26,250 --> 00:01:29,560 ‫I mean thanks for the scripts and templates that would be useful. 28 00:01:29,610 --> 00:01:38,040 ‫So we did an internal sort of revision three years to three where we put it all into a container and 29 00:01:38,040 --> 00:01:42,050 ‫then we provided just a very simple command line interface to it. 30 00:01:42,120 --> 00:01:50,240 ‫And so in this iteration which we call Docker cluster we're providing a declarative syntax to basically 31 00:01:50,240 --> 00:01:51,740 ‫model the entire clusters. 32 00:01:52,120 --> 00:01:59,510 ‫So you can add subtract nodes load balancers and such. 33 00:01:59,510 --> 00:01:59,910 ‫All right. 34 00:01:59,920 --> 00:02:04,360 ‫So it really cleans up the entire experience. 35 00:02:04,400 --> 00:02:05,500 ‫Great. 36 00:02:05,540 --> 00:02:10,530 ‫I know that a lot of us you know once we get past that darker one to one and we learn about building 37 00:02:10,640 --> 00:02:15,560 ‫our containers and deploying our images to registries that's one of the next big questions is where 38 00:02:15,560 --> 00:02:16,070 ‫do I put it. 39 00:02:16,910 --> 00:02:23,360 ‫And I think that along the learning journey as well as those that are just more sysadmin ops like myself 40 00:02:23,390 --> 00:02:28,310 ‫where they're focused more on the infrastructure side trying to figure out how to why you know how do 41 00:02:28,310 --> 00:02:33,590 ‫I build out clusters of it of advanced solutions that aren't just sort of a basic machine with Docker 42 00:02:33,590 --> 00:02:34,390 ‫running right. 43 00:02:34,520 --> 00:02:39,380 ‫And I guess that's what this is really focused around right this is more about the enterprise clusters 44 00:02:39,380 --> 00:02:43,070 ‫and not so much a one off machine with Docker running on it. 45 00:02:43,070 --> 00:02:43,880 ‫Yeah exactly. 46 00:02:43,880 --> 00:02:53,160 ‫So Docker machine is the current one offer for Docker running that I would say you should use. 47 00:02:53,240 --> 00:02:54,850 ‫We have another tool that we do a lot of. 48 00:02:54,860 --> 00:03:02,360 ‫Dr. Khan called Docker job which also uses a lot of these same technology stacks that I've been describing 49 00:03:03,350 --> 00:03:09,440 ‫that once we're still working on improving that I think we'll have some pretty exciting announcements 50 00:03:09,440 --> 00:03:10,670 ‫in about six months or so. 51 00:03:10,970 --> 00:03:11,670 ‫Mm hmm. 52 00:03:11,720 --> 00:03:12,560 ‫Cool. 53 00:03:12,560 --> 00:03:12,750 ‫Yeah. 54 00:03:12,830 --> 00:03:16,700 ‫Here first six months you put it on the internet is forever. 55 00:03:16,710 --> 00:03:18,720 ‫So now now we're gonna be back here in six months. 56 00:03:20,090 --> 00:03:26,240 ‫Well Joe so I know you have some demos to show and of course you know this everybody is watching so 57 00:03:26,240 --> 00:03:27,320 ‫let's let's dive in. 58 00:03:27,320 --> 00:03:29,000 ‫What what you got to show us. 59 00:03:29,000 --> 00:03:30,290 ‫Sure of course. 60 00:03:30,800 --> 00:03:33,110 ‫We also see my screen and you click. 61 00:03:33,430 --> 00:03:35,560 ‫Yeah let me click some buttons 62 00:03:39,220 --> 00:03:44,070 ‫so yeah you should be able to share your screen and Skype and then I should see that. 63 00:03:44,070 --> 00:03:44,320 ‫All right 64 00:03:48,360 --> 00:03:51,200 ‫green all right. 65 00:03:52,190 --> 00:03:59,930 ‫OK so you know the place where most people start is by running dunker and with 19 3 we added the ability 66 00:03:59,930 --> 00:04:07,330 ‫to put CLIA plug ins into Docker itself so you can add additional functionality. 67 00:04:07,370 --> 00:04:14,350 ‫So we wrapped up all the functionality from DCI and put it in a tool called a cluster. 68 00:04:14,510 --> 00:04:22,460 ‫So if we take a look at the functionality Docker cluster we have you know create create a cluster we 69 00:04:22,460 --> 00:04:29,390 ‫can inspect the clusters we have we can list the ones we have some of the key features here. 70 00:04:29,390 --> 00:04:35,390 ‫Being able to backup and restore clusters so that you know if something goes wrong you can always get 71 00:04:35,390 --> 00:04:37,210 ‫back to a known good state. 72 00:04:38,330 --> 00:04:44,510 ‫And then you know over the life cycle of the cluster being able to add nodes removed nodes upgrade from 73 00:04:44,840 --> 00:04:50,550 ‫1983 to 1989 or whatever the next iteration will be. 74 00:04:50,550 --> 00:04:58,700 ‫And that includes all of our offering as well as DCP DDR just making that whole upgrade experience seamless 75 00:04:58,700 --> 00:04:59,360 ‫as possible. 76 00:05:00,860 --> 00:05:06,590 ‫So what does one of these declarations look like. 77 00:05:06,680 --> 00:05:10,970 ‫Take a look at the script that I have compared to here. 78 00:05:11,810 --> 00:05:17,030 ‫So we have you know sort of a high level concept of variables where you can assign values so you can 79 00:05:17,030 --> 00:05:21,420 ‫make templates for your for your clusters. 80 00:05:21,590 --> 00:05:27,110 ‫And then as you deploy them you can sort of fill out unique values passwords of course we want to keep 81 00:05:27,110 --> 00:05:27,580 ‫secret. 82 00:05:27,590 --> 00:05:36,260 ‫So we'll make that into our declaration basic configuration to talk to NWS what regionally waiting to 83 00:05:36,260 --> 00:05:39,380 ‫deploy and let's add some tags. 84 00:05:39,380 --> 00:05:43,430 ‫Doctor we have a tool called Reaper that kills off old clusters. 85 00:05:43,430 --> 00:05:48,440 ‫So I have to let it know that this is a pet and it's under the DCI project. 86 00:05:48,450 --> 00:05:51,850 ‫So please don't kill it reaper. 87 00:05:52,340 --> 00:05:58,150 ‫So then in terms of the cluster we can specify the engine version we're running to provide you C.P. 88 00:05:59,560 --> 00:06:02,780 ‫the version we're wanting to install there. 89 00:06:03,110 --> 00:06:09,070 ‫In this example just for brevity I'm only going to be installing CPD. 90 00:06:09,110 --> 00:06:11,860 ‫Will also could also be installed. 91 00:06:13,100 --> 00:06:16,610 ‫But again we don't take all day watching the install go. 92 00:06:17,600 --> 00:06:20,780 ‫So then the resource types we can do eight of those instances. 93 00:06:20,780 --> 00:06:24,970 ‫We can do a W spotted six requests to save some cash. 94 00:06:25,040 --> 00:06:30,620 ‫We can do eight of us load balancers and DNS provisioning directly in here. 95 00:06:31,070 --> 00:06:38,690 ‫So we could put a you know if you wanted your apps dot domain dot com we could have that pre provisioned 96 00:06:38,690 --> 00:06:41,700 ‫with certificates provided by Let's Encrypt. 97 00:06:41,810 --> 00:06:48,110 ‫So really the whole thing of all those different technologies are coming together under the under the 98 00:06:48,110 --> 00:06:52,010 ‫hood here with with Dr. cluster. 99 00:06:52,490 --> 00:06:56,290 ‫So what you get is you'll get those resources. 100 00:06:56,300 --> 00:07:00,370 ‫It will also create what's called the docker context for you. 101 00:07:00,680 --> 00:07:08,670 ‫So you can then switch your doctor client to that context and be able to interact with the cluster immediately. 102 00:07:09,290 --> 00:07:15,210 ‫So we'll take a break from looking at that and I'll fire up 103 00:07:18,080 --> 00:07:31,210 ‫the screen Dr. cluster eight minutes as Tucker and Deb show and call it plus we'll cooperate. 104 00:07:33,230 --> 00:07:37,640 ‫So we need to provide our UCB password entering it and securely. 105 00:07:38,150 --> 00:07:39,490 ‫So there we go. 106 00:07:39,490 --> 00:07:43,510 ‫We'll talk to hub to look up licenses that I have available. 107 00:07:43,610 --> 00:07:50,090 ‫We'll start planning the cluster on NWS and then we'll sort of see the slip are going from left to right 108 00:07:50,120 --> 00:07:58,190 ‫letting us know that resources are permitting and then cooking show style. 109 00:07:58,190 --> 00:08:00,590 ‫We'll take a look at the clusters we have available. 110 00:08:00,590 --> 00:08:04,430 ‫And I've already set up a demo one in the background so we can go ahead and take a look at that right 111 00:08:04,460 --> 00:08:07,380 ‫now. 112 00:08:10,630 --> 00:08:12,370 ‫Doo doo doo doo doo 113 00:08:17,930 --> 00:08:27,780 ‫and so there we can see this is when we expect the cluster we basically get a reflection of of the cluster 114 00:08:28,230 --> 00:08:33,480 ‫declaration that we've provided to create with in addition to all the different 115 00:08:36,030 --> 00:08:43,710 ‫parameters that were had default values they got resolved throughout the operation of the creation. 116 00:08:44,280 --> 00:08:50,940 ‫So for instance there are some Cuba and options that got resolved because their defaults. 117 00:08:51,060 --> 00:08:59,280 ‫The manager got an instance instantiated for it the instance type was this default instance type that 118 00:08:59,280 --> 00:09:02,740 ‫we pick as well as we had choose a.. 119 00:09:02,760 --> 00:09:08,980 ‫So we chose it into a tool for as the default you can of course set it to any the supported OS as we 120 00:09:09,270 --> 00:09:12,270 ‫have on our compatibility matrix or we'll pick a 121 00:09:15,110 --> 00:09:23,280 ‫EMI that that works and that's that's known to be supported that's available and then we install everything 122 00:09:23,280 --> 00:09:24,820 ‫else on top of that for you. 123 00:09:25,340 --> 00:09:35,640 ‫So if you need to bring your own EMI to the cluster we can override this and say the explicit EMI that 124 00:09:35,640 --> 00:09:37,500 ‫you need. 125 00:09:37,500 --> 00:09:38,810 ‫So that's great. 126 00:09:38,880 --> 00:09:40,560 ‫But how do we actually access it. 127 00:09:40,770 --> 00:09:44,170 ‫So I mentioned that we have these things called the contexts. 128 00:09:44,190 --> 00:09:53,130 ‫So right now I'm talking to the default context that I'm connected to locally on my doctor desktop. 129 00:09:53,760 --> 00:10:04,170 ‫But what I want to do is I want to use this demo context which is the one for this cluster. 130 00:10:04,170 --> 00:10:06,780 ‫So first just what the default context. 131 00:10:06,780 --> 00:10:10,110 ‫We'll take a look and see that I have a couple of containers running. 132 00:10:10,110 --> 00:10:13,410 ‫One is the one that's provisioning the cluster in the background. 133 00:10:14,640 --> 00:10:18,140 ‫And another is a Vault Server I have running locally. 134 00:10:18,690 --> 00:10:26,900 ‫But what we really want to do is take a look at the clusters the context you demo just like that or 135 00:10:26,910 --> 00:10:33,700 ‫switch the demo and we can see that by doing a piece and taking a look and see all these wonderful you 136 00:10:33,720 --> 00:10:36,790 ‫see containers running. 137 00:10:37,440 --> 00:10:50,790 ‫We can also do Doctor info and see that the server is running 33 container let's go all that's supporting 138 00:10:50,790 --> 00:10:57,250 ‫information in the cloud and where's all this stored. 139 00:10:57,250 --> 00:10:58,730 ‫Is it just in the command line. 140 00:10:58,750 --> 00:10:59,810 ‫The inspect. 141 00:10:59,830 --> 00:11:03,500 ‫What am I inspecting when you say so. 142 00:11:03,710 --> 00:11:13,630 ‫So in the doctor folder we have we have some metadata that we keep in in the background of the set of 143 00:11:13,630 --> 00:11:22,190 ‫clusters you have the information for those clusters like your inventory SS age. 144 00:11:22,310 --> 00:11:28,630 ‫Keys that we generate for you to just make it all is seamless and simple as possible. 145 00:11:28,660 --> 00:11:35,500 ‫And additionally you can take this in and use the underlying tools that we use if you need to migrate 146 00:11:35,500 --> 00:11:39,930 ‫to some of the right. 147 00:11:39,940 --> 00:11:42,540 ‫Is this something like How would a team. 148 00:11:42,910 --> 00:11:48,190 ‫How would a team of ops people use it if it's trying to think as if it's stored locally is there an 149 00:11:48,190 --> 00:11:51,410 ‫option for like a remote store or something red. 150 00:11:51,430 --> 00:11:58,750 ‫So to do that a remote state stored in this iteration there's not a where we're hard at work defining 151 00:11:58,750 --> 00:12:00,790 ‫an API set up. 152 00:12:01,090 --> 00:12:06,910 ‫That'll make it easy for someone to share the entire set functionality. 153 00:12:07,100 --> 00:12:10,960 ‫Your organization team an individual level. 154 00:12:10,960 --> 00:12:12,900 ‫Cool. 155 00:12:13,510 --> 00:12:16,130 ‫And what versions of Docker are. 156 00:12:16,420 --> 00:12:19,280 ‫Is this capable of deploying. 157 00:12:19,910 --> 00:12:23,830 ‫So the ones that we support are Dr. Enterprise 3.0. 158 00:12:24,470 --> 00:12:29,590 ‫That's the engine 1983 UCB 3 2 and Tier 2 7. 159 00:12:30,180 --> 00:12:30,890 ‫OK. 160 00:12:30,980 --> 00:12:32,910 ‫And I'm assuming you specify though I didn't. 161 00:12:32,940 --> 00:12:35,450 ‫I missed it in the file but in the end you're specifying that. 162 00:12:35,450 --> 00:12:40,250 ‫So like a future version you can you can define which versions. 163 00:12:40,830 --> 00:12:41,710 ‫Yeah. 164 00:12:42,170 --> 00:12:44,880 ‫So here's the 98 0 3. 165 00:12:45,500 --> 00:12:53,990 ‫You can use some additional information here to drill down into a test channel if you're testing one 166 00:12:53,990 --> 00:13:03,750 ‫of our betas and you can specify the like let's say you're putting your containers on an internal registry. 167 00:13:03,830 --> 00:13:14,210 ‫You could modify this to have your own industry reference to to access. 168 00:13:14,240 --> 00:13:24,680 ‫Are you there was a great question actually in chat about basically how would this be different than 169 00:13:24,680 --> 00:13:29,910 ‫doing it in puppet or another you know like terraform or something like that is there. 170 00:13:31,310 --> 00:13:34,770 ‫An advantage to this method. 171 00:13:34,860 --> 00:13:42,030 ‫The primary advantage is that we've already done that work for you so you can just go ahead and start 172 00:13:42,150 --> 00:13:48,440 ‫defining your cluster topology but underneath the hood you know very similar tools are being used. 173 00:13:48,450 --> 00:13:55,370 ‫I think we're using terraform to create the resources so we're actually building out all those configurations 174 00:13:55,380 --> 00:14:02,550 ‫behind the scenes where we built out a set of ethical rules and playbooks to drive that. 175 00:14:02,550 --> 00:14:10,230 ‫So from that operate container you can copy out those things and integrate them into your system if 176 00:14:10,230 --> 00:14:10,870 ‫necessary. 177 00:14:11,640 --> 00:14:13,840 ‫OK very cool. 178 00:14:14,190 --> 00:14:16,710 ‫And then you mentioned providers are there. 179 00:14:16,950 --> 00:14:19,620 ‫What are the providers you have at lunch right. 180 00:14:19,620 --> 00:14:27,910 ‫So at launch we launched with a W S I believe in this next patch release for nineteen thirty two. 181 00:14:28,410 --> 00:14:33,450 ‫We'll be including the Azure supported hot on its heels. 182 00:14:33,450 --> 00:14:39,300 ‫We'll be working on these sphere to be able to do this as well. 183 00:14:39,330 --> 00:14:40,920 ‫All right. 184 00:14:42,570 --> 00:14:43,500 ‫What else. 185 00:14:43,500 --> 00:14:46,880 ‫So this is what Docker desktop enterprise right. 186 00:14:46,890 --> 00:14:48,540 ‫This is enterprise. 187 00:14:48,840 --> 00:14:51,570 ‫Well of course this is for deploying server enterprise. 188 00:14:51,610 --> 00:14:52,130 ‫So. 189 00:14:52,690 --> 00:14:58,080 ‫So it would make more sense for someone who is you know running a desktop enterprise so they get this 190 00:14:58,110 --> 00:14:59,730 ‫and this is a command line plug in right. 191 00:14:59,730 --> 00:15:02,310 ‫Which we kind of talked a little bit about plug ins yesterday. 192 00:15:02,310 --> 00:15:11,290 ‫So if you're unfamiliar with plug ins the plug in model is one where the docker command line now Docker 193 00:15:11,420 --> 00:15:14,640 ‫engine is has something called plugins for a while but the command line now has plug ins so that you 194 00:15:14,640 --> 00:15:21,360 ‫can add extra functionality and a sneak hint at tomorrow is that we will have some other people on that 195 00:15:21,360 --> 00:15:25,790 ‫show you how to make your own command line plugins to do basically whatever you want. 196 00:15:25,790 --> 00:15:30,600 ‫And so the docker command line and essentially writing apps or scripts at the command line that have 197 00:15:30,600 --> 00:15:36,330 ‫access to the docker functionality without you having to manually create all that all those API calls 198 00:15:36,330 --> 00:15:36,900 ‫and stuff like that. 199 00:15:36,900 --> 00:15:38,500 ‫So it's pretty neat. 200 00:15:38,520 --> 00:15:45,690 ‫So this is taking advantage of that it looks like and the plugins are bundled into the enterprise deliver. 201 00:15:45,720 --> 00:15:51,870 ‫So if you are installing the enterprise engine on on a node you can then use that as sort of a jump 202 00:15:51,870 --> 00:15:55,510 ‫box to then create the rest of your cluster. 203 00:15:55,530 --> 00:15:57,150 ‫Yeah pretty cool. 204 00:15:57,150 --> 00:16:04,950 ‫And is this something where if it fails at some point it's sort of you can start where you left off 205 00:16:04,980 --> 00:16:06,790 ‫if you just keep rerunning the command kind of thing. 206 00:16:07,590 --> 00:16:13,770 ‫Yeah it'll try to refresh its data from the previous run and then match up to the desired state so that 207 00:16:13,770 --> 00:16:18,010 ‫you are not building a whole bunch of new clusters. 208 00:16:18,360 --> 00:16:23,790 ‫But if you do try to create another cluster like that was up here before and then of course it will 209 00:16:23,790 --> 00:16:26,410 ‫try to create another grid. 210 00:16:26,560 --> 00:16:27,490 ‫Right. 211 00:16:27,600 --> 00:16:28,430 ‫Right. 212 00:16:28,450 --> 00:16:30,590 ‫Yeah really cool. 213 00:16:30,630 --> 00:16:32,420 ‫Anything else to show us. 214 00:16:32,820 --> 00:16:37,230 ‫You know that's one of the highlights I can show you that it's it's us. 215 00:16:37,290 --> 00:16:44,670 ‫It makes it so easy that you can create these clusters and get rid of them very quickly. 216 00:16:45,270 --> 00:16:52,960 ‫So we just need to like try something now but don't want to pay for the cloud provider fees you know 217 00:16:54,150 --> 00:17:00,720 ‫really quick to just say hey Dr. cluster removed the demo and then I'm gonna go through and start tearing 218 00:17:00,720 --> 00:17:01,280 ‫it down. 219 00:17:02,310 --> 00:17:09,250 ‫So it's is creating everything you need from the BPC to the subnet the security groups to the instances 220 00:17:09,480 --> 00:17:14,840 ‫additional storage for your doctor volume like Marla Doctor. 221 00:17:15,240 --> 00:17:25,890 ‫It's trying to use the best storage driver we can lump overly too and you know for ECP it'll set everything 222 00:17:25,890 --> 00:17:30,300 ‫up that you need for DVR leave and set up like S3 object storage for you. 223 00:17:30,900 --> 00:17:36,120 ‫So it works very hard to try to make it as easy as possible to get you know are our best practices in 224 00:17:36,120 --> 00:17:37,100 ‫place right. 225 00:17:37,720 --> 00:17:38,080 ‫Yeah. 226 00:17:38,250 --> 00:17:41,960 ‫That's really cool that that was definitely in line with the goals of the DCI originally. 227 00:17:42,040 --> 00:17:48,630 ‫And the reason why I like the idea of the concept a year ago he had so. 228 00:17:48,720 --> 00:17:49,020 ‫All right. 229 00:17:49,020 --> 00:17:56,900 ‫So I think yesterday we had been on we talked about in case you're interested in Docker desktop enterprise. 230 00:17:56,940 --> 00:18:04,470 ‫This is since it is sort of the enterprise side on your on your desktop from the server enterprise stuff 231 00:18:04,470 --> 00:18:08,250 ‫the docker enterprise cluster stuff that you're seeing us build here. 232 00:18:08,430 --> 00:18:13,050 ‫If you have more questions about how to get get a copy of this or how to get a demo Docker desktop enterprise 233 00:18:13,050 --> 00:18:14,700 ‫and stuff like that. 234 00:18:14,910 --> 00:18:19,320 ‫Yesterday we talked about reaching out to your existing whoever you're already getting Docker server 235 00:18:19,320 --> 00:18:20,340 ‫enterprise. 236 00:18:20,370 --> 00:18:23,670 ‫I know it's like call that but that's how we have to distinguish the difference between the desktop 237 00:18:23,670 --> 00:18:24,940 ‫and the server but. 238 00:18:25,230 --> 00:18:31,470 ‫So if you have if you have server Docker enterprise today then you reach out to have your contact as 239 00:18:31,470 --> 00:18:36,780 ‫well that's Docker directly or your partner that you're working with and you can find more out about 240 00:18:37,080 --> 00:18:41,610 ‫all the new features in Docker desktop enterprise.