0 1 00:00:00,900 --> 00:00:03,600 In the middle we've got Joe from Docker. 1 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 2 3 00:00:08,570 --> 00:00:12,120 19.03 release of our Desktop Enterprise. 3 4 00:00:12,120 --> 00:00:17,670 So first up we've got Joe he's actually Where are you from today. 4 5 00:00:17,670 --> 00:00:21,120 I forget Indianapolis Indiana Indianapolis. 5 6 00:00:21,260 --> 00:00:21,570 Yes. 6 7 00:00:21,580 --> 00:00:23,710 So he's in the duck the office there right. 7 8 00:00:24,220 --> 00:00:24,750 Yeah that's right. 8 9 00:00:25,830 --> 00:00:30,720 And Joe is gonna talk at best a little bit about clustering. 9 10 00:00:30,730 --> 00:00:34,200 This is a brand new thing in Docker desktop. 10 11 00:00:34,200 --> 00:00:40,140 Well we've never really had a command line interface to create server clusters. 11 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 12 13 00:00:44,580 --> 00:00:48,160 instance but this is this is nothing like that right Joe. 13 14 00:00:48,460 --> 00:00:49,670 Right of course. 14 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 15 16 00:00:56,700 --> 00:01:00,300 management of a cluster like we do with containers and services. 16 17 00:01:00,300 --> 00:01:00,560 Yeah. 17 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 18 19 00:01:06,510 --> 00:01:09,060 last year the docker certified infrastructure. 19 20 00:01:09,060 --> 00:01:11,020 And this is sort of the evolution of that is that right. 20 21 00:01:11,460 --> 00:01:12,010 Yes. 21 22 00:01:12,160 --> 00:01:12,380 Right. 22 23 00:01:12,390 --> 00:01:15,420 So the first sort of DCI templates and scripts. 23 24 00:01:15,430 --> 00:01:21,180 We we published a lot of good feedback from those and it was largely around. 24 25 00:01:21,180 --> 00:01:21,510 OK. 25 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. 26 27 00:01:26,250 --> 00:01:29,560 I mean thanks for the scripts and templates that would be useful. 27 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 28 29 00:01:38,040 --> 00:01:42,050 then we provided just a very simple command line interface to it. 29 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 30 31 00:01:50,240 --> 00:01:51,740 model the entire clusters. 31 32 00:01:52,120 --> 00:01:59,510 So you can add subtract nodes load balancers and such. 32 33 00:01:59,510 --> 00:01:59,910 All right. 33 34 00:01:59,920 --> 00:02:04,360 So it really cleans up the entire experience. 34 35 00:02:04,400 --> 00:02:05,500 Great. 35 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 36 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 37 38 00:02:15,560 --> 00:02:16,070 do I put it. 38 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 39 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 40 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 41 42 00:02:33,590 --> 00:02:34,390 running right. 42 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 43 44 00:02:39,380 --> 00:02:43,070 and not so much a one off machine with Docker running on it. 44 45 00:02:43,070 --> 00:02:43,880 Yeah exactly. 45 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. 46 47 00:02:53,240 --> 00:02:54,850 We have another tool that we do a lot of. 47 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 48 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 49 50 00:03:09,440 --> 00:03:10,670 in about six months or so. 50 51 00:03:10,970 --> 00:03:11,670 Mm hmm. 51 52 00:03:11,720 --> 00:03:12,560 Cool. 52 53 00:03:12,560 --> 00:03:12,750 Yeah. 53 54 00:03:12,830 --> 00:03:16,700 Here first six months you put it on the internet is forever. 54 55 00:03:16,710 --> 00:03:18,720 So now now we're gonna be back here in six months. 55 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 56 57 00:03:26,240 --> 00:03:27,320 let's let's dive in. 57 58 00:03:27,320 --> 00:03:29,000 What what you got to show us. 58 59 00:03:29,000 --> 00:03:30,290 Sure of course. 59 60 00:03:30,800 --> 00:03:33,110 We also see my screen and you click. 60 61 00:03:33,430 --> 00:03:35,560 Yeah let me click some buttons 61 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. 62 63 00:03:44,070 --> 00:03:44,320 All right 63 64 00:03:48,360 --> 00:03:51,200 green all right. 64 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 65 66 00:03:59,930 --> 00:04:07,330 to put CLIA plug ins into Docker itself so you can add additional functionality. 66 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. 67 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 68 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. 69 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 70 71 00:04:35,390 --> 00:04:37,210 back to a known good state. 71 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 72 73 00:04:44,840 --> 00:04:50,550 1983 to 1989 or whatever the next iteration will be. 73 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 74 75 00:04:58,700 --> 00:04:59,360 as possible. 75 76 00:05:00,860 --> 00:05:06,590 So what does one of these declarations look like. 76 77 00:05:06,680 --> 00:05:10,970 Take a look at the script that I have compared to here. 77 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 78 79 00:05:17,030 --> 00:05:21,420 make templates for your for your clusters. 79 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 80 81 00:05:27,110 --> 00:05:27,580 secret. 81 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 82 83 00:05:36,260 --> 00:05:39,380 deploy and let's add some tags. 83 84 00:05:39,380 --> 00:05:43,430 Doctor we have a tool called Reaper that kills off old clusters. 84 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. 85 86 00:05:48,450 --> 00:05:51,850 So please don't kill it reaper. 86 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. 87 88 00:05:59,560 --> 00:06:02,780 the version we're wanting to install there. 88 89 00:06:03,110 --> 00:06:09,070 In this example just for brevity I'm only going to be installing CPD. 89 90 00:06:09,110 --> 00:06:11,860 Will also could also be installed. 90 91 00:06:13,100 --> 00:06:16,610 But again we don't take all day watching the install go. 91 92 00:06:17,600 --> 00:06:20,780 So then the resource types we can do eight of those instances. 92 93 00:06:20,780 --> 00:06:24,970 We can do a W spotted six requests to save some cash. 93 94 00:06:25,040 --> 00:06:30,620 We can do eight of us load balancers and DNS provisioning directly in here. 94 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 95 96 00:06:38,690 --> 00:06:41,700 with certificates provided by Let's Encrypt. 96 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 97 98 00:06:48,110 --> 00:06:52,010 hood here with with Dr. cluster. 98 99 00:06:52,490 --> 00:06:56,290 So what you get is you'll get those resources. 99 100 00:06:56,300 --> 00:07:00,370 It will also create what's called the docker context for you. 100 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. 101 102 00:07:09,290 --> 00:07:15,210 So we'll take a break from looking at that and I'll fire up 102 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. 103 104 00:07:33,230 --> 00:07:37,640 So we need to provide our UCB password entering it and securely. 104 105 00:07:38,150 --> 00:07:39,490 So there we go. 105 106 00:07:39,490 --> 00:07:43,510 We'll talk to hub to look up licenses that I have available. 106 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 107 108 00:07:50,120 --> 00:07:58,190 letting us know that resources are permitting and then cooking show style. 108 109 00:07:58,190 --> 00:08:00,590 We'll take a look at the clusters we have available. 109 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 110 111 00:08:04,460 --> 00:08:07,380 now. 111 112 00:08:10,630 --> 00:08:12,370 Doo doo doo doo doo 112 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 113 114 00:08:28,230 --> 00:08:33,480 declaration that we've provided to create with in addition to all the different 114 115 00:08:36,030 --> 00:08:43,710 parameters that were had default values they got resolved throughout the operation of the creation. 115 116 00:08:44,280 --> 00:08:50,940 So for instance there are some Cuba and options that got resolved because their defaults. 116 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 117 118 00:08:59,280 --> 00:09:02,740 we pick as well as we had choose a.. 118 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 119 120 00:09:09,270 --> 00:09:12,270 have on our compatibility matrix or we'll pick a 120 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 121 122 00:09:23,280 --> 00:09:24,820 else on top of that for you. 122 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 123 124 00:09:35,640 --> 00:09:37,500 you need. 124 125 00:09:37,500 --> 00:09:38,810 So that's great. 125 126 00:09:38,880 --> 00:09:40,560 But how do we actually access it. 126 127 00:09:40,770 --> 00:09:44,170 So I mentioned that we have these things called the contexts. 127 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. 128 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. 129 130 00:10:04,170 --> 00:10:06,780 So first just what the default context. 130 131 00:10:06,780 --> 00:10:10,110 We'll take a look and see that I have a couple of containers running. 131 132 00:10:10,110 --> 00:10:13,410 One is the one that's provisioning the cluster in the background. 132 133 00:10:14,640 --> 00:10:18,140 And another is a Vault Server I have running locally. 133 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 134 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 135 136 00:10:33,720 --> 00:10:36,790 see containers running. 136 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 137 138 00:10:50,790 --> 00:10:57,250 information in the cloud and where's all this stored. 138 139 00:10:57,250 --> 00:10:58,730 Is it just in the command line. 139 140 00:10:58,750 --> 00:10:59,810 The inspect. 140 141 00:10:59,830 --> 00:11:03,500 What am I inspecting when you say so. 141 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 142 143 00:11:13,630 --> 00:11:22,190 clusters you have the information for those clusters like your inventory SS age. 143 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. 144 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 145 146 00:11:35,500 --> 00:11:39,930 to some of the right. 146 147 00:11:39,940 --> 00:11:42,540 Is this something like How would a team. 147 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 148 149 00:11:48,190 --> 00:11:51,410 option for like a remote store or something red. 149 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 150 151 00:11:58,750 --> 00:12:00,790 an API set up. 151 152 00:12:01,090 --> 00:12:06,910 That'll make it easy for someone to share the entire set functionality. 152 153 00:12:07,100 --> 00:12:10,960 Your organization team an individual level. 153 154 00:12:10,960 --> 00:12:12,900 Cool. 154 155 00:12:13,510 --> 00:12:16,130 And what versions of Docker are. 155 156 00:12:16,420 --> 00:12:19,280 Is this capable of deploying. 156 157 00:12:19,910 --> 00:12:23,830 So the ones that we support are Dr. Enterprise 3.0. 157 158 00:12:24,470 --> 00:12:29,590 That's the engine 1983 UCB 3 2 and Tier 2 7. 158 159 00:12:30,180 --> 00:12:30,890 OK. 159 160 00:12:30,980 --> 00:12:32,910 And I'm assuming you specify though I didn't. 160 161 00:12:32,940 --> 00:12:35,450 I missed it in the file but in the end you're specifying that. 161 162 00:12:35,450 --> 00:12:40,250 So like a future version you can you can define which versions. 162 163 00:12:40,830 --> 00:12:41,710 Yeah. 163 164 00:12:42,170 --> 00:12:44,880 So here's the 98 0 3. 164 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 165 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. 166 167 00:13:03,830 --> 00:13:14,210 You could modify this to have your own industry reference to to access. 167 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 168 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. 169 170 00:13:31,310 --> 00:13:34,770 An advantage to this method. 170 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 171 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. 172 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 173 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. 174 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 175 176 00:14:10,230 --> 00:14:10,870 necessary. 176 177 00:14:11,640 --> 00:14:13,840 OK very cool. 177 178 00:14:14,190 --> 00:14:16,710 And then you mentioned providers are there. 178 179 00:14:16,950 --> 00:14:19,620 What are the providers you have at lunch right. 179 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. 180 181 00:14:28,410 --> 00:14:33,450 We'll be including the Azure supported hot on its heels. 181 182 00:14:33,450 --> 00:14:39,300 We'll be working on these sphere to be able to do this as well. 182 183 00:14:39,330 --> 00:14:40,920 All right. 183 184 00:14:42,570 --> 00:14:43,500 What else. 184 185 00:14:43,500 --> 00:14:46,880 So this is what Docker desktop enterprise right. 185 186 00:14:46,890 --> 00:14:48,540 This is enterprise. 186 187 00:14:48,840 --> 00:14:51,570 Well of course this is for deploying server enterprise. 187 188 00:14:51,610 --> 00:14:52,130 So. 188 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 189 190 00:14:58,110 --> 00:14:59,730 and this is a command line plug in right. 190 191 00:14:59,730 --> 00:15:02,310 Which we kind of talked a little bit about plug ins yesterday. 191 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 192 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 193 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 194 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. 195 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 196 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 197 198 00:15:36,330 --> 00:15:36,900 and stuff like that. 198 199 00:15:36,900 --> 00:15:38,500 So it's pretty neat. 199 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. 200 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 201 202 00:15:51,870 --> 00:15:55,510 box to then create the rest of your cluster. 202 203 00:15:55,530 --> 00:15:57,150 Yeah pretty cool. 203 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 204 205 00:16:04,980 --> 00:16:06,790 if you just keep rerunning the command kind of thing. 205 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 206 207 00:16:13,770 --> 00:16:18,010 you are not building a whole bunch of new clusters. 207 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 208 209 00:16:23,790 --> 00:16:26,410 try to create another grid. 209 210 00:16:26,560 --> 00:16:27,490 Right. 210 211 00:16:27,600 --> 00:16:28,430 Right. 211 212 00:16:28,450 --> 00:16:30,590 Yeah really cool. 212 213 00:16:30,630 --> 00:16:32,420 Anything else to show us. 213 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. 214 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. 215 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 216 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 217 218 00:17:00,720 --> 00:17:01,280 it down. 218 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 219 220 00:17:09,480 --> 00:17:14,840 additional storage for your doctor volume like Marla Doctor. 220 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 221 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. 222 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 223 224 00:17:36,120 --> 00:17:37,100 place right. 224 225 00:17:37,720 --> 00:17:38,080 Yeah. 225 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. 226 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. 227 228 00:17:48,720 --> 00:17:49,020 All right. 228 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. 229 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 230 231 00:18:04,470 --> 00:18:08,250 the docker enterprise cluster stuff that you're seeing us build here. 231 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 232 233 00:18:13,050 --> 00:18:14,700 and stuff like that. 233 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 234 235 00:18:19,320 --> 00:18:20,340 enterprise. 235 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 236 237 00:18:23,670 --> 00:18:24,940 and the server but. 237 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 238 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 239 240 00:18:37,080 --> 00:18:41,610 all the new features in Docker desktop enterprise.