WEBVTT
NOTE
duration:"00:49:44.3650000"
language:en-us
NOTE Confidence: 0.887746512889862
00:00:01.150 --> 00:00:21.160
Alright let's rock N roll. Welcome to containers. We only have 50 minutes. So we're not doing any Fluff man. We're just rocking if you did notice was Mark Level 400 which I don't know. Everybody likes the level thing and somebody was asking me? Why is this 400 for those of you that are Linux container experts this is not 400 if not, but my experiences been.
NOTE Confidence: 0.884444236755371
00:00:21.950 --> 00:00:41.960
To a SQL audience that doesn't really know much about containers. If I don't call it that they walk away go on crowd. I thought was going to be like a strategy session. This is more about and I'll dive into this, but let me first talk about this right here. This is more about like? What are containers a little bit? How to SQL server using? How do we do some stuff internally to make it work and then?
NOTE Confidence: 0.884326696395874
00:00:42.750 --> 00:01:02.760
How do you update SQL server the new native way that's going to blow your mind I want you to have everything I'm seeing that. I'm showing you so these websites right here, which I'll put him up at the very end have the deck that I'm showing you have all the demos. I'm showing you could all go back and just do this stuff yourself, so don't worry about command lines. I'm typing in please don't memorize that stuff.
NOTE Confidence: 0.887549579143524
00:01:02.760 --> 00:01:10.140
Sorry. When I flipped over like I didn't take a photo OK, you haven't all available to you like today, even right now, you could download it and do it OK.
NOTE Confidence: 0.883670508861542
00:01:11.850 --> 00:01:19.620
So Hey, it's about containers. It's about how they work in general to spelling. Some myths about what containers are OK.
NOTE Confidence: 0.880016922950745
00:01:20.610 --> 00:01:40.620
How does SQL server do some magic to make containers work under the covers the bonus about kubernetes we don't have time it's only 15 minutes. When I do this in an hour and a half. I have time to cover that there are talks. At this conference about kubernetes that you can go listen to we will not cover that today. We're just going to talk about containers. But guess what you need that fundamental knowledge of containers to learn crew.
NOTE Confidence: 0.871799826622009
00:01:41.960 --> 00:02:01.970
We have a huge packed audience. I'd love to take your questions in the middle of the session. I don't say I'm going to pull that off Beyoncé to get 15 minutes done. If you want to bring me on evals I get that and I'll try to make sure at the very end. We have some time. I will stay afterwards. But I'll let the next speaker could come up and I'll just stand up there and answer all the questions you want. I'm at the boot today at 1:30 will show.
NOTE Confidence: 0.880093276500702
00:02:02.760 --> 00:02:22.770
Look, I wrote Anthony is here in the audience with mantid raise your hand my tech writer for the book so another expert. You could ask about this topic, and I'll be there. I'll stay as long as you want to talk about the session, but let's just go right into this stuff can you doctor? Why would you even want to do this first of all if you use a concept called container it's a great?
NOTE Confidence: 0.878211140632629
00:02:23.560 --> 00:02:43.570
Now, for you anywhere, and doctor. We're going to focus on Docker being the container runtime for containers today anywhere. Docker can run. You can take a SQL server image and run. It imagine taking SQL server on a USB stick and caring around whatever you want to. I'm old school. I'm in sneaker net guy right wherever you want to take SQL server on a stick walking around.
NOTE Confidence: 0.88164484500885
00:02:44.360 --> 00:03:04.370
Is Mac Windows Linux cloud puppet? Whatever sticking it in and just running SQL server last year at this conference this very conference. I create this concept called the sequel, Mac Challenge. Because somebody challenging the audience. I'm not a Windows Guy go take a look at it. It's the ability now for you to run SQL server on a Mac with no with No.
NOTE Confidence: 0.902961611747742
00:03:05.160 --> 00:03:25.170
Software no windows software their lightweight? Why are they lightweight because they're not virtual machines they're not meant to replace virtual machines because you're going to find out. It's pretty magical who containers work. But in the end, they're just processes. They're just programs running an isolated way. But they don't carry the burden of an entire operating system to load all the files that come with that.
NOTE Confidence: 0.87370091676712
00:03:25.960 --> 00:03:45.970
Container now containers can be heavier, depending on what you're going to put in this image, which are going to find out the concept of containers being a more lightweight efficient way to do process isolation, which a lot of times use VMS for their consistent and this is one thing that everybody loves about. I'm notice where Devops down here. Imagine now instead of using a development server for your environment everybody.
NOTE Confidence: 0.866910457611084
00:03:46.760 --> 00:04:06.770
Screwing it up for your everybody in the company you taking a version of SQL server, OK remember runs anywhere with doctor runs. You even build one that contains scripts and databases and things you want. It's consistent handed to your devs and say just do this one just use this SQL server, and don't screw up my dev server now or a central server sharing.
NOTE Confidence: 0.875626802444458
00:04:07.560 --> 00:04:25.490
Sistan C and then go look at look at these concept called Devops in CI CD. That's when you start actually considering using the concept of containers, even in a production environment. They are efficient and I'm going to. I'm going to reserve the discussion for how their efficiently from a SQL server perspective for patching later in this talk.
NOTE Confidence: 0.898308157920837
00:04:26.540 --> 00:04:46.550
That's pretty basic this is Bob Wards view of the world of containers. Everybody may have their own version of it, but this is my explanation after researching this topic. First of all there's a concept called an image. It's a binary thing think of this as a layered snapshot of just a bunch of files structured in a file system so when you're going to do something called pulling in.
NOTE Confidence: 0.896393001079559
00:04:47.510 --> 00:05:07.520
What you're going to have is going to have? What we call a layered snapshot and snapshot being the consistency thing of a set of files and when you use it? It's going to be structured in a file system. Today's talk is focused on SQL server in Linux containers. If we start down the path of talking about windows containers. It could get really dicey.
NOTE Confidence: 0.886734902858734
00:05:08.310 --> 00:05:28.320
However, I will happy to talk to you afterwards about our strategy and thinking about windows containers. But today, we're talking about SQL on Linux containers, but remember with a concept, like doctor. You can actually run. Those in different platforms. I'll just quick tip for you, you can run Docker on your even your Windows 10 laptop wouldn't do that doctor will actually install a Linux VM in hyper V to make all that.
NOTE Confidence: 0.892544031143188
00:05:29.560 --> 00:05:49.570
OK, it's built typically with a dockerfile or you can use APIs, a doctor files a TXT file. It's declarative and has a set of commands in it, unknown protocol for how you build an image and we'll talk a little bit about how you could actually do that. But I'll explain with the sequel, Dockerfile looks like on how we build an image so we're going to build an image you're going today.
NOTE Confidence: 0.879090368747711
00:05:50.360 --> 00:06:10.370
Say what kind of files do I want in this file system and what program to run. Most of their built with a base image of an operating system and in the case of SQL server. We base ours on Aboon 2 an Red Hat and then the base image that you're doing this on must be the same kernel as the host. It's working on and that's because you're going to find.
NOTE Confidence: 0.875820219516754
00:06:11.160 --> 00:06:31.170
These are a set of processes not a VM that cooperate with the host kernel itself, so what's a container think of it as this image. I just told you as a runtime version of that. It's a layered set of files with the program and so just going to run one of these things and the cool thing is, you can run many as you like based on that same image.
NOTE Confidence: 0.896071553230286
00:06:31.960 --> 00:06:51.970
Container environment sufficient enough to share what's called the readable layer of these things now. One of the things that everybody loves about this environment. Just like you might take SQL in VMS and think they're isolated on a computer. These processes that run. These containers are isolated from each other so you go run 5 SQL server containers on a given, Lennox host.
NOTE Confidence: 0.882319986820221
00:06:52.760 --> 00:07:10.670
Affectively don't know that each of them are running on that host their isolated from each other and we'll talk about using a concept called the name space to do that. This is actually how you achieve multi instance on SQL server on Linux. We don't support named instances for SQL Lennox so we tell you go use containers if you need that type of concept.
NOTE Confidence: 0.898497521877289
00:07:11.900 --> 00:07:31.910
Now here's the interesting part by default, even though their processes are isolated. They deep by default have access to all the CPU and memory resources on your host machine. You can configure that when you run. These containers so that they don't have access to all those resources. But by default. I had people. Tell me there's the way these containers run is that they start up and each of only.
NOTE Confidence: 0.858869910240173
00:07:32.700 --> 00:07:52.710
They see on the host that's not true. These are not virtual machines. These are processes running in an isolated way, and will talk a little bit about how you configure SQL, maybe to isolate or to restrict resources, both from a container point of view or from a sequel. POV now this is interesting concept each container? What's called a writable layer and a shared reedley?
NOTE Confidence: 0.88032341003418
00:07:53.500 --> 00:08:13.510
Install 5 SQL server image of 5 sequel containers on the same image. We don't have 5 copies out there that we have to do of the readable part. The consistent part of SQL, but he should have their own what I'll just use this terminology temporary rideable layer, which ends up being mapping just to a set of files on the host file system and you're going to.
NOTE Confidence: 0.850989758968353
00:08:14.300 --> 00:08:34.310
Stop these containers that writable layer that you have is not affected. Let's say you put a database. You start a sequel container credit database start and stop the container. The database stays around but when you remove the container that writable layer is removed. That's a problem for your database now right so we have a concept called volumes, which.
NOTE Confidence: 0.861445665359497
00:08:35.100 --> 00:08:46.950
Distance on that host machine and I've got a slide where I kind of show the differences on how this writable layer works. That's temporary and if you use a volume? How your files can say persistent even if you remove the container.
NOTE Confidence: 0.894110679626465
00:08:48.000 --> 00:09:08.010
My simple view of the world is a virtual machine emulates. The hardware an loads. The entire operating system that's the purpose of a VM Ware as containers are isolated process cooperating with the host kernel. It is very common to run containers in VMS like I've seen this nomenclature before that containers will.
NOTE Confidence: 0.878345489501953
00:09:08.800 --> 00:09:28.810
I don't believe in that actually if you start installing operations and systems like Kubernetes, you'll find often that the containers running in Kubernetes knows are loaded containers running in VM S so don't think of the fact that I need to now get rid of all VMS. However, if you're running say a VM farm for SQL server. I've had done this presentation before people said.
NOTE Confidence: 0.870141625404358
00:09:29.600 --> 00:09:40.210
Maybe all convert my VN farm into a series of VMS that have containers. I've done more. Dense installation of SQL server because they have isolation now, just like you would use a VM for.
NOTE Confidence: 0.901997447013855
00:09:42.170 --> 00:10:02.180
So I just put this up here because I want to understand it a life cycle. If you've never used Docker for containers typically in many cases if you're just using SQL server. You will not use this docker client to do building. But if you do something called a custom image, which I'll talk a little bit about you might do that. But the life cycle looks something like this when you install docker going to something called.
NOTE Confidence: 0.891630887985229
00:10:02.240 --> 00:10:22.250
Doctor demon it's a process that runs in the particular case of Lennox, a demon host process. It's going to be responsible for communicating with this docker client, which is a program. One thing I love about Docker. So I called the sequel. Mac challenge or told you doctor runs everywhere is that doctor clients are very consistent interface for you to use across these environments.
NOTE Confidence: 0.895346581935883
00:10:23.040 --> 00:10:43.050
You did build an image or in case of Microsoft. We built an image for you, using a dockerfile that image can be published to a registry will talk about the SQL server publications of registers where we put our images now, what you're going to do next? Do you want to start using this stuff right now you can do a 2 step process you can pull an image first, which pull.
NOTE Confidence: 0.869184017181396
00:10:43.840 --> 00:11:03.850
Environment or and then you can run to run the container itself. You run the image by running a container. But if you're a venue in my team. You don't even mess with that. You just run it and doctors. Smart enough to say if you ran an image. You want a container for an image that's not stored on my machine. I'll pull it first so it depends on what you like to do once docked.
NOTE Confidence: 0.881324410438538
00:11:04.640 --> 00:11:24.650
Specific images been pulled down and you run an image multiple times with the container. It wouldn't have to pull it. The second time so you'll see. That process, but think in terms of build pool run. That's the normal cycle of using containers does that kind of makes sense uses client called doctor. There is a set of APIs as well for you to do this from a programming point of view.
NOTE Confidence: 0.915508925914764
00:11:25.440 --> 00:11:36.080
Ripped all of these things if you want to. We're going to talk about the syntax of using Docker run to run SQL server. Containers 'cause That's going to be important for you to know how to run the SQL server process.
NOTE Confidence: 0.896129012107849
00:11:36.990 --> 00:11:57.000
I thought you might just find this interesting not going to talk about the details. But this is a little bit of the magic behind the scenes that actually like in the case of Docker. It uses something called live container, which uses these resources in the Linux kernel to do the magic containers. Why do I show that to you. I wanted to dispel the myth that it's some sort of thing that you couldn't do yourself, you, you.
NOTE Confidence: 0.884993672370911
00:11:57.790 --> 00:12:17.800
Soccer if you wanted to, you could you could write your own container system. If you wanted to do that because there are APIs and interfaces for you. In fact, there's an open specification for this stuff, so doctors amazing. It's the most popular thing out there and you don't want to have to write these things but behind the scenes. It's always about APIs isn't it when it comes down to it when things work. What are the APIs to make all this work in Linux?
NOTE Confidence: 0.901541829109192
00:12:18.590 --> 00:12:31.540
Those itself provides a set of services to make containers possible, including namespaces for isolation. Control groups for resource control and something called a union file system for this layered file system concept.
NOTE Confidence: 0.898991286754608
00:12:32.720 --> 00:12:52.730
Right so enough about the doctor basics. I know I just like flew by it right. But I'm trying to give you a feel for the concept images and containers, not a bunch of virtual machines but processes running in isolation, there just programs. I'm going to show you why that is what about SQL server itself. I talked about a registry So what we do at.
NOTE Confidence: 0.902587234973907
00:12:53.520 --> 00:13:13.530
Is we publish now are images on the Microsoft registry called MCR dotmicrosoft.com if you go to that site you will not find like an FTP server with a bunch of files you actually get redirected to some Azure site. So here's what we do, we syndicate or redirect you to our images on 2 places right now?
NOTE Confidence: 0.885976493358612
00:13:14.320 --> 00:13:34.330
Or the Red Hat container catalogs you can go to those sites and see a listing of what we have, I just found out before I should have this conference. Travis Wright was telling me there's a visual Studio Code Extension. Now, where you can go out there and use it to see a list of our or anybody's images out there based on like a product or what you registered 'cause. I always wonder like How do I go find the?
NOTE Confidence: 0.869189441204071
00:13:35.120 --> 00:13:43.130
Without going to the documentation and there's something called Doctor Search, which is all that helpful to me. So it's a visual Studio Code Extension in production to go see that.
NOTE Confidence: 0.878585815429688
00:13:44.050 --> 00:14:04.060
So for SQL 17, all of our images are based on Aboon 2. We have RTM plus all of our cumulative updates in GD Rs as separate images to download if you haven't seen the SQL Server Lennox concept before the concept in Lennox is you can update but we also supply you a cumulative version of SQL.
NOTE Confidence: 0.835088312625885
00:14:04.850 --> 00:14:24.860
So if you just want to apply CU 11 for 17. You can just go install C 11. So, unlike windows, where you install RTM and then have to go Patch. You don't have to do that on Lenox and you have to do that for containers. Now the SQL server image itself today and 17 includes SQL server, and we're talking Lennox here, the sequel.
NOTE Confidence: 0.883084833621979
00:14:25.650 --> 00:14:45.660
Agent and the SQL server tools like SQL Command are all built into that image. So when you pull it and run it. That's what you're going to get and we're going to talk about the Magic of how SQL server as a program runs as a container process for SQL 19. We have now of course, preview images based on a boot to an Red Hat and includes the.
NOTE Confidence: 0.888257801532745
00:14:46.510 --> 00:15:06.520
What is the big deal about this so like? Why would I even think about this will check out number one SQL server is preinstalled so SQL Lennox is a really cool experience, I've demo'd a lot of times it doesn't take very long to do it, but what if you didn't want to even do that. What is SQL could be installed for you automatically container image provides that magic so when you pull?
NOTE Confidence: 0.849709391593933
00:15:07.310 --> 00:15:27.320
Just for SQL and run this container. We've preinstalled the SQL engine and SQL agent for you. That's actually in itself pretty cool and as I told you for consistency. We have a version for every see you so if you wanted your developers to you. See you ate and everybody go test on that. You would just have them pulled a CEO it image and they could just all use that and No.
NOTE Confidence: 0.878861010074615
00:15:28.110 --> 00:15:48.120
CU 8 'cause we guarantee our images of that level so there. There is other packages for Linux that you may want to use full text search, we now have extensibility packages and we have some instructions how you could then build your own image based on ours and add those packages in to ever overall customize images will still.
NOTE Confidence: 0.864293575286865
00:15:48.910 --> 00:16:08.920
Should we provide some images that have those preinstalled besides just the engine but right now, it's more of you having to go customize and do that and then the other thing that I always preach about SQL on Lennox in the same thing applies to containers' S database and application compatibility. So if you pull down and run a SQL server container you can now just point your.
NOTE Confidence: 0.891308426856995
00:16:09.710 --> 00:16:25.890
Up to it, there's a couple of feature areas where we're still struggling Wanna Vems Active Directory. Just be transparent with you. We need to get that done in SQL 19, so that Active Directory Integration for security can be used to authenticate and connecting to SQL today? When you see any demos. It's using SQL authentication.
NOTE Confidence: 0.883405447006226
00:16:27.310 --> 00:16:47.320
OK, so I talked about that Doctor Run Command. This is an example of syntax and I'm going to show you in a demo second. I will tell you to be transparent with you that all the demos are from the command line like sorry no GUI tools. Today it's all command line stuff, which is why when you say you have a 400 level class. You have to do it all from the command line. That's what I was told so that's what I'm going to do today.
NOTE Confidence: 0.862846553325653
00:16:48.110 --> 00:17:08.120
Such a shell scripts right so first of all if it's pre installed. How do I configure it Have you ever done. The Sequel Lennox installation anyone done this OK that's not near enough. Anthonys like sweating over here. Everybody go home and try. This installation process. Once things are going fine. We do the installation process for Lennox is you run a shell script, I pipe.
NOTE Confidence: 0.89753270149231
00:17:08.910 --> 00:17:28.920
You do the base installation and you can figure things like the Eula agreement and they SA password and maybe some other stuff. So how are you going to do that since we preinstall the software well you supply environment variables through the doctor run command to tell us what that is, and as it turns out you actually can put other environment variables at the command line to.
NOTE Confidence: 0.899562001228333
00:17:29.710 --> 00:17:46.320
Enable SQL agent at the same time, you're going to start this container. You're going to find that you configure SQL server for things outside the T SQL syntax through these environment variables when you run your container itself. Now the next parameter that you often use is called a port mapping.
NOTE Confidence: 0.875294148921967
00:17:47.510 --> 00:18:07.520
You might all know the SQL Engine listens to Port 1433 by default if you take just a quick question for you in windows. You take SQL server instance, you run it and then install a named instance doesn't listen on port 1433 on the same computer. It can't could be a port conflict. If you take 2 SQL server container.
NOTE Confidence: 0.889139294624329
00:18:08.310 --> 00:18:24.540
Same host with port 1433. You can't so here's what you do you map this port number here? When you do docker run and then you connect to that port number so if you want to run multiple SQL containers. You're going to use the port number that you've mapped like in this case 1401.
NOTE Confidence: 0.892806589603424
00:18:25.980 --> 00:18:45.990
Now, this will talk a little bit later explain more, but I talked about the idea of persistent volumes, making sure you keep that writable layer. You're going to map into that and you want your databases to be lossed. We're going to use this volume parameter. There's many different variations of this. This is a simple example of how to make that work. Let me hold often describe more what that looks like later but this is a tech.
NOTE Confidence: 0.89935964345932
00:18:46.780 --> 00:18:58.380
Steiner to make sure my databases, which are by default going to be in that directory don't get Lossed If I remove my container and it's going to become very important when I show you how to Patch SQL in new and innovative way.
NOTE Confidence: 0.855789363384247
00:18:59.510 --> 00:19:19.520
The host name is really clever if you use the host name printer, Docker that turns into at Servername. Well, that's pretty cool, so you can go out there and see a demonstrations from venue and I about replication and DTC in SQL 19. We use, Docker to do it and we use host name to supply out at servername that becomes very convenient when we do need to do an ad server.
NOTE Confidence: 0.890266299247742
00:19:20.310 --> 00:19:40.320
SQL server, I always recommend you use the name parameter for your own naming convention that sadachar thing that's when you actually do a Docker run and when these containers. You will interact now with the container to start stop it. Whatever you want to do with it with that actual name so make it something familiar to yourself now. This is the part that's interesting.
NOTE Confidence: 0.822820723056793
00:19:41.110 --> 00:20:01.120
In my pre day and anybody the product so you know the answer. The question so I'll say it for everybody, but I'll ask this question at 11 who can answer this one. So you get that I get to ask you. You can ask me, but I get to ask you so on SQL on windows. You shut down the SQL service, you go into the Bin Directory Run SQL Server Dash C for those of you who are not.
NOTE Confidence: 0.827725410461426
00:20:01.910 --> 00:20:05.290
Sorry. What's what happens when you do that does anybody know.
NOTE Confidence: 0.867456793785095
00:20:07.990 --> 00:20:28.000
So it says it starts in a command line window? What shows up on the output of the console there. Dino there a lot, so this is a drink token for tonight. So SQL server itself is Britain's at demon. Everybody thinks it's only a service behind the scenes. The SQL Server program does await for forever. Until you shut it down so if you run it from the command line, it just die.
NOTE Confidence: 0.860834181308746
00:20:28.790 --> 00:20:48.800
The standard out and wait for your control C or a shutdown command. Well, it turns out, we're going to run the SQL server program to run the SQL container just run the program from the command line well. If you don't use this dashyan doctor? What happens when you do a Docker run. You just see all the error log dump out on the screen, so typically use dashed.
NOTE Confidence: 0.856264352798462
00:20:49.590 --> 00:21:09.600
To do it all in the background. But here's the tip, you run a SQL server container and it doesn't start you're like, what the heck happened take off. The Dash D and see what the error log looks like in the output. What there's no error log output. There's something more just the doctor installation. But there was something in a SQL server perspective. The error log would show you the problem. Just a quick debugging tip sorry my CSS S day.
NOTE Confidence: 0.784139156341553
00:21:10.390 --> 00:21:15.540
That's just a nice tip iOS Dashti. But if I can't run it. I start from the command line.
NOTE Confidence: 0.901715219020844
00:21:16.580 --> 00:21:36.590
There is the key parameter this whole mess what image do. I want to use and that's the syntax right there. Based on that URL I told you for the Microsoft Registry followed by a name for what image I want? What see you what version of SQL and again. The documentation or docker hub will show you what that looks like to know what to use.
NOTE Confidence: 0.893156230449677
00:21:37.380 --> 00:21:57.390
Thanks, but I told you about this visual studio code extension that might be helpful for you to list. These out in this case. I'm picking sequel 17. CU 8, So what I do this command. I'm literally running SQL 17. CU 8 and a docker container sorry as I said, I can't take questions in the middle because there's no way I'll finish. I apologize but I will stand out there all day long and spin your head.
NOTE Confidence: 0.855528354644775
00:21:58.180 --> 00:22:18.190
Then we have time I'll go through it, and I'm sorry. I don't have 50 minutes. I'd love to do it for 5 hours? How do I update one of these bad boys? Well, first of all it's just SQL server. The Bucks say that like 7 times to you today and in the keynote, but it really is. It still a sequel engin. So if you want to start interacting with data. You just do it use to interact with data in the actual contained.
NOTE Confidence: 0.904824495315552
00:22:19.570 --> 00:22:31.070
Now, if you want to actually make configuration changes. This is my opinion number one. You could use this environment variables. I talked about and there's a slew of them default database directory default dump directory. Whatever you want to do.
NOTE Confidence: 0.855014324188232
00:22:53.000 --> 00:23:13.010
Those changes like let's say you wanted, Mac stop to be one for all of your testers you could build an image and the scripts would set sequel to Max top one and you would give him that image. Hey here's sequel. See you wait with Mac top one and that helps the consistency problem using get ready to a world where instead of making config changes now add.
NOTE Confidence: 0.90484482049942
00:23:14.020 --> 00:23:17.980
You may create a custom image with all of that burned in to give you that consistency.
NOTE Confidence: 0.848706901073456
00:23:20.040 --> 00:23:26.430
OK let's go let's show, we gotta this is crazy. I got 30 minutes, 27 minutes.
NOTE Confidence: 0.895285248756409
00:23:30.200 --> 00:23:35.630
OK, this is a secured shell into Azure VM, running Red Hat Enterprise Linux.
NOTE Confidence: 0.928934156894684
00:23:36.970 --> 00:23:40.380
And so let me go into these demos are all available to you.
NOTE Confidence: 0.89278244972229
00:23:44.730 --> 00:24:04.740
Now here's what I did this is for my own purposes of being able to show this and I'm not going to go through every step. I built these demos at step one step 2 step 3 step 4, so quick demo tip. If you will forget what step you're in your scripts just column step one step 2 step 3 step 4, the first step is just to run one of these containers. The other thing I love and I don't.
NOTE Confidence: 0.841561853885651
00:24:05.530 --> 00:24:07.790
Power shell very well but I love it in Lenox.
NOTE Confidence: 0.892841577529907
00:24:08.820 --> 00:24:22.860
As I use line continuation feed so you can see the same thing that I showed you on the screen. These are all the parameters looks just like I did it with SQL server dislike. I did it on the slide so let me actually start with these guys.
NOTE Confidence: 0.85793262720108
00:24:32.100 --> 00:24:35.660
OK, I just installed and ran SQL server.
NOTE Confidence: 0.888946056365967
00:24:37.370 --> 00:24:57.380
I'm serious is done that's it. Yeah, thank you for the applause. Anthony know that's how crazy this is I'm not kidding. I'd already pulled it down right in that matter of time. SQL server is running now in your computer that's ridiculous. I mean from being around for 25 years. When I first saw this venue showed it to me, I'm like that's not true? What do you mean?
NOTE Confidence: 0.833771646022797
00:24:58.170 --> 00:24:59.790
Fun let's go in here.
NOTE Confidence: 0.858219683170319
00:25:01.230 --> 00:25:21.240
In step 2 and let's take a backup file wide world importers and I'm going to copy it into the container? What does that mean member the writable layer? I'm going to copy my back up into that writable layer and what I kind of glossed over is my writable layer. The Var opt Ms SQL for databases is mapped to a host volume on the host a?
NOTE Confidence: 0.83085298538208
00:25:22.030 --> 00:25:28.880
Then the rideable layer that the container kind of knows about so I don't lose this database. So let's copy it in so doctor allows me to do that.
NOTE Confidence: 0.909254670143127
00:25:32.510 --> 00:25:33.740
Now step 3.
NOTE Confidence: 0.898297190666199
00:25:56.120 --> 00:26:06.040
In this case, it's SQL Command and I'm going to do a restore of wide world importers. I put it in the background. 'cause I want to let it go off and restore 'cause. It's going to take a few minutes to upgrade that database.
NOTE Confidence: 0.862021684646606
00:26:08.710 --> 00:26:15.290
What is step for step 4 is just to actually start up another one just to prove the named instance concept? Let me just cut that out, real quick.
NOTE Confidence: 0.91613894701004
00:26:17.180 --> 00:26:33.520
This is another container with a different port number. So no conflicts with a different volume. So it's a different persisted volume for my databases with a different host name in a different name and in this particular case. It's the latest version of see you so let's start that guy.
NOTE Confidence: 0.88107043504715
00:26:35.260 --> 00:26:38.550
So How do I see which containers are running look at this one.
NOTE Confidence: 0.862565577030182
00:26:39.920 --> 00:26:57.450
A command called Doctor Pseudo Doctor PS I'll just run it. This shows you the containers that are running my system notice. The command over here is opt Ms equal been SQL server will talk about the Magic of what I mean by that in a minute, so anyways. There are 2 SQL servers running.
NOTE Confidence: 0.909470736980438
00:26:58.920 --> 00:27:18.930
What is step 6 I just wanted to show you this one step 6 is the processes on my sheet machine this is why I'm trying to show you that yes, doctors are pretty magical and cool. It's just a bunch of programs. This is the Docker Daemon forking off to SQL server processes as child processes using namespaces on.
NOTE Confidence: 0.876336514949799
00:27:19.720 --> 00:27:38.550
These are not some many virtual machine thing or anything like that. These are just programs on the host, I get to see both the programs. But if I interact with one of those SQL containers. I don't see all of this. I just see sequel as a process that's the isolation. Part of this thing, but remember since I have port mappings. I can connect to these things remotely.
NOTE Confidence: 0.847019612789154
00:27:40.520 --> 00:27:46.300
I just want to, I'll skip the namespaces one with step 8, is to query. This is just to run a SQL command query.
NOTE Confidence: 0.878827154636383
00:27:48.810 --> 00:28:07.380
And I'm running SQL command outside the container this time, SQL Command as a client on my Lennox host you following me. I first ran a command in the container first to do something now. I'm going to show you example of running outside container SQL Command Command line tool using that port mapping going after the database that I just set up.
NOTE Confidence: 0.922097325325012
00:28:11.550 --> 00:28:17.610
And step 9, is how to interact with the container itself, so let's say that I wanted to go see the error log of this container.
NOTE Confidence: 0.843369603157043
00:28:21.860 --> 00:28:29.940
Do you see I get a bash shell as root and the name of it is that host name I used about var opt Ms SQL?
NOTE Confidence: 0.866786956787109
00:28:33.420 --> 00:28:53.430
Log cat error log it is just SQL server, so I'm proving to you, that it is pretty cool. How this works. But I don't want to be overwhelmed by it. It's a new way of running SQL server. But in the end just like I talk about SQL on Linux. It is just still orange and running and you can interact with and see the same types of things you can running SQL Innovia.
NOTE Confidence: 0.511073231697083
00:28:54.220 --> 00:28:55.040
Overall, host.
NOTE Confidence: 0.911619007587433
00:28:56.160 --> 00:29:04.540
So we're going to back out of this and I'm going to come back in a minute and show you a crazy way to Patch. SQL server that you're going to stand back and go? I don't believe you.
NOTE Confidence: 0.8808354139328
00:29:06.430 --> 00:29:17.210
And I hope if I go through this quickly enough, I will build answer your question here live on the thing So what about this dockerfile thing? What is one of those look like this is that the exact version of the dockerfile but it's pretty close.
NOTE Confidence: 0.861591398715973
00:29:18.420 --> 00:29:38.430
I told just declarative OK, so notice this syntax number one. There is the base image were running from a boon to Aurel. We use this kind of a label thing to label our images. You can do that and by the way. There's a slew of commands. You can put in here, but this is the basic ones, exposing a port is exposing our port number to the outside world.
NOTE Confidence: 0.880070447921753
00:29:39.300 --> 00:29:59.310
But I told you you're typically going to map that if you're going to multiple containers. The copy is the interesting one remember this is the build process, not the run process. This is you. Building an image or US. Building an image right. The copy says on the host machine where I do. The Doctor Build Command itself take some files from there and copy them into the.
NOTE Confidence: 0.853547811508179
00:30:00.100 --> 00:30:20.110
Snapshot file system remember I talked in we're talking image now, so this is me and Microsoft taking a pre installed version of SQL server. You following me. The pre installed version on our machines were building it on and just copy him into those directories. So like opt Ms SQL been SQL server just gets copied in OK that's how we preinstall.
NOTE Confidence: 0.901695668697357
00:30:20.140 --> 00:30:40.150
And then we do a run command install SH in our build environment is us, installing dependent packages in this image, so to be clear. This Is Us Building. The image for you, but you're going to see an example. How you could take our base image into your own copying and installations of scripts for example, to restore.
NOTE Confidence: 0.842810392379761
00:30:40.940 --> 00:31:00.950
And then guess what there's the Magic. The command for our container is SQL server. But I told you SQL run from the command line right and that's what we're doing that command can be any program you want. That's inside the image of files can be shell, script, so we need to see containers for apps and so forth that could.
NOTE Confidence: 0.878830254077911
00:31:01.740 --> 00:31:21.750
Building could be a python script. It's very common thing to do so could have I dispelled some miss for you, that this is good cool and magical program running the program has to exist by the way inside the files that you copied in this image and behind the scenes. That's how we're going to do it, but you're still going to wonder a little bit in your head like OK? How did you do some other stuff to?
NOTE Confidence: 0.874015927314758
00:31:22.540 --> 00:31:42.550
Some databases I understand well that goes right so here's some examples of our doctor files and then the dockerfile reference. In some best practices yourself to go take a look at what I did a longer version of this talk at night. I even showed you the basic Docker Hello World example. But we don't have much time to do that today. So I told you run this SQL server process and we pre installed SQL serve.
NOTE Confidence: 0.866294980049133
00:31:43.340 --> 00:32:03.350
Right about one thing all we install for you is the sequel binaries. What about the system databases. And all that other stuff that goes in there? How do you guys do that is pretty clever that seems pretty smart so the image binaries and something called SFP package get copied into bin but that directory does not exist when we be.
NOTE Confidence: 0.872407019138336
00:32:04.140 --> 00:32:24.150
And you're like well wait wait. I thought you said that that's where your volume was in your database is well get ready for this one. So you set these options. You start SQL Command line. This is what we do in Lenox. We have a sequel, Lennox process that fork SQL server that Lennox process knows how to read these environment variables and you some.
NOTE Confidence: 0.89666610956192
00:32:24.940 --> 00:32:28.010
Parameters to the SQL server process it's forking.
NOTE Confidence: 0.872715353965759
00:32:28.910 --> 00:32:48.920
That SQL server processes, though I don't see evolved Emma sequel. I think I'll build it for you and I'll put things in there like the system database files and then I'll just run that's pretty cool. So the engine is smart enough to install the engin. That's exactly how we build this, the sequel process uses the binaries has enough.
NOTE Confidence: 0.912081301212311
00:32:49.710 --> 00:32:59.600
These packages to copy in these directories start the engine itself and everything works magically behind the scenes. It's pretty crazy, simple of what they've built.
NOTE Confidence: 0.891658961772919
00:33:01.690 --> 00:33:21.700
OK, what about multi instance number one, I told you that containers have access to all resources on the machine correct. You can use Docker in this case to control many different things about these containers resources, including advantage ization. If you want to or you could use resource governor right if you're using enterprise edition you could.
NOTE Confidence: 0.83643364906311
00:33:22.490 --> 00:33:30.200
I'm trying to give you the options because how many in this room used multi instance SQL servers on your hoster scenario of a bunch of you.
NOTE Confidence: 0.857539713382721
00:33:31.340 --> 00:33:37.630
Do you just let him just run? Do you configure them with Max server memory or affinity or anything you just let him go Willy nilly?
NOTE Confidence: 0.884029090404511
00:33:38.600 --> 00:33:58.610
Memory but not CPU but you do configure them in some way right. You don't just let these institutions go wild. Remember multiple containers have access to everything so my point on this slide? Is is that you have multiple methods now to control how these containers work. If you set up multiple VMS don't you go into hyper via VM Ware and control how much.
NOTE Confidence: 0.840242803096771
00:33:59.400 --> 00:34:19.410
'cause they all get you guys do that. You can do that with containers to do docker or through SQL server, so for example, for memory. You can use Docker commands to restrict the containers memory or inside. SQL server itself. You can use options like we do in Lenox to control its memory and then finally just a comma.
NOTE Confidence: 0.887209355831146
00:34:20.200 --> 00:34:40.210
This isn't talking about containers across machines but on the same host when you create containers. You get what's called a default bridge network that allows IP address type configuration, so I use one IP address for another. But if you're using DTC or linked servers and so forth between containers. How do you do that you can create what's called a user defined bridge and you?
NOTE Confidence: 0.882373929023743
00:34:41.000 --> 00:34:56.220
Name resolution if you go into our samples that Ben and I've built for DTC in replication. You can see examples of how we actually do that 'cause you don't want to be using IP addresses all the time you'd like to actually be using almost like a DNS name type concept, and a user defined bridge network gives you that.
NOTE Confidence: 0.849449038505554
00:34:57.820 --> 00:35:17.830
OK, so crazy fast is lightning talk there should be a lightning talk right. Lightning talk on containers. It's OK. My brain spinning just as fast as your brain is spinning listening. But I think I hope you're yelling just let me just stop for second is this even starting to like sink in like I kind of get what you're talking about. I'm scared about it.
NOTE Confidence: 0.818016827106476
00:35:19.000 --> 00:35:39.010
But I'm going to try it, OK going to Anthony very happy if you guys will try this back at home all right, and do it on Lenox to make you really happy. OK building your own image. Here's your dilemma. You want to go to those developers. You want to give the sequel image, but you want a database backup to be in the image. You don't want them all restoring their own version of their backup here's 1 way.
NOTE Confidence: 0.867427170276642
00:35:39.800 --> 00:35:59.810
You can create your own image with a dockerfile using notice the SQL server image now not a boon to ours. 'cause we're going to include a boon to hence the layering aboon 2 sequel. Now your image by the way if you build an image on Drake and taken build an image and then you can go take an image and take Andres image and building on top of it is that you can see the layering now.
NOTE Confidence: 0.861331284046173
00:36:00.600 --> 00:36:20.610
Swear usability your dockerfile then can take a host file on your machine. The Dockerfile, an copy a backup into that structure. Remember your building. The image now and SQL make sure that structure exists and then you're going to run SQL server, and then you can just restore. It afterwards that's 1 way so now I can give Andre.
NOTE Confidence: 0.863737761974335
00:36:21.400 --> 00:36:41.410
Server image with a back up already in it, and then people who go just restore it and then use it. What have I done. I've used in a database. That's consistent with a sequel. This consistent and I've given it to all my developers and said use this one and I have insurance that at least what I gave them was inconsistent version to start with right. This is what I call the venue method Venza.
NOTE Confidence: 0.859114766120911
00:36:42.200 --> 00:37:02.210
But I love dearly, he's like Anna, he's like younger than I've been at Microsoft, which just actually kills me and then does everything in containers. I've never seen venue on his Mac ever install SQL server. Aside from a container never in my life, I asked. I was talking about the Lennox installation. He's like. Yeah, I remember last time I did that actually 'cause I just used containers for everything.
NOTE Confidence: 0.884576678276062
00:37:03.000 --> 00:37:23.010
Approach so we came up with something interesting, he said. I don't want to do a restore what I'd rather do is create some scripts, so in the container image gets built. It's based on a series of script files more of a kind of a devops concept right so and this is how he does replication. He builds a series of scripts for you, that actually build up the replication in.
NOTE Confidence: 0.88248747587204
00:37:23.890 --> 00:37:43.900
And uses this methodology, so stay with me, he takes to SQL image. This copy dot will talk about a second about water all the files. The run command in building an image says as you're building. It go run that command in this case. It changes the permission. Sorry anything that should be you, plus X change the permission.
NOTE Confidence: 0.830480575561523
00:37:44.690 --> 00:38:04.700
Ripped Anthony he's laughing up here because he he caught me so hard in my book when you reviewed it don't use that so sorry. I hate to bug him right here. But he's right on that one. So I'm going to make that script executable in the image so that when the image of the container gets run that Shell script actually particularly.
NOTE Confidence: 0.874097943305969
00:38:05.590 --> 00:38:25.600
And then look at my command here. This is interesting. My commands that SQL server OK. It's not SQL server. It's a shell script well, what how does that work will think about this so first of all when the container gets run that Shell script gets run? Which is copied from here into the image it takes another shell script.
NOTE Confidence: 0.877212464809418
00:38:26.410 --> 00:38:46.420
The and percent says run this first, then go run. This so I'm going to run that Shell script and then I'm gonna run SQL Server 'cause That's what the sequel image. Normally does right. It's already in there that script is going to sleep for, however long you need to to let SQL startup then run a SQL Command in the container to run a SQL script in the SQL script creature.
NOTE Confidence: 0.882482707500458
00:38:47.900 --> 00:39:07.910
Huh like what you got to go see it for yourself. We got it out there is an example. It is a way for you to build a container for your developers to set a consistent set of scripts to build databases objects. Whatever you need to do you could use this method to do alter server configuration or SP configure to configure a consistent SQL in?
NOTE Confidence: 0.865654468536377
00:39:10.570 --> 00:39:30.580
Does that that kind of still like I don't get that man it's just a series of script methodologies to build a consistent image and when the member when the container gets run when you first run the container. It's going to do this. It's going to run this which is going to do this. But when it's done when you first run the container now and it started up what will you have you.
NOTE Confidence: 0.864206314086914
00:39:31.370 --> 00:39:42.670
And you'll have a database called my DB with everything inside it now people can just go to town. But you have now maybe a possible devops cycle to go use scripting as part of this whole thing to build new sequel images.
NOTE Confidence: 0.8723965883255
00:39:43.800 --> 00:40:03.810
Here's how to other packages and then what then does all the time and we've got examples and replication in DTC as we use, Docker compose a tool that allows you to actually build multiple container images at once as almost like a dependent set of application solution and one of his examples is to build an aspie app with SQL server or we?
NOTE Confidence: 0.84320205450058
00:40:04.600 --> 00:40:06.990
Application images and DTC images.
NOTE Confidence: 0.287354081869125
00:40:08.200 --> 00:40:09.030
So.
NOTE Confidence: 0.835119783878326
00:40:10.250 --> 00:40:30.260
What do we got 10 minutes got 10 minutes this crazy so I'm going to go through this fairly quickly but I learn a new tool listen. If you see me on Twitter called screen to Jeff Buck Bucks maybe dangerous so I'm going to do a screen to Jeff on this one here is a possible example for you and then going to the demo. You got SQL. CU 8, pointing to a volume this is.
NOTE Confidence: 0.852762818336487
00:40:30.280 --> 00:40:50.290
Persistent stuff of your databases remembers the volume OK, so you want to go to the latest see you and your temptation is to go Patch, it don't do that anymore. You can't do that actually so with this container going to do something really crazy. You're going to shut that down which is going to remove the link to that volume you're going to start the latest container and you just uh.
NOTE Confidence: 0.171408116817474
00:40:51.080 --> 00:40:51.380
View.
NOTE Confidence: 0.837560713291168
00:40:52.870 --> 00:41:12.880
In about 40 seconds, so entities like yeah, I'm telling you when you go back and try. This you're not going to believe me, but here's the cool story for you, it gets even better II need to rollback. I shut that down. I just pointed. I start that went up. I'm going to go. Yes, thank you. Come on, it's gotta come on man I got school.
NOTE Confidence: 0.849587798118591
00:41:13.670 --> 00:41:33.680
He's actually cool so here's the cool story C user compatible now in SQL 17 between each other. We can go back and forth and many times. We want every C is compatible. You can rollback go back and forth in between. And containers allow you to switch the update of SQL server. You will no longer be patching and why would you love this because you guys can go out and test the latest?
NOTE Confidence: 0.833205997943878
00:41:34.470 --> 00:41:54.480
Be running this container and just switch when you're ready in a minute. You're ready to go, but then if something happens, you just switch back and need to lose any data OK. Let's get more radical you shut this one down and now you point to SQL 19 container. You just upgraded. You can't roll back yet, but I've done this you can upgrade in a matter of minutes using a container tech.
NOTE Confidence: 0.857308208942413
00:41:55.270 --> 00:41:59.150
That's sick so let me skip this slide 'cause I want to show you these demos.
NOTE Confidence: 0.875620186328888
00:42:06.400 --> 00:42:11.910
In the last few minutes that we have and if the valuation says This guy talks fast totally get it.
NOTE Confidence: 0.828583359718323
00:42:13.520 --> 00:42:17.990
Even in Texas I talk fast, OK, so here is step one.
NOTE Confidence: 0.872723639011383
00:42:19.220 --> 00:42:39.230
Notice what I'm doing I'm going to stop the SQL. See you 10 container that I had that other one, I started. I'm just going to leave that alone. I stopped it. I'm going to start a new container. The same volume name, a different host name. OK, a different name. But the same volume name and then now the latest see you image.
NOTE Confidence: 0.891690969467163
00:42:40.020 --> 00:42:47.640
OK, but the same volume so it's the same system databases and the same SQL databases user databases are out there, I'm going to start this up.
NOTE Confidence: 0.556784689426422
00:42:59.780 --> 00:43:00.530
Done.
NOTE Confidence: 0.797165811061859
00:43:01.810 --> 00:43:15.800
What really got to fit I just updated to see you later. See you SQL server now here's The Dirty secret working on gotta be transparent at this conference. Var optimist SQL log for the latest error log.
NOTE Confidence: 0.860859632492065
00:43:17.340 --> 00:43:34.720
Whoops OK, so we are compatible between so use the problem. We have right now is we try to run these upgrade scripts. Even if we don't have to run the upgrade scripts. So this takes about a minute when it should take 10 seconds. If it could still takes about a minute and we're working on trying to fix this. I'm killing the team to make sure they get this actually right.
NOTE Confidence: 0.902572274208069
00:43:35.810 --> 00:43:43.420
I understand why they're doing, it, but we have to upgrade we will and we can roll back and forth. But the reason I know that this happens is that let's say you try to go actually query this thing.
NOTE Confidence: 0.848488748073578
00:43:45.740 --> 00:43:48.280
Whoops that's not what I wanted to do. Oh, no, I probably killed it.
NOTE Confidence: 0.666411280632019
00:43:49.970 --> 00:43:50.880
4.
NOTE Confidence: 0.865120112895966
00:43:52.910 --> 00:44:12.380
Yeah says script isn't up servers in upgrade mode. It takes about a minute and then I can turn on the query. And I just finished it. Can you believe that you could update SQL server ever like that? I mean, you're looking at me go on I'm not sure it's too scary man. I can't do that. In my environment go try. This I promise you this stuff works. Let me try. It one more time and see if this happens.
NOTE Confidence: 0.885544955730438
00:44:17.340 --> 00:44:21.200
I think I'm rolling back, I think I actually the rollback actually that's probably why it's stuck.
NOTE Confidence: 0.872462272644043
00:44:24.690 --> 00:44:37.450
Now I accidentally hit my rollback script accidentally, but in this scenario here. I also have an upgrade on step 6, so once you do the update on my demo script right here. You can run the upgrade and will go to 19 and upgrade your database.
NOTE Confidence: 0.862176656723022
00:44:39.530 --> 00:44:59.540
Docker containers in 44 minutes with SQL server, and from a Texan that does not from here that you're like, I don't understand like half, he said. I'll say the word fixing too. If that helps make you feel better. We say that we're going to do something. So we do have 6 minutes, 6 minutes right.
NOTE Confidence: 0.845268726348877
00:45:00.330 --> 00:45:02.460
So let's start with you because you asked first question.
NOTE Confidence: 0.738458871841431
00:45:04.210 --> 00:45:05.270
You got to allowed man.
NOTE Confidence: 0.889734029769897
00:45:08.750 --> 00:45:19.500
What about enterprise versions doctor is completely supported in all editions of SQL server so when you go to that command line environment. Variable you can tell us the addition of SQL server. You want so you can do that. Yes, right here.
NOTE Confidence: 0.89687192440033
00:45:25.100 --> 00:45:35.960
The question is, it from security point of view until Active Directory Authentication? Is there to know know totally get it. We're working on it, and he said he can't do it. We know that everybody tells us that we have to do this and we will do it.
NOTE Confidence: 0.833830118179321
00:45:38.200 --> 00:45:58.210
The blocker on today is for us to fix it. Yeah, there's some technical reasons why right now first of all. Let me just a couple dirty secrets number one we run as root right now do you notice when I logged in and just said route in order to be supported environment like open shift we first have to be able to run as a non root container, which we're working on an infant. I don't know the technical details of why we donate Aesop.
NOTE Confidence: 0.85997086763382
00:45:59.000 --> 00:46:05.330
To work on it, and we will get it done, we can be credible otherwise. We'll get it done. We can't run kubernetes credibly if we don't do it, so we get it done.
NOTE Confidence: 0.788362562656403
00:46:06.730 --> 00:46:07.180
Yes.
NOTE Confidence: 0.83001309633255
00:46:09.520 --> 00:46:29.530
The question is what about the production use cases OK. Here's 1 for you big data clusters uses this you saw that today from Buck. Here's another one go learn from Anthony at this conference kubernetes right 'cause. He's going to talk on kubernetes. When you run kubernetes yourself. Forget big data cluster for a second all the things running in Kubernetes or containers, so think about.
NOTE Confidence: 0.861724257469177
00:46:30.320 --> 00:46:50.330
Environment maybe a year from now, I have a VM farm of a bunch of SQL servers. But I need this too. Heavy to do VMS in my environment. Imagine a container farm of SQL servers now right and you see how I just updated sequel. Imagine having something called that operator that work may build that would go in and do what I did for all your SQL servers in a matter of minutes. I've update.
NOTE Confidence: 0.843746602535248
00:46:51.120 --> 00:46:52.470
Can you do that in a VM?
NOTE Confidence: 0.873302161693573
00:47:15.760 --> 00:47:35.070
I think people see this and they're like this looks like a dev thing and it can be that right and if we get ad supported probably is but once we get that this could become your new way of hosting a lot of SQL servers. Even in a dense way and we actually have a customer's introduction, with sequence containers right now, yes back there.
NOTE Confidence: 0.855864882469177
00:47:36.610 --> 00:47:56.620
I'm sorry with a question. Thank you for asking HA options. So you can talk about so come to Anthony Session. There's your answer no seriously. We're working on that there's built in HK with kubernetes for like a shared storage solution and in 19 were working on availability group support for containers and kubernetes you can even do it today in previous support.
NOTE Confidence: 0.891630232334137
00:47:59.730 --> 00:48:12.260
The question is what about the licensing the good news is is that in the documentation for licensing guide. Today it's already in there, it works. Just like VM licensing FAQ. It says the word. SQL licensing on VM and container so it's all there today for you to see.
NOTE Confidence: 0.81542581319809
00:48:14.060 --> 00:48:15.470
Maybe a couple ask questions, yeah, go ahead.
NOTE Confidence: 0.890534698963165
00:48:18.680 --> 00:48:20.600
Can you speak up louder please?
NOTE Confidence: 0.885239958763123
00:48:22.650 --> 00:48:42.660
The question is what are the advantage of a host on Lennox it's more natural to run SQL containers on Lennox because we have SQL Lennox containers, OK, you can do it. Naturally, with the host itself. If you use Docker for today on Windows Server on windows on Linux. VM is required on Windows Server to make this work. We don't support yet today sequel wind a SQL server on windows contain?
NOTE Confidence: 0.878916144371033
00:48:43.450 --> 00:49:03.460
Still, figuring out that strategy if you write down this audience think you need to run SQL server. Windows containers OK. I need to hear you from you directly why how you can do some production. How are you going to run maybe a new production workload with SQL windows containers you can do SQL lettuce containers on Windows Server today. But it's going to be a Linux VM that's going to host your.
NOTE Confidence: 0.874247789382935
00:49:04.370 --> 00:49:13.050
I have one minute for like one more question so sorry you got it. You got some great questions. Anybody have one other question. Let me take one question here will try to get you a quick? Yeah.
NOTE Confidence: 0.879758417606354
00:49:14.110 --> 00:49:15.470
Can you talk louder please?
NOTE Confidence: 0.665718913078308
00:49:17.570 --> 00:49:18.360
Instead, what?
NOTE Confidence: 0.638525485992432
00:49:20.430 --> 00:49:20.740
What?
NOTE Confidence: 0.836154162883759
00:49:21.680 --> 00:49:41.690
Oh, it's a file Association the questions about instant. Follow station that's independent of containers. That's Olympics question as it turns out by default. We kind of do instant files isolation go. Search for Bob Sequel. My friend Bob Door, Bob sequel, instant file initialisation on Lenox. He's got a blog post free talks. All about it, guys even a super crew, I railed through this thing.
NOTE Confidence: 0.756755769252777
00:49:42.480 --> 00:49:44.340
Press conference will be at 1:30.