I am not sure it is fair to say Docker is a huge overkill.

We researched infrastructure-as-code as mentioned by Bill the other day and it blew our minds what folks are doing out there with containers.

I have not tested this yet, but it seems that on Heroku now, we can develope an app in a container all in code, specifying all dependencies and such. It is tested on the local machine using docker. Then once it is all done, it is checked into GItHub where Heroku pulls from and then they do the exact same thing... They tear down the old container, rebuild a new one based on the updated code, deploy the app and the container on their server.

So we are not really deploying code anymore. We are deploying containers from development on the local workstation, to staging on a test server, to production.

At least I think this is where it is at but I am still putting pieces together.

I still need to test it out for myself to see if it is really that slick.

It seems we are just scratching the surface here.

So put this in terms of Cache...

Lets say we have 30 developers all writing Cache codes for an environemtn that has 10 different Cache servers, several of which are staging/development servers but others might be test servers testing the latest upgrade to the latest version of Cache.

Getting all of these tools together, Cache Studio, Visual Studio, Atelier, Entity Framework support and the different versions of Studio needed to test the different versions of Cache, this is all a huge mass of software to maintain across 30 workstations.

So how could containers be used here?

COuld we do it how heroku does it?

Store code for the container, all dependencies, and all code for the app in source control.

Then push that out to other developers who will logon in the AM and find their workstation container seems new and has new software on it for the next version of Cache because it passed testing the night before. Similar containers went out to all of the servers. And somehow, developers write entire apps in their workstation container and push the source of that container and app out to staging and production?

I think he might be asking about running a Docker instance locally as you are doing in the cloud. This is something my boss has expressed interest in as containers appear to be the next evolution in virtualization.

My boss asked me last Thursday if Cache and Ensemble could run OK in a container using a config file to indicate version numbers and all that good stuff. I replied at the time, that I was not sure. Then I have been feeding him more info about how you guys did it to him as I learn more.

Any best practices you can offer for container-izing Cache and Ensemble in Docker could be just as useful as best practices with classic virtualization.

Here is why everyone is asking...

http://blogs.technet.com/b/server-cloud/archive/2015/11/19/announcing-the-release-of-hyper-v-containers-in-windows-server-2016-technical-preview-4.aspx

Any insight is always appreciated here.

Great post! Thanks!

I was hoping to see some workflow videos this week showing how InterSystems envisions the development process is to work in Atelier.

Our primary desire is very common amongst most platforms in the industry...

We want to easily deploy any branch of code to any Cache Server of choice (development/staging/production).

Given the demos and docs we have from InterSystems so far, this is not entirely clear.

I am still very confused about the Studio hooks too, I am not sure that they give us the ability to meet the desire above either.

We look forward to hearing more.