5 ms·
Reduced boot time, lower overhead, deployment speed, consistent environments, better resource utilisation, security, flexible isolation, better clustering optio
by benjaminwootton 10y ago
Reduced boot time, lower overhead, deployment speed, consistent environments, better resource utilisation, security, flexible isolation, better clustering options, no VMWare licensing fees, image signing workflows & a few more...
- d33 10y agoSecurity? Last time I tried, Docker messed up my firewall beyond control. Definitely not more secure than a VM.
- sqldba 10y agoSecurity will be awful. I'm an SS DBA. For one they seem to use the single known account (sa) which we disable EVERYWHERE because it's the first biggest known most common target of attack. In fact it's dangerous to use because it will lock randomly when anyone inside the company or elsewhere runs a scan and attempts a few passwords on it. Secondly SS is made to be patched. We get a new patch every single fucking month and sometimes twice a month. I spend 4 days per month simple patching SQL across half a thousand servers. This shit will never see it. Is this patchable? Not by any standard tools. Is this even discoverable? Fuck no. Nobody will know it exists. We don't do port scans - we look for known SQL services and use the SMO WMI ManagedComputer tools to identify them. This will work with neither. I've seen what developers do to their environments. Hundreds of copies of their databases. No backups (so logs grow and fill the disks and then I get called). No maintenance. Of course Express has no job scheduler so you're fucked anyway which is why I don't support it and instead move everyone onto Developer edition WHICH IS FREE. Anyone using this shit is on their own.
- UK-AL 10y agoThe image will be updated with latest patches, i don't how you would update an existing container though.
- cm2187 10y ago- Reduced boot time: I assume this is the case, and it is certainly desirable for firing up a new instance of a web server, but does that really apply to a SQL database? I can only think of marginal use cases. - lower overhead, better resource utilisation: agree - deployment speed: agree - consistent environments: a standard docker image is not adding anything over a standard VM image. - security: I am not a specialist but I doubt containers offer the same level of hardware enforced separation that VM offer - flexible isolation: what do you have in mind? - better clustering options: but the SQL server software itself is doing the clustering? Otherwise you will end up with inconsistent datasets But what I don't understand is the concept of a standard container image. That means this only applies to scenario with static data in the database? Unless this is for database sharding, where you fire up a new empty database to extend a database pool?
- tracker1 10y agoIIRC Containers in windows are full hyperv containers, so you do get full vm isolation[0]. I would imagine that this would be much more for testing, as it allows for an isolated, empty db for each load. Beyond that, if you're doing a completely containerized infrastructure. Though I would submit that if you're doing windows containers, odds are you're either internally publishing or publishing to azure, so for production, dedicated SQL server or azure sql would likely be better options. [0] https://msdn.microsoft.com/en-us/virtualization/windowscontainers/about/faq https://msdn.microsoft.com/en-us/virtualization/windowsconta...
- windowsworkstoo 10y agoFYI you can choose to use Hyper-V containers (in which case, yes, docker is effectively orchestrating complete VM's) or use the new Container implementation, which is basically filesystem and registry isolation
- benjaminwootton 10y agoConsistent environments - Yes VMs and Containers can be equivalent, but the lightweight nature of the container makes it easier to run consistent laptop/dev/test/prod Security & Flexible Isolation - I can easily share volumes, link and build overlay networks between containers whilst also keeping everything else namespaced and isolated. containers also isolate processes from each other and allow us to control resources granted to processes (cgroups) which is a security benefit over vm Clustering - Yes SQL server will cluster, but in a container orchestrator we will get more control of moving processes between nodes to scale, to cover failure scenarios or maximise resource usage of the underlying hosts Standard Image - You would deploy SQL server container but keep data outside as a volume. Maybe devs would populate the database from a script or network share, or yes join a cluster.
- ekiara 10y agoCan you actually setup multiple SQL Server 2016 Express's in a cluster? That'd be interesting given that it's free, I wonder what the limitations are?
- sqldba 10y agoYou can't. I think they mean docker clusters of some kind.
- kennethh 10y agoYou have to have the Enterprise Edition to setup a cluster and then it starts to get expensive.
- ScottWhigham 10y agoNot quite - you can cluster essentially every edition of SQL 2016 except Express Edition.