Web Connection
Is anyone using Docker in a production environment?
Gravatar is a globally recognized avatar based on your email address. Is anyone using Docker in a production environment?
  Michael B
  All
  May 25, 2017 @ 04:57am

Rick - the other day you casually mentioned you are working with Docker. I just watched some super impressive videos and I was hoping and wondering if you were successful in setting up a VFP+WWWC environment that could be made portable. What a huge time saver that would be to build and deploy apps! Would love to be able to buy a WWWC dev 'image' from you instead of having to manually install and setup and configure... The same can be said for my own WWWC app that is occasionally deployed on a clients own gear.

Gravatar is a globally recognized avatar based on your email address. re: Is anyone using Docker in a production environment?
  Rick Strahl
  Michael B
  May 25, 2017 @ 11:25am

Yeah I'm starting to use Docker a bit for my .NET stuff, but that is all for Linux at the moment. I haven't had a chance to play with the Windows Container features because they are still very rough at this point - the tooling isn't there.

The other issue with Windows Containers is that they are not small. While Linux images that contain everything needed to run are usually just a few megabytes, the Windows containers tend to be several gigabytes which makes it very unwieldy. I think this will change in the future but right now, this kind of makes the technology for Windows sort of a non-starter.

Also as a side note - running docker images tends to be considerably slower than running code natively at least for Linux images. This might be better with Windows Images but I haven't tried this out yet.

Is it really that hard?

FWIW - honestly I think it's not terribly difficult to set up a base Web Connection environment. Make sure IIS is installed and you should be good to go - the Web Connection installer handles the rest. Same for production if you are on the new project system and automatic configuration code that is created for you to configure an application. I think focus should be (and has been) on that.

I was thinking the other day - I think one can automate installation of IIS via PowerShell so perhaps Web Conection could ship with POSH script to set up an IIS configuration with all the stuff enabled that's needed to run Web Connection.

And then on a Dev box - you don't even need IIS. You can run with IIS Express which is a no-install needed on Windows.

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Is anyone using Docker in a production environment?
  Rick Strahl
  Michael B
  May 25, 2017 @ 01:32pm

FWIW, to set up IIS in an automated fashion you can do the following from an Adminstrative Powershell prompt:

Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServer
Enable-WindowsOptionalFeature -Online -FeatureName IIS-CommonHttpFeatures
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpErrors
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationDevelopment
Enable-WindowsOptionalFeature -Online -FeatureName IIS-NetFxExtensibility45
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HealthAndDiagnostics
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpLogging
Enable-WindowsOptionalFeature -Online -FeatureName IIS-LoggingLibraries
Enable-WindowsOptionalFeature -Online -FeatureName IIS-RequestMonitor
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpTracing
Enable-WindowsOptionalFeature -Online -FeatureName IIS-Security
Enable-WindowsOptionalFeature -Online -FeatureName IIS-RequestFiltering
Enable-WindowsOptionalFeature -Online -FeatureName IIS-Performance
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerManagementTools
Enable-WindowsOptionalFeature -Online -FeatureName IIS-IIS6ManagementCompatibility
Enable-WindowsOptionalFeature -Online -FeatureName IIS-Metabase
Enable-WindowsOptionalFeature -Online -FeatureName IIS-BasicAuthentication
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WindowsAuthentication
Enable-WindowsOptionalFeature -Online -FeatureName IIS-StaticContent
Enable-WindowsOptionalFeature -Online -FeatureName IIS-DefaultDocument
Enable-WindowsOptionalFeature -Online -FeatureName IIS-DirectoryBrowsing
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebSockets
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationInit
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET45
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIExtensions
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIFilter
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpCompressionStatic
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementConsole

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Is anyone using Docker in a production environment?
  Michael B
  Michael B
  May 25, 2017 @ 06:10pm

Thanks Rick - to your last question about 'is it really that hard' - We have 36 steps outlined. We cannot use your setup.exe because we have a ton of other 'weird' stuff (let's just call it weird...).

The best thing I have done thus far is at 1and1.com who has a simple 'imaging' feature in their cloud dashboard. You take a snapshot and 'save it' you can then provision it and it works like a charm. The problem is that 1and1 is not a good hosting company for anything that gets lots of traffic AFAIAC and their support is 'just reinstall the OS...'

I was hoping that docker could be something portable and efficient. Sounds like it is too early.

Gravatar is a globally recognized avatar based on your email address. re: Is anyone using Docker in a production environment?
  Rick Strahl
  Michael B
  May 25, 2017 @ 07:39pm

Maybe look into Vultr.

I've used them for VM hosting and for ~$90 a month you can get a pretty high powered machine - in my tests it performed nearly as well as my current physical server (it's an old dual core XEON server - low mid range at this point). There are more high powered machines as well. If you need more they have dedicated boxes for a premium and you can ramp up from there.

What I like about them is that their VM implementations are noticably faster than others I've tried especially Azure and AWS. They also have a backup feature where you can create a snapshot and load it onto a new machine with better specs. No scaling.

If you want better scaling features then you can look into managed platforms like Azure, Google Cloud or Amazon (AWS) which let you switch the underlying hardware transparently - you can just spin down, choose new hardware and spin back up (or even run side by side). It's pretty sweet but the pricing is much more expensive than low level VM hosting and you actually need to use more virtualized hardware to get the same perf as Vultr. IOW, you pay for the management features both with cash and performance.

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Is anyone using Docker in a production environment?
  Michael B
  Rick Strahl
  May 26, 2017 @ 06:02am

Great suggestions Rick. Will definitely consider Vultr. The whole 'saved image' thing is awesome. If I can automate the creation of a client, the spinning up of an image on a clients own instance, that would be super sweet. My SaaS via dedicated box days has to come to an end.

Gravatar is a globally recognized avatar based on your email address. re: Is anyone using Docker in a production environment?
  Rick Strahl
  Michael B
  May 26, 2017 @ 01:26pm

Most of these providers unfortunately use different formats for their 'snapshot' files which makes it more difficult to move somewhere else - even though there are standard formats for this (ie. .vhd files).

Vultr lets you take a snap shot and restore onto a new VM as long as it's the same or bigger size.

+++ Rick ---

© 1996-2017